במדריך זה, נדון באופן שבו ניתן להגביל משתמשי SFTP לספריות הבית שלהם או לספריות ספציפיות. זה אומר שהמשתמש יכול לגשת רק לספריית הבית שלו, ולא לכל מערכת הקבצים.
הגבלת ספריות הבית של המשתמשים חיונית, במיוחד בסביבת שרת משותף, כך שמשתמש לא מורשה לצצת לתוך קבצי ותיקיות של משתמש אחר.
חשוב: יש לשים לב גם כי מטרת המאמר היא לספק גישה ל-SFTP בלבד, ולא כניסות SSH, על ידי עקיפת מאמר זה תהיה להרשאות לביצוע העברת קבצים, אך לא תתרשה עריכת חיבור SSH רחוק.
קריאה מומלצת: הגבלת גישת משתמשי SSH לספרייה מסוימת באמצעות כלא
הדרך הפשוטה ביותר לעשות זאת היא ליצור סביבת כלא עבור גישה ל-SFTP. השיטה זו תואמת לכל מערכות ההפעלה Unix/Linux. באמצעות סביבת כלא, אנו יכולים להגביל משתמשים או לספריית הבית שלהם או לספרייה ספציפית.
הגבלת משתמשים לספריות הבית
בסעיף זה, ניצור קבוצה חדשה בשם sftpgroup ונקצה בעלות והרשאות נכונות לחשבונות משתמשים. ישנם שני בחירות להגבלת משתמשים לספריות הבית או לספריות ספציפיות, נראה שתי הדרכים במאמר זה.
יצירת או שינוי משתמשים וקבוצות
תגביל את המשתמש הקיים, לדוגמה tecmint
, לספריית הבית שלו/שלה בשם /home/tecmint
. עבור זה, עליך ליצור קבוצת sftpgroup חדשה באמצעות פקודת groupadd כפי שמוצג:
# groupadd sftpgroup
לאחר מכן, הקצה את המשתמש ‘tecmint’ לקבוצת sftpgroup.
# usermod -G sftpgroup tecmint
ניתן גם ליצור משתמש חדש באמצעות פקודת useradd, לדוגמה senthil
ולהקצות את המשתמש לקבוצת sftpusers.
# adduser senthil -g sftpgroup -s /sbin/nologin # passwd tecmint
שנה את קובץ התצורה של SSH
פתח והוסף את השורות הבאות לקובץ התצורה /etc/ssh/sshd_config
.
Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /home ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
שמור וצא מהקובץ, אתחל את שירות ה-sshd כדי להחיל את השינויים החדשים.
# systemctl restart sshd OR # service sshd restart
אם אתה מגביל מספר משתמשים לאותו ספריית הבית, עליך לשנות את ההרשאות של ספריית הבית של כל משתמש כדי למנוע מכל המשתמשים לעיין בספריות הבית של המשתמשים האחרים.
# chmod 700 /home/tecmint
אמת כניסת משתמשי SSH ו-SFTP
עכשיו, זה הזמן לבדוק את הכניסה ממערכת מקומית. נסה להתחבר ב-ssh למערכת המרוחקת שלך מהמערכת המקומית שלך.
# ssh [email protected]
כאן,
- tecmint – שם המשתמש במערכת המרוחקת.
- 192.168.1.150 – כתובת ה-IP של מערכת המרוחקת.
פלט דוגמה:
[email protected]'s password: Could not chdir to home directory /home/tecmint: No such file or directory This service allows sftp connections only. Connection to 192.168.1.150 closed.
לאחר מכן, גש למערכת המרוחקת באמצעות SFTP.
# sftp [email protected]
פלט דוגמה:
[email protected]'s password: Connected to 192.168.1.150. sftp>
בוא נבדוק את תיקיית העבודה הנוכחית:
sftp> pwd Remote working directory: / sftp> ls tecmint
כאן, tecmint
היא תיקיית הבית. עבור לתיקיית tecmint וצור את הקבצים או התיקיות שברצונך.
sftp> cd tecmint Remote working directory: / sftp> mkdir test tecmint
הגבל משתמשים לתיקייה מסוימת
בדוגמה הקודמת שלנו, הגבלנו את המשתמשים הקיימים לתיקיית הבית. עכשיו, נראה כיצד להגביל משתמש חדש לתיקייה מותאמת.
צור קבוצה ומשתמשים חדשים
צור קבוצה חדשה sftpgroup
.
# groupadd sftpgroup
בשלב הבא, צור תיקייה עבור קבוצת SFTP והקצה הרשאות למשתמש root.
# mkdir -p /sftpusers/chroot # chown root:root /sftpusers/chroot/
לאחר מכן, צור תיקיות חדשות עבור כל משתמש, אליהן יש גישה מלאה. לדוגמה, ניצור את המשתמש tecmint
ואת תיקיית הבית החדשה שלו עם הרשאת קבוצה נכונה באמצעות סדרת הפקודות הבאה.
# adduser tecmint -g sftpgroup -s /sbin/nologin # passwd tecmint # mkdir /sftpusers/chroot/tecmint # chown tecmint:sftpgroup /sftpusers/chroot/tecmint/ # chmod 700 /sftpusers/chroot/tecmint/
הגדר SSH לגישת SFTP
שנה או הוסף את השורות הבאות בסוף הקובץ:
#Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match Group sftpgroup ChrootDirectory /sftpusers/chroot/ ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no
שמור וצא מהקובץ. הפעל מחדש את שירות הsshd כדי שהשינויים שנשמרו ייכנסו לתוקף.
# systemctl restart sshd OR # service sshd restart
זהו, תוכל לבדוק על ידי התחברות לשרת SSH וSFTP המרוחק שלך באמצעות השלבים שסופקו למעלה באמת SSH וכניסה לSFTP.
היזהר ששיטה זו תשבית את גישת השילוב, כלומר לא תוכל לגשת לשיחת המערכת המרוחקת באמצעות SSH. תוכל רק לגשת למערכות המרוחקות דרך SFTP ולבצע העברת קבצים לפני ומהמערכות המקומיות והמרוחקות.
סיכום
עכשיו אתה יודע איך להגביל את ספריות הבית של המשתמשים באמצעות סביבת Chroot ב-Linux. אם אתה מוצא את זה שימושי, שתף מאמר זה ברשתות החברתיות שלך והודיע לנו בתחום ההערות למטה אם יש שיטות אחרות להגביל את ספריות הבית של המשתמשים.
Source:
https://www.tecmint.com/restrict-sftp-user-home-directories-using-chroot/