אנדרואיד

כיצד להתקין שרת ftp עם vsftpd ב- centos 7

Install Vsftpd to configure FTP Server in centos 7

Install Vsftpd to configure FTP Server in centos 7

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

Anonim

FTP (פרוטוקול העברת קבצים) הוא פרוטוקול רשת שרת לקוח רגיל המאפשר למשתמשים להעביר קבצים לרשת מרוחקת וממנה.

ישנם מספר שרתי FTP מקוד פתוח הזמינים עבור לינוקס. הפופולריים והנפוצים ביותר הם PureFTPd, ProFTPD ו- vsftpd.

במדריך זה נתקין את vsftpd (מאוד מאובטח Ftp Daemon) ב- CentOS 7. זהו שרת FTP יציב, מאובטח ומהיר. אנו נראה לך כיצד לקבוע את התצורה של vsftpd להגביל את המשתמשים לספרייה הביתית שלהם ולהצפין את כל השידור באמצעות SSL / TLS.

להעברת נתונים מאובטחת ומהירה יותר, השתמש ב- SCP או SFTP.

תנאים מוקדמים

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

התקנת vsftpd ב- CentOS 7

חבילת vsftpd זמינה במאגרי ברירת המחדל של CentOS. כדי להתקין אותה, הוציא את הפקודה הבאה:

sudo yum install vsftpd

לאחר התקנת החבילה, הפעל את הדמון vsftpd והפעל אותו אוטומטית בזמן האתחול:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

אתה יכול לוודא ששירות vsftpd פועל על ידי הדפסת הסטטוס שלו:

sudo systemctl status vsftpd

הפלט ייראה כמו להלן, ויראה ששירות vsftpd פעיל ופועל:

● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

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

קביעת התצורה של שירות vsftpd כוללת עריכת קובץ התצורה /etc/vsftpd/vsftpd.conf . מרבית ההגדרות מתועדות היטב בתוך קובץ התצורה. עבור כל האפשרויות הזמינות בקר בדף הרשמי של vsftpd.

בסעיפים הבאים נעבור על כמה הגדרות חשובות הנדרשות כדי להגדיר התקנה מאובטחת vsftpd.

התחל בפתיחת קובץ התצורה vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf

1. גישה ל- FTP

אנו נאפשר גישה לשרת ה- FTP רק למשתמשים המקומיים, נמצא את ההוראות anonymous_enable ו- local_enable ונוודא את ההתאמה של התצורה שלך לשורות שלהלן:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES

2. הפעלת העלאות

write_enable את write_enable הגדרת ה- write_enable כדי לאפשר שינויים במערכת הקבצים כגון העלאה ומחיקה של קבצים.

/etc/vsftpd/vsftpd.conf

write_enable=YES

3. כלא חרוט

מנע ממשתמשי ה- FTP לגשת לקבצים שמחוץ לספריות הביתיות שלהם על ידי ביטול chroot הנחיית chroot .

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

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

השתמש באחת מהשיטות להלן כדי לאפשר העלאה כאשר פעולת השלטים מופעלת.

  • שיטה 1 - השיטה המומלצת לאפשר העלאה היא להשאיר את פעולת הרעש ולהגדיר ספריות FTP. במדריך זה, ניצור ספריית ftp בתוך בית המשתמש אשר תשמש כערך וספריית uploads הניתנות לכתיבה להעלאת קבצים.

    /etc/vsftpd/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    שיטה 2. - אפשרות נוספת היא להוסיף את ההנחיה הבאה בקובץ התצורה vsftpd. השתמש באפשרות זו אם עליך להעניק גישה הניתנת לכתיבה למשתמש שלך לספריה הביתית.

    /etc/vsftpd/vsftpd.conf

    allow_writeable_chroot=YES

4. חיבורי FTP פסיביים

vsftpd יכול להשתמש בכל יציאה לחיבורי FTP פסיביים. אנו נפרט את טווח היציאות המינימלי והמקסימלי ונפתח בהמשך את הטווח בחומת האש שלנו.

הוסף את השורות הבאות לקובץ התצורה:

/etc/vsftpd/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. הגבלת כניסה למשתמש

כדי לאפשר רק למשתמשים מסוימים להיכנס לשרת ה- FTP להוסיף את השורות הבאות לאחר קו userlist_enable=YES :

/etc/vsftpd/vsftpd.conf

userlist_file=/etc/vsftpd/user_list userlist_deny=NO

כאשר אפשרות זו מופעלת, עליך לציין במפורש אילו משתמשים יכולים להתחבר על ידי הוספת שמות המשתמשים לקובץ /etc/vsftpd/user_list (משתמש אחד בכל שורה).

6. אבטחת הילוכים באמצעות SSL / TLS

על מנת להצפין את שידורי ה- FTP באמצעות SSL / TLS, יהיה עליכם לקבל אישור SSL ולהגדיר את שרת ה- FTP שישתמש בו.

אתה יכול להשתמש בתעודת SSL קיימת שנחתמה על ידי רשות אישורים מהימנה או ליצור אישור חתימה עצמית.

במדריך זה, ניצור תעודת SSL בחתימה עצמית באמצעות הפקודה openssl .

הפקודה הבאה תיצור מפתח פרטי של 2048 סיביות ותעודת חתימה עצמית בתוקף ל 10 שנים. גם המפתח הפרטי וגם האישור יישמרו באותו קובץ:

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

לאחר יצירת אישור SSL פתח את קובץ התצורה vsftpd:

sudo nano /etc/vsftpd/vsftpd.conf

מצא את ההוראות rsa_private_key_file ו- rsa_private_key_file , שנה את הערכים שלהן לנתיב קובץ ה- pam והגדר את ההנחיה ssl_enable ל- YES :

/etc/vsftpd/vsftpd.conf

rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

אם לא צוין אחרת, שרת ה- FTP ישתמש רק ב- TLS ליצירת חיבורים מאובטחים.

הפעל מחדש את שירות vsftpd

לאחר שתסיים לערוך, קובץ התצורה vsftpd (למעט הערות) אמור להיראות כך:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

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

sudo systemctl restart vsftpd

פתיחת חומת האש

לפתיחת יציאה 21 (יציאת פקודות FTP), יציאה 20 (יציאת נתונים FTP) ו- 30000-31000 (טווח יציאות פסיביות), הנפק את הפקודות הבאות:

sudo firewall-cmd --permanent --add-port=20-21/tcp sudo firewall-cmd --permanent --add-port=30000-31000/tcp

טען מחדש את כללי חומת האש על ידי הקלדה:

firewall-cmd --reload

יצירת משתמש FTP

כדי לבדוק את שרת ה- FTP שלנו ניצור משתמש חדש.

  • אם כבר יש לך משתמש שברצונך להעניק גישה ל- FTP דלג על הצעד הראשון. אם תגדיר allow_writeable_chroot=YES בקובץ התצורה שלך, דלג על השלב השלישי.
  1. צור משתמש חדש בשם newftpuser :

    sudo adduser newftpuser

    בשלב הבא, עליך להגדיר את סיסמת המשתמש:

    sudo passwd newftpuser

    הוסף את המשתמש לרשימת משתמשי ה- FTP המותרת:

    echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list

    צור את עץ ספריות ה- FTP וקבע את ההרשאות הנכונות:

    sudo mkdir -p /home/newftpuser/ftp/upload sudo chmod 550 /home/newftpuser/ftp sudo chmod 750 /home/newftpuser/ftp/upload sudo chown -R newftpuser: /home/newftpuser/ftp

    כפי שנדון בסעיף הקודם, המשתמש יוכל להעלות את הקבצים שלו ftp/upload .

בשלב זה שרת ה- FTP שלך פונקציונלי לחלוטין ועליך להיות מסוגל להתחבר לשרת שלך עם כל לקוח FTP שניתן להגדיר אותו לשימוש בהצפנת TLS כמו FileZilla.

השבתת גישה של מעטפת

כברירת מחדל, בעת יצירת משתמש, אם לא צוין במפורש, למשתמש תהיה גישה SSH לשרת.

כדי להשבית את הגישה למעטפת, אנו ניצור מעטפת חדשה שתדפיס פשוט הודעה המציינת למשתמש כי חשבונו מוגבל לגישה ל- FTP בלבד.

הפעל את הפקודות הבאות כדי ליצור את הקליפה /bin/ftponly ולהפוך אותה להפעלה:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly

הוסף את המעטפת החדשה לרשימת הפגזים התקפים בקובץ /etc/shells :

echo "/bin/ftponly" | sudo tee -a /etc/shells

שנה את מעטפת המשתמש ל /bin/ftponly :

sudo usermod newftpuser -s /bin/ftponly

השתמש באותה פקודה כדי לשנות את הקונכייה עבור משתמשים אחרים שברצונך לתת גישה רק ל- FTP.

סיכום

במדריך זה למדת כיצד להתקין ולהגדיר שרת FTP מאובטח ומהיר במערכת CentOS 7 שלך.

ftp centos