Kako instalirati, konfigurirati i osigurati FTP server u RHEL 8


FTP (skraćeno od “File Transfer Protocol”) je standardni i stari mrežni protokol koji se koristi za prijenos datoteka između klijenta i servera na računarskoj mreži. Izgrađen je na arhitekturi klijent-server modela, koji nudi pristup datotekama i direktorijumima preko FTP klijenta, za upload datoteka na server, kao i za preuzimanje datoteka sa njega.

U našem prethodnom članku smo objasnili kako da instalirate, konfigurišete i obezbedite FTP server u CentOS/RHEL 7 za prenos računarskih datoteka između klijenta i servera na računarskoj mreži.

U ovom članku ćemo opisati kako instalirati, konfigurirati i osigurati FTP server na RHEL 8 za osnovno dijeljenje datoteka između računara.

Instalirajte FTP server na RHEL 8

1. Da instalirate siguran FTP paket, koristite sljedeću dnf komandu.

dnf install vsftpd

2. Kada se instalacija završi, potrebno je da u međuvremenu pokrenete uslugu vsftpd, omogućite joj da se automatski pokreće pri pokretanju sistema, a zatim provjerite status koristeći sljedeće systemctl komande.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. Zatim morate otvoriti FTP port 21 na zaštitnom zidu sistema da biste dozvolili pristup FTP uslugama sa vanjskih sistema.

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

Konfigurirajte FTP server na RHEL 8

4. Da biste konfigurirali FTP server, trebate napraviti sigurnosnu kopiju glavne FTP konfiguracijske datoteke /etc/vsftpd/vsftpd.conf koristeći sljedeću naredbu za kopiranje.

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

5. Zatim otvorite konfiguracionu datoteku koristeći svoj omiljeni uređivač komandne linije.

vi /etc/vsftpd/vsftpd.conf

Postavite sljedeće parametre sa ovim odgovarajućim vrijednostima (pogledajte man vsftpd.conf za značenje parametara konfiguracije):

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. Zatim morate konfigurirati FTP da korisnicima omogući/zabrani pristup FTP uslugama na osnovu datoteke liste korisnika /etc/vsftpd.userlist.

Prema zadanim postavkama, korisnicima navedenim u datoteci /etc/vsftpd.userlist je odbijen pristup s opcijom userlist_deny postavljenom na DA, ako je userlist_enable =DA, omogućava pristup.

Ali, postavljanje parametra userlist_deny=NO mijenja postavku, što znači da će samo korisnicima koji su eksplicitno navedeni u userlist_file=/etc/vsftpd.userlist biti dozvoljeno da se prijave.

Stoga, dodajte sljedeće linije u vaš vsftpd.conf konfiguracijski fajl (ili ako već postoje, dekomentirajte ih i postavite njihove vrijednosti kao što je prikazano):

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

7. Sada dodajte sljedeće redove u vaš vsftpd.conf konfiguracijski fajl da ograničite FTP korisnike na njihove početne direktorije.

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   	

Sačuvajte promjene u datoteci i zatvorite je.

8. Postavite sljedeće SELinux booleovo pravilo da omogućite FTP-u da čita/piše fajlove korisničkog kućnog direktorija.

semanage boolean -m ftpd_full_access --on

9. Konačno ponovo pokrenite uslugu vsftpd kako biste utjecali na sve promjene koje smo do sada napravili iznad:

systemctl restart vsftpd

Testiranje FTP servera na RHEL 8

10. Da biste testirali da li gornja postavka FTP-a radi dobro, počnite kreiranjem FTP korisnika sa naredbom useradd i kreirajte lozinku za tog korisnika.

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

11. Zatim dodajte korisnika tecmint u datoteku /etc/vsftpd.userlist koristeći komandu echo kako slijedi.

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

12. Zatim kreirajte alternativni lokalni korijenski direktorij za korisnika (tecmint, vaš je vjerovatno drugačiji) i postavite odgovarajuće dozvole za ovaj direktorij.

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

13. Zatim kreirajte direktorij unutar lokalne korijenske lokacije, gdje će korisnik čuvati svoje datoteke.

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

14. Sada se povežite na FTP server koristeći bilo koji FTP klijent na sljedeći način.

ftp [email 
Sample Output
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

To je to! U ovom članku smo opisali kako instalirati, konfigurirati i osigurati FTP server u RHEL 8. U našem sljedećem članku ćemo pokazati kako osigurati FTP server korištenjem SSL/TLS veza. Do tada ostanite s nama.