Kif tinstalla, tikkonfigura u tassigura FTP Server f'CentOS 7 - [Gwida Komprensiva]


FTP (File Transfer Protocol) hija għodda standard tradizzjonali u użata ħafna għat-trasferiment ta' fajls bejn server u klijenti fuq netwerk, speċjalment fejn ma tkun meħtieġa l-ebda awtentikazzjoni (jippermetti lill-utenti anonimi li jikkonnettjaw ma' server). Irridu nifhmu li l-FTP mhuwiex sigur b'mod awtomatiku, minħabba li jittrasmetti kredenzjali u data tal-utent mingħajr encryption.

F'din il-gwida, se niddeskrivu l-passi biex tinstalla, tikkonfigura u niżgura server FTP (VSFTPD tfisser Very Secure FTP Daemon) fid-distribuzzjonijiet CentOS/RHEL 7 u Fedora.

Innota li l-kmandi kollha f'din il-gwida se jitmexxew bħala root, f'każ li ma tkunx qed topera s-server bil-kont root, uża l-kmand sudo biex tikseb privileġġi tal-għeruq.

Pass 1: Installazzjoni ta 'FTP Server

1. L-installazzjoni tas-server vsftpd hija sempliċi, mexxi biss il-kmand li ġej fit-terminal.

# yum install vsftpd

2. Wara li titlesta l-installazzjoni, is-servizz se jiġi diżattivat għall-ewwel, għalhekk għandna bżonn nibdewha manwalment għalissa u nħalluha tibda awtomatikament mill-boot tas-sistema li jmiss ukoll:

# systemctl start vsftpd
# systemctl enable vsftpd

3. Sussegwentement, sabiex inħallu aċċess għal servizzi FTP minn sistemi esterni, irridu niftħu l-port 21, fejn id-daemons FTP qed jisimgħu kif ġej:

# firewall-cmd --zone=public --permanent --add-port=21/tcp
# firewall-cmd --zone=public --permanent --add-service=ftp
# firewall-cmd --reload

Pass 2: Konfigurazzjoni ta 'FTP Server

4. Issa se ngħaddu biex inwettqu ftit konfigurazzjonijiet biex inwaqqfu u niżguraw is-server FTP tagħna, ejjew nibdew billi nagħmlu backup tal-fajl tal-konfigurazzjoni oriġinali /etc/vsftpd/vsftpd.conf:

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig

Sussegwentement, iftaħ il-fajl tal-konfigurazzjoni hawn fuq u ssettja l-għażliet li ġejjin b'dawn il-valuri korrispondenti:

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 FTP biex tippermetti/tiċħad aċċess FTP lill-utenti bbażati fuq il-fajl tal-lista tal-utenti /etc/vsftpd.userlist.

B'mod awtomatiku, l-utenti elenkati f'userlist_file=/etc/vsftpd.userlist huma miċħuda aċċess għall-login bl-għażla userlist_deny issettjata għal IVA, jekk userlist_enable=IVA.

Madankollu, userlist_deny=NO jibdel is-setting, li jfisser li l-utenti biss elenkati b'mod espliċitu fi userlist_file=/etc/vsftpd.userlist se jitħallew jidħlu.

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   

Dak mhux kollox, meta l-utenti jidħlu fis-server FTP, jitqiegħdu f'ħabs chroot'ed, 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 chroot utenti FTP fid-direttorji Home (għerq lokali) direttorju għall-utenti FTP, kif spjegat hawn taħt.

6. Issa żid 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

chroot_local_user=IVA tfisser li l-utenti lokali jitpoġġew f'ħabs chroot, id-direttorju tad-dar tagħhom wara l-login b'settings default.

U wkoll b'mod awtomatiku, vsftpd ma jippermettix li d-direttorju tal-ħabs chroot ikun jista 'jinkiteb għal raġunijiet ta' sigurtà, madankollu, nistgħu nużaw l-għażla allow_writeable_chroot=YES biex jegħlbu dan is-setting.

Issejvja l-fajl u agħlaqha.

Niżguraw FTP Server b'SELinux

7. Issa, ejja nissettjaw il-boolean SELinux hawn taħt biex tippermetti lill-FTP jaqra fajls fid-direttorju tad-dar tal-utent. Innota li dan sar inizjalment bl-użu tal-kmand:

# setsebool -P ftp_home_dir on

Madankollu, id-direttiva ftp_home_dir ġiet diżattivata awtomatikament kif spjegat f'dan ir-rapport tal-bug: https://bugzilla.redhat.com/show_bug.cgi?id=1097775.

Issa se nużaw il-kmand tas-semana biex nissettjaw ir-regola SELinux biex tippermetti lill-FTP jaqra/jikteb id-direttorju tad-dar tal-utent.

# semanage boolean -m ftpd_full_access --on

F'dan il-punt, irridu nibdew mill-ġdid vsftpd biex inwettqu l-bidliet kollha li għamilna s'issa hawn fuq:

# systemctl restart vsftpd

Pass 4: Ittestjar FTP Server

8. Issa se nittestjaw is-server tal-FTP billi noħolqu utent FTP bi kmand useradd.

# useradd -m -c “Ravi Saive, CEO” -s /bin/bash ravi
# passwd ravi

Wara, irridu nżidu l-utent ravi mal-fajl /etc/vsftpd.userlist billi tuża l-kmand echo kif ġej:

# echo "ravi" | tee -a /etc/vsftpd.userlist
# cat /etc/vsftpd.userlist

9. Issa wasal iż-żmien li tittestja jekk is-settings tagħna hawn fuq humiex qed jaħdmu sew. Nibdew billi nittestjaw logins anonimi, nistgħu naraw mill-iskrin ta' hawn taħt li logins anonimi mhumiex permessi:

# ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : anonymous
530 Permission denied.
Login failed.
ftp>

10. Ejja nittestjaw ukoll jekk utent mhux elenkat fil-fajl /etc/vsftpd.userlist jingħatax permess biex jidħol, li mhuwiex il-każ bħal fil-screen shot hawn taħt:

# ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : aaronkilik
530 Permission denied.
Login failed.
ftp>

11. Issa agħmel verifika finali jekk utent elenkat fil-fajl /etc/vsftpd.userlist, fil-fatt jitqiegħed fid-direttorju tad-dar tiegħu/tagħha wara l-login:

# ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

Attiva din l-għażla biss jekk taf eżatt x'qed tagħmel. Huwa importanti li wieħed jinnota li dawn l-implikazzjonijiet tas-sigurtà mhumiex speċifiċi għal vsftpd, huma japplikaw għad-daemons FTP kollha li joffru li jpoġġu lill-utenti lokali fil-ħabsijiet chroot ukoll.

Għalhekk, se nħarsu lejn mod aktar sikur kif nissettjaw direttorju tal-għeruq lokali differenti li ma jistax jinkiteb fit-taqsima li jmiss.

Pass 5: Ikkonfigura Direttorji tad-Dar tal-Utenti FTP differenti

12. Iftaħ il-fajl tal-konfigurazzjoni vsftpd mill-ġdid u ibda billi tikkummenta l-għażla mhux sigura hawn taħt:

#allow_writeable_chroot=YES

Imbagħad oħloq id-direttorju tal-għeruq lokali alternattiv għall-utent (ravi, tiegħek huwa probabbilment differenti) u neħħi l-permessi tal-kitba lill-utenti kollha għal dan id-direttorju:

# mkdir /home/ravi/ftp
# chown nobody:nobody /home/ravi/ftp
# chmod a-w /home/ravi/ftp

13. Sussegwentement, oħloq direttorju taħt l-għerq lokali fejn l-utent se jaħżen il-fajls tiegħu/tagħha:

# mkdir /home/ravi/ftp/files
# chown ravi:ravi  /home/ravi/ftp/files
# chmod 0700 /home/ravi/ftp/files/

Imbagħad żid/immodifika l-għażliet li ġejjin fil-fajl tal-konfigurazzjoni vsftpd b'dawn il-valuri:

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. Għal darb'oħra, ejja nibdew mill-ġdid is-servizz bis-settings il-ġodda:

# systemctl restart vsftpd

14. Issa agħmel test finali mill-ġdid u ara li d-direttorju tal-għeruq lokali tal-utenti huwa d-direttorju tal-FTP li ħloqna fid-direttorju tad-dar tiegħu.

# ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

Dak hu! F'dan l-artikolu, iddeskrivejna kif tinstalla, tikkonfigura kif ukoll niżgura server FTP f'CentOS 7, uża t-taqsima tal-kummenti hawn taħt biex tikteb lura lilna dwar din il-gwida/taqsam kwalunkwe informazzjoni utli dwar dan is-suġġett.

Fl-artiklu li jmiss, aħna ser nuruk ukoll kif tiżgura server FTP billi tuża konnessjonijiet SSL/TLS f'CentOS 7, sa dakinhar, tibqa 'konnessa ma' TecMint.