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.