Kaip įdiegti, konfigūruoti ir apsaugoti FTP serverį RHEL 8


FTP (reiškia File Transfer Protocol) yra standartinis ir senas tinklo protokolas, naudojamas failams perduoti tarp kliento ir serverio kompiuterių tinkle. Jis sukurtas pagal kliento-serverio modelio architektūrą, kuri suteikia prieigą prie failų ir katalogų per FTP klientą, kad būtų galima įkelti failus į serverį ir atsisiųsti failus iš jo.

Ankstesniame straipsnyje paaiškinome, kaip įdiegti, konfigūruoti ir apsaugoti FTP serverį CentOS/RHEL 7, kad būtų galima perkelti kompiuterio failus iš kliento į serverį kompiuterių tinkle.

Šiame straipsnyje aprašysime, kaip įdiegti, konfigūruoti ir apsaugoti FTP serverį RHEL 8, kad būtų galima bendrai naudoti failus tarp kompiuterių.

Įdiekite FTP serverį RHEL 8

1. Norėdami įdiegti saugų FTP paketą, naudokite šią dnf komandą.

dnf install vsftpd

2. Kai diegimas bus baigtas, kol kas turite paleisti vsftpd paslaugą, įjungti ją automatiškai paleidžiant sistemą ir tada patikrinti būseną naudodami šias systemctl komandas.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. Tada turite atidaryti FTP prievadą 21 sistemos užkardoje, kad galėtumėte pasiekti FTP paslaugas iš išorinių sistemų.

firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --zone=public --permanent --add-port=45073/tcp
firewall-cmd --reload

Konfigūruokite FTP serverį RHEL 8

4. Norėdami sukonfigūruoti FTP serverį, turite sukurti pagrindinio FTP konfigūracijos failo /etc/vsftpd/vsftpd.conf atsarginę kopiją naudodami šią kopijavimo komandą.

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

5. Tada atidarykite konfigūracijos failą naudodami mėgstamą komandų eilutės rengyklę.

vi /etc/vsftpd/vsftpd.conf

Nustatykite šiuos parametrus su šiomis atitinkamomis reikšmėmis (konfigūracijos parametrų reikšmes žr. man vsftpd.conf):

anonymous_enable=NO             
local_enable=YES		
write_enable=YES		
local_umask=022		        
dirmessage_enable=YES	        
xferlog_enable=YES		
connect_from_port_20=YES        
xferlog_std_format=YES          
listen=NO   			
listen_ipv6=YES		        
pam_service_name=vsftpd        

6. Tada turite sukonfigūruoti FTP, kad naudotojams būtų leista/uždrausti prieigą prie FTP paslaugų, remiantis naudotojų sąrašo failu /etc/vsftpd.userlist.

Pagal numatytuosius nustatymus naudotojams, išvardytiems faile /etc/vsftpd.userlist, neleidžiama prieiga, kai parinktis userlist_deny nustatyta į TAIP, jei userlist_enable =TAIP, tai įgalina prieigą.

Tačiau parametro userlist_deny=NO nustatymas pakeičia nustatymą, o tai reiškia, kad prisijungti bus leidžiama tik tiems vartotojams, kurie aiškiai nurodyti userlist_file=/etc/vsftpd.userlist.

Todėl į savo vsftpd.conf konfigūracijos failą pridėkite šias eilutes (arba, jei jos jau yra, panaikinkite jas komentarus ir nustatykite jų reikšmes, kaip parodyta):

userlist_enable=YES                   # allow access to list of usernames from the userlist_file
userlist_file=/etc/vsftpd.userlist    # stores usernames.
userlist_deny=NO   

7. Dabar į savo vsftpd.conf konfigūracijos failą pridėkite šias eilutes, kad apribotumėte FTP naudotojų prieigą prie jų namų katalogų.

chroot_local_user=YES		#means local users will be placed in a chroot jail, their home directory after login by default settings.
user_sub_token=$USER         	
local_root=/home/$USER/ftp   	

Išsaugokite failo pakeitimus ir uždarykite jį.

8. Nustatykite šią SELinux loginę taisyklę, kad įgalintumėte FTP skaityti/rašyti vartotojo namų katalogo failus.

semanage boolean -m ftpd_full_access --on

9. Galiausiai iš naujo paleiskite vsftpd paslaugą, kad paveiktumėte visus anksčiau atliktus pakeitimus:

systemctl restart vsftpd

FTP serverio testavimas naudojant RHEL 8

10. Norėdami patikrinti, ar aukščiau pateikta FTP sąranka veikia gerai, pirmiausia sukurkite FTP naudotoją naudodami komandą useradd ir sukurkite to naudotojo slaptažodį.

useradd -m -c "Tecmint HowTos" -s /bin/bash tecmint
passwd tecmint

11. Tada pridėkite naudotoją tecmint prie failo /etc/vsftpd.userlist naudodami komandą echo, kaip nurodyta toliau.

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

12. Tada sukurkite alternatyvų vietinį vartotojo šakninį katalogą (tecmint, jūsų tikriausiai skiriasi) ir šiame kataloge nustatykite atitinkamus leidimus.

mkdir -p /home/tecmint/ftp
chown nobody:nobody /home/tecmint/ftp
chmod a-w /home/tecmint/ftp

13. Tada vietinėje šakninėje vietoje sukurkite katalogą, kuriame naudotojas saugos savo failus.

mkdir /home/tecmint/ftp/files
chown tecmint:tecmint /home/tecmint/ftp/files
chmod 0700 /home/tecmint/ftp/files/

14. Dabar prisijunkite prie FTP serverio naudodami bet kurį FTP klientą, kaip nurodyta toliau.

ftp [email 
Pavyzdžio išvestis
Connected to 192.168.56.100
220 Welcome to TecMint.com FTP service.
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls

Viskas! Šiame straipsnyje aprašėme, kaip įdiegti, konfigūruoti ir apsaugoti FTP serverį naudojant RHEL 8. Kitame straipsnyje parodysime, kaip apsaugoti FTP serverį naudojant SSL/TLS ryšius. Iki tol likite su mumis.