אנדרואיד

כיצד להתקין שרת ftp עם vsftpd באובונטו 18.04

Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd

Ubuntu Server 18.04.1. Настройка и установка FTP-сервера vsftpd

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

Anonim

FTP (Protocol Transfer Protocol) הוא פרוטוקול רשת רגיל המשמש להעברת קבצים לרשת מרוחקת וממנה. להעברת נתונים מאובטחת ומהירה יותר, השתמש ב- SCP או SFTP.

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

למרות שמדריך זה נכתב עבור אובונטו 18.04 אותן הוראות חלות על אובונטו 16.04 ועל כל הפצה המבוססת על Debian, כולל Debian, Linux Mint ו- Elementary OS.

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

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

התקנת vsftpd באובונטו 18.04

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

sudo apt update sudo apt install vsftpd

שירות vsftpd יתחיל אוטומטית לאחר השלמת תהליך ההתקנה. אמת זאת על ידי הדפסת סטטוס השירות:

sudo systemctl status vsftpd

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

* vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-10-15 03:38:52 PDT; 10min ago Main PID: 2616 (vsftpd) Tasks: 1 (limit: 2319) CGroup: /system.slice/vsftpd.service `-2616 /usr/sbin/vsftpd /etc/vsftpd.conf

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

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

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

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

sudo nano /etc/vsftpd.conf

1. גישה ל- FTP

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

/etc/vsftpd.conf

anonymous_enable=NO local_enable=YES

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

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

/etc/vsftpd.conf

write_enable=YES

3. כלא חרוט

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

/etc/vsftpd.conf

chroot_local_user=YES

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

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

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

    /etc/vsftpd.conf

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

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

    /etc/vsftpd.conf

    allow_writeable_chroot=YES

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

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

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

/etc/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

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

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

/etc/vsftpd.conf

userlist_enable=YES 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/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

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

sudo nano /etc/vsftpd.conf

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

/etc/vsftpd.conf

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

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

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

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

/etc/vsftpd.conf

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

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

sudo systemctl restart vsftpd

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

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

sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp

כדי למנוע נעילה בחוץ, פתח את היציאה 22 :

sudo ufw allow OpenSSH

טען מחדש את כללי UFW על ידי השבתה והפעלה מחדש של UFW:

sudo ufw disable

כדי לאמת את הפעלת השינויים:

sudo ufw status

Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

יצירת משתמש FTP

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

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

    sudo adduser 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 מאובטח ומהיר במערכת אובונטו 18.04.

ftp אובונטו