Kif tinstalla u tikkonfigura FTP Server f'Ubuntu
FTP (File Transfer Protocol) huwa protokoll tan-netwerk standard relattivament antik u l-aktar użat użat għat-tlugħ/tniżżil ta' fajls bejn żewġ kompjuters fuq netwerk. Madankollu, FTP mill-oriġinali tiegħu mhux sigur, minħabba li jittrasmetti data flimkien ma 'kredenzjali tal-utent (username u password) mingħajr encryption.
Twissija: Jekk qed tippjana li tuża l-FTP, ikkunsidra li tikkonfigura konnessjoni FTP ma SSL/TLS (se tkopri fl-artiklu li jmiss). Inkella, huwa dejjem aħjar li tuża FTP sikur bħal SFTP.
F'dan it-tutorja, ser nuru kif tinstalla, tikkonfigura u tiżgura server FTP (VSFTPD b'mod sħiħ \Daemon FTP Sikur ħafna\) f'Ubuntu biex ikollna sigurtà qawwija kontra vulnerabbiltajiet FTP.
Pass 1: Installazzjoni ta 'VsFTP Server f'Ubuntu
1. L-ewwel, irridu naġġornaw il-lista tas-sorsi tal-pakkett tas-sistema u mbagħad ninstallaw il-pakkett binarju VSFTPD kif ġej:
$ sudo apt-get update $ sudo apt-get install vsftpd
2. Ladarba titlesta l-installazzjoni, is-servizz se jkun diżattivat inizjalment, għalhekk, għandna bżonn nibdew manwalment għall-ħin medju u wkoll inħalluha tibda awtomatikament mill-boot tas-sistema li jmiss:
------------- On SystemD ------------- # systemctl start vsftpd # systemctl enable vsftpd ------------- On SysVInit ------------- # service vsftpd start # chkconfig --level 35 vsftpd on
3. Sussegwentement, jekk għandek UFW firewall attivat (mhux attivat b'mod awtomatiku) fuq is-server, għandek tiftaħ il-portijiet 21 u 20 fejn id-daemons FTP qed jisimgħu, sabiex jippermettu aċċess għal servizzi FTP minn magni remoti, imbagħad żid ir-regoli l-ġodda tal-firewall kif ġej:
$ sudo ufw allow 20/tcp $ sudo ufw allow 21/tcp $ sudo ufw status
Pass 2: Konfigurazzjoni u Żgurar ta 'VsFTP Server f'Ubuntu
4. Ejja issa nwettqu ftit konfigurazzjonijiet biex insettjaw u niżguraw is-server FTP tagħna, l-ewwel se noħolqu backup tal-fajl tal-konfigurazzjoni oriġinali /etc/vsftpd/vsftpd.conf bħal dan:
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
Sussegwentement, ejja niftħu l-fajl tal-konfigurazzjoni vsftpd.
$ sudo vi /etc/vsftpd.conf OR $ sudo nano /etc/vsftpd.conf
Żid/immodifika l-għażliet li ġejjin b'dawn il-valuri:
anonymous_enable=NO # disable anonymous login local_enable=YES # permit local logins write_enable=YES # enable FTP commands which change the filesystem local_umask=022 # value of umask for file creation for local users dirmessage_enable=YES # enable showing of messages when users first enter a new directory xferlog_enable=YES # a log file will be maintained detailing uploads and downloads connect_from_port_20=YES # use port 20 (ftp-data) on the server machine for PORT style connections xferlog_std_format=YES # keep standard log file format listen=NO # prevent vsftpd from running in standalone mode listen_ipv6=YES # vsftpd will listen on an IPv6 socket instead of an IPv4 one pam_service_name=vsftpd # name of the PAM service vsftpd will use userlist_enable=YES # enable vsftpd to load a list of usernames tcp_wrappers=YES # turn on tcp wrappers
5. Issa, kkonfigurat VSFTPD biex tippermetti/tiċħad aċċess FTP lill-utenti bbażati fuq il-fajl tal-lista tal-utenti /etc/vsftpd.userlist.
Innota li b'mod awtomatiku, l-utenti elenkati fi userlist_file=/etc/vsftpd.userlist huma miċħuda aċċess għall-login bl-għażla userlist_deny=YES
jekk userlist_enable=YES
.
Iżda, l-għażla userlist_deny=NO
tgħawweġ it-tifsira tas-setting default, għalhekk l-utenti biss li l-isem tal-utent tagħhom huwa elenkat espliċitament f'userlist_file=/etc/vsftpd.userlist se jitħallew jidħlu fis-server FTP.
userlist_enable=YES # vsftpd will load a list of usernames, from the filename given by userlist_file userlist_file=/etc/vsftpd.userlist # stores usernames. userlist_deny=NO
Importanti: Meta l-utenti jidħlu fis-server FTP, jitqiegħdu f'ħabs chrooted, dan huwa d-direttorju tal-għeruq lokali li jaġixxi bħala d-direttorju tad-dar tagħhom għas-sessjoni FTP biss.
Sussegwentement, se nħarsu lejn żewġ xenarji possibbli ta 'kif nissettjaw id-direttorju tal-ħabs chrooted (għerq lokali), kif spjegat hawn taħt.
6. F'dan il-punt, ejja nżidu/nimmodifikaw/tneħħi l-kumment dawn iż-żewġ għażliet li ġejjin biex tirrestrinġi l-utenti tal-FTP għad-direttorji Home tagħhom.
chroot_local_user=YES allow_writeable_chroot=YES
L-għażla chroot_local_user=YES
tfisser importanti li l-utenti lokali se jitqiegħdu f'ħabs chroot, id-direttorju tad-dar tagħhom b'mod awtomatiku wara l-login.
U rridu nifhmu wkoll li VSFTPD ma jippermettix li d-direttorju tal-ħabs tal-chroot ikun jista’ jinkiteb, b’mod awtomatiku għal raġunijiet ta’ sigurtà, madankollu, nistgħu nużaw l-għażla allow_writeable_chroot=YES biex tiddiżattiva dan is-setting.
Issejvja l-fajl u agħlaqha. Imbagħad irridu nibdew mill-ġdid is-servizzi VSFTPD biex il-bidliet t'hawn fuq jidħlu fis-seħħ:
------------- On SystemD ------------- # systemctl restart vsftpd ------------- On SysVInit ------------- # service vsftpd restart
Pass 3: Ittestjar VsFTP Server f'Ubuntu
7. Issa se nittestjaw is-server FTP billi noħolqu utent FTP bi kmand useradd kif ġej:
$ sudo useradd -m -c "Aaron Kili, Contributor" -s /bin/bash aaronkilik $ sudo passwd aaronkilik
Imbagħad, irridu nilnutaw b'mod espliċitu l-utent aaronkilik fil-fajl /etc/vsftpd.userlist bil-kmand tal-echo u l-kmand tat-tee kif hawn taħt:
$ echo "aaronkilik" | sudo tee -a /etc/vsftpd.userlist $ cat /etc/vsftpd.userlist
8. Issa wasal iż-żmien li nittestjaw il-konfigurazzjonijiet ta 'hawn fuq tagħna qed jaħdmu kif meħtieġ. Se nibdew billi nittestjaw logins anonimi; nistgħu naraw b'mod ċar mill-output hawn taħt li logins anonimi mhumiex permessi fuq is-server FTP:
# ftp 192.168.56.102 Connected to 192.168.56.102 (192.168.56.102). 220 Welcome to TecMint.com FTP service. Name (192.168.56.102:aaronkilik) : anonymous 530 Permission denied. Login failed. ftp> bye 221 Goodbye.
9. Sussegwentement, ejja nittestjaw jekk utent mhux elenkat fil-fajl /etc/vsftpd.userlist jingħatax permess biex jidħol, li mhuwiex minnu mill-output li ġej:
# ftp 192.168.56.102 Connected to 192.168.56.102 (192.168.56.102). 220 Welcome to TecMint.com FTP service. Name (192.168.56.10:root) : user1 530 Permission denied. Login failed. ftp> bye 221 Goodbye.
10. Issa se nwettqu test finali biex niddeterminaw jekk utent elenkat fil-fajl /etc/vsftpd.userlist, huwiex attwalment imqiegħed fid-direttorju tad-dar tiegħu/tagħha wara l-login. U dan huwa minnu mill-output hawn taħt:
# ftp 192.168.56.102 Connected to 192.168.56.102 (192.168.56.102). 220 Welcome to TecMint.com FTP service. Name (192.168.56.102:aaronkilik) : aaronkilik 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls
Twissija: L-issettjar tal-għażla allow_writeable_chroot=YES
jista' jkun tant perikoluż, għandu implikazzjonijiet ta' sigurtà possibbli, speċjalment jekk l-utenti jkollhom permess biex itellgħu, jew aktar minn hekk, aċċess għall-qoxra. Użaha biss jekk taf eżatt x'qed tagħmel.
Għandna ninnotaw li dawn l-implikazzjonijiet tas-sigurtà mhumiex speċifiċi għal VSFTPD, jistgħu wkoll jaffettwaw id-daemons FTP l-oħra kollha li joffru li jpoġġu lill-utenti lokali f'ħabsijiet chroot.
Minħabba din ir-raġuni, fit-taqsima ta 'hawn taħt, aħna se nispjegaw metodu aktar sigur ta' kif nissettjaw direttorju tal-għeruq lokali differenti li ma jistax jinkiteb għal utent.
Pass 4: Ikkonfigura Direttorji tad-Dar tal-Utenti FTP f'Ubuntu
11. Issa, iftaħ il-fajl tal-konfigurazzjoni VSFTPD għal darba oħra.
$ sudo vi /etc/vsftpd.conf OR $ sudo nano /etc/vsftpd.conf
u kkummenta l-għażla mhux sigura billi tuża l-karattru #
kif muri hawn taħt:
#allow_writeable_chroot=YES
Sussegwentement, oħloq id-direttorju tal-għeruq lokali alternattiv għall-utent (aaronkilik, tiegħek possibilment mhux l-istess) u waqqaf il-permessi meħtieġa billi tiddiżattiva l-permessi tal-kitba lill-utenti l-oħra kollha għal dan id-direttorju:
$ sudo mkdir /home/aaronkilik/ftp $ sudo chown nobody:nogroup /home/aaronkilik/ftp $ sudo chmod a-w /home/aaronkilik/ftp
12. Imbagħad, oħloq direttorju taħt l-għerq lokali bil-permessi xierqa fejn l-utent se jaħżen il-fajls tiegħu:
$ sudo mkdir /home/aaronkilik/ftp/files $ sudo chown -R aaronkilk:aaronkilik /home/aaronkilik/ftp/files $ sudo chmod -R 0770 /home/aaronkilik/ftp/files/
Wara, żid/immodifika l-għażliet hawn taħt fil-fajl tal-konfigurazzjoni VSFTPD bil-valuri korrispondenti tagħhom:
user_sub_token=$USER # inserts the username in the local root directory local_root=/home/$USER/ftp # defines any users local root directory
Issejvja l-fajl u agħlaqha. U erġa ibda s-servizzi VSFTPD bis-settings riċenti:
------------- On SystemD ------------- # systemctl restart vsftpd ------------- On SysVInit ------------- # service vsftpd restart
13. Issa, ejja nwettqu verifika finali u kun żgur li d-direttorju tal-għeruq lokali tal-utent huwa d-direttorju tal-FTP li ħloqna fid-direttorju tad-Dar tiegħu.
# ftp 192.168.56.102 Connected to 192.168.56.102 (192.168.56.102). 220 Welcome to TecMint.com FTP service. Name (192.168.56.10:aaronkilik) : aaronkilik 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls
Dak hu! Ftakar li taqsam l-opinjoni tiegħek dwar din il-gwida permezz tal-formola tal-kummenti hawn taħt jew possibilment agħtina kwalunkwe informazzjoni importanti dwar is-suġġett.
Fl-aħħar iżda mhux l-inqas, titlifx l-artiklu li jmiss tagħna, fejn ser niddeskrivu kif niżguraw server FTP billi tuża konnessjonijiet SSL/TLS f'Ubuntu 16.04/16.10, sa dak iż-żmien, dejjem ibqgħu sintonizzat ma 'TecMint.