אנדרואיד

כיצד להגדיר את כלא הנפט של sftp

SFTP Server Chroot Configuration | How to Setup Chroot SFTP in Linux

SFTP Server Chroot Configuration | How to Setup Chroot SFTP in Linux

תוכן עניינים:

Anonim

במדריך זה נסביר כיצד להתקין סביבת כלא SFTP Chroot אשר תגביל את המשתמשים לספריות הביתיות שלהם. למשתמשים תהיה גישה SFTP בלבד, גישת SSH תושבת. הוראות אלה צריכות לעבוד לכל הפצה מודרנית של לינוקס, כולל Ubuntu, CentOS, Debian ו- Fedora.

יצירת קבוצת SFTP

במקום לקבוע את התצורה של שרת OpenSSH עבור כל משתמש בנפרד, אנו ניצור קבוצה חדשה ונוסיף את כל המשתמשים החתולים שלנו לקבוצה זו.

הפעל את הפקודה groupadd הבאה כדי ליצור את קבוצת המשתמש sftponly :

sudo groupadd sftponly אתה יכול לתת שם לקבוצה כרצונך.

הוספת משתמשים לקבוצת SFTP

השלב הבא הוא להוסיף את המשתמשים שתרצו להגביל לקבוצה sftponly .

אם זו התקנה חדשה והמשתמש אינו קיים, באפשרותך ליצור חשבון משתמש חדש על ידי הקלדה:

sudo useradd -g sftponly -s /bin/false -m -d /home/username username

  • האפשרות -g sftponly תוסיף את המשתמש לקבוצה sftponly. האפשרות -s /bin/false מגדירה את מעטפת ההתחברות של המשתמש. על ידי הגדרת מעטפת ההתחברות ל /bin/false המשתמש לא יוכל להתחבר לשרת באמצעות SSH. אפשרויות -m -d /home/username אומר למשתמש המשתמש להוסיף את ספריית הבית של המשתמש.

הגדר סיסמא חזקה עבור המשתמש החדש שנוצר:

sudo passwd username

אחרת אם המשתמש שברצונך להגביל כבר קיים, הוסף את המשתמש לקבוצה sftponly ושנה את מעטפת המשתמש:

sudo usermod -G sftponly -s /bin/false username2

ספריית הבית של המשתמש חייבת להיות בבעלות root ושיש לה 755 הרשאות:

sudo chown root: /home/username sudo chmod 755 /home/username

מכיוון שמדריך הבית של המשתמשים נמצא בבעלות המשתמש הבסיסי, משתמשים אלה לא יוכלו ליצור קבצים וספריות בספריות הביתיות שלהם. אם אין ספריות בבית המשתמש, יהיה עליכם ליצור ספריות חדשות בהן תהיה למשתמש גישה מלאה. לדוגמה, אתה יכול ליצור את הספריות הבאות:

sudo mkdir /home/username/{public_html, uploads} sudo chmod 755 /home/username/{public_html, uploads} sudo chown username:sftponly /home/username/{public_html, uploads}

אם יישום אינטרנט משתמש בספריית public_html של המשתמש כשורש מסמך, שינויים אלה עשויים להוביל לבעיות הרשאות. לדוגמה, אם אתה מפעיל את וורדפרס תצטרך ליצור מאגר PHP שיפעל כמשתמש הבעלים של הקבצים ולהוסיף את הקורים לאתר לקבוצה sftponly .

קביעת תצורה של SSH

SFTP היא תת מערכת של SSH ותומכת בכל מנגנוני האימות של SSH.

פתח את קובץ התצורה של SSH /etc/ssh/sshd_config עם עורך הטקסט שלך:

sudo nano /etc/ssh/sshd_config

חפש את הקו שמתחיל ב- Subsystem sftp , בדרך כלל בסוף הקובץ. אם הקו מתחיל עם hash # הסר את hash # ושנה אותו כך שהוא נראה כמו:

/ etc / ssh / sshd_config

Subsystem sftp internal-sftp

לקראת סוף הקובץ, בלוק ההגדרות הבא:

/ etc / ssh / sshd_config

Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no

ההנחיה ChrootDirectory מציינת את הנתיב לספריה של chroot. %h פירושו מדריך הבית. ספריה זו חייבת להיות בבעלות משתמש השורש ולא ניתנת לכתיבה על ידי משתמש או קבוצה אחרים.

היזהר במיוחד בעת שינוי קובץ התצורה של SSH. התצורה השגויה עלולה לגרום לשירות SSH להיכשל בהפעלה.

לאחר שתסיים, שמור את הקובץ והפעל מחדש את שירות SSH כדי ליישם את השינויים:

sudo systemctl restart ssh

ב- CentOS ובפדורה שירות ssh נקרא sshd :

sudo systemctl restart sshd

בדיקת התצורה

כעת, לאחר שקבעתם את התצורה של גרסת SFTP, תוכלו לנסות להתחבר למחשב המרוחק באמצעות SFTP באמצעות אישורי המשתמש הנחרץ. ברוב המקרים תשתמש בלקוח SFTP שולחן עבודה כמו FileZilla אך בדוגמה זו אנו נשתמש בפקודת sftp.

פתח חיבור SFTP באמצעות הפקודה sftp ואחריו שם המשתמש של השרת המרוחק וכתובת ה- IP של השרת או שם התחום:

sftp [email protected]

תתבקש להזין את סיסמת המשתמש. לאחר חיבורו, השרת המרוחק יציג הודעת אישור ואת הפקודה sftp> :

[email protected]'s password: sftp>

הפעל את הפקודה pwd , כמוצג להלן, ואם הכל עובד כצפוי הפקודה צריכה לחזור / .

sftp> pwd Remote working directory: /

אתה יכול גם לרשום את הקבצים והספריות המרוחקים באמצעות הפקודה ls ועליך לראות את הספריות שיצרנו בעבר:

sftp> ls public_html uploads

סיכום

במדריך זה למדת כיצד להגדיר סביבת כלא SFTP Chroot בשרת הלינוקס שלך ולהגביל את הגישה למשתמשים לספרייה הביתית שלהם.

כברירת מחדל, SSH מאזין ביציאה 22. שינוי יציאת SSH המוגדרת כברירת מחדל מוסיף שכבת אבטחה נוספת לשרת שלך על ידי צמצום הסיכון להתקפות אוטומטיות. ייתכן שתרצה גם להגדיר אימות מבוסס מפתח SSH ולהתחבר לשרת מבלי להזין סיסמה.

אבטחה