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.