Hvordan installere, konfigurere og sikre FTP-server i RHEL 8


FTP (står for "File Transfer Protocol ") er en standard og gammel nettverksprotokoll som brukes for overføring av filer mellom en klient og server på et datanettverk. Den er bygget på en klient-server-modellarkitektur, som gir tilgang til filer og kataloger via en FTP-klient, for å laste opp filer til serveren samt laste ned filer fra den.

I vår forrige artikkel har vi forklart hvordan du installerer, konfigurerer og sikrer FTP-server i CentOS/RHEL 7 for overføring av datafiler mellom en klient og server på et datanettverk.

I denne artikkelen vil vi beskrive hvordan du installerer, konfigurerer og sikrer en FTP-server på RHEL 8 for grunnleggende fildeling mellom datamaskiner.

Installer FTP-server på RHEL 8

1. For å installere sikker FTP-pakke, bruk følgende dnf-kommando.

dnf install vsftpd

2. Når installasjonen er fullført, må du starte vsftpd-tjenesten i mellomtiden, aktivere den til å starte automatisk ved systemoppstart og deretter bekrefte statusen ved å bruke følgende systemctl-kommandoer.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. Deretter må du åpne FTP-port 21 på systemets brannmur for å tillate tilgang til FTP-tjenester fra eksterne systemer.

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

Konfigurer FTP-server på RHEL 8

4. For å konfigurere en FTP-server, må du ta sikkerhetskopi av hoved-FTP-konfigurasjonsfilen /etc/vsftpd/vsftpd.conf ved å bruke følgende kopieringskommando.

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

5. Åpne deretter konfigurasjonsfilen ved å bruke din favoritt kommandolinjeredigerer.

vi /etc/vsftpd/vsftpd.conf

Still inn følgende parametere med disse tilsvarende verdiene (se man vsftpd.conf for betydningen av konfigurasjonsparametrene):

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. Deretter må du konfigurere FTP for å tillate/nekte brukere tilgang til FTP-tjenester basert på brukerlistefilen /etc/vsftpd.userlist.

Som standard nektes brukere oppført i filen /etc/vsftpd.userlist tilgang med alternativet userlist_deny satt til JA, hvis userlist_enable =JA, det gir tilgang.

Men å sette parameteren userlist_deny=NO endrer innstillingen, noe som betyr at bare brukere som er eksplisitt oppført i userlist_file=/etc/vsftpd.userlist vil få lov til å logge på.

Legg derfor til følgende linjer i vsftpd.conf-konfigurasjonsfilen din (eller hvis den allerede eksisterer, fjern kommentarer og angi verdiene som vist):

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

7. Legg nå til følgende linjer i vsftpd.conf-konfigurasjonsfilen for å begrense FTP-brukere til hjemmekatalogene deres.

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   	

Lagre endringene i filen og lukk den.

8. Angi følgende SELinux boolske regel for å aktivere FTP for å lese/skrive filer i brukerens hjemmekatalog.

semanage boolean -m ftpd_full_access --on

9. Start til slutt vsftpd-tjenesten på nytt for å påvirke alle endringene vi har gjort så langt ovenfor:

systemctl restart vsftpd

Tester FTP-server på RHEL 8

10. For å teste om FTP-oppsettet ovenfor fungerer bra, start med å opprette en FTP-bruker med useradd-kommando og opprette et passord for den brukeren.

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

11. Deretter legger du til brukeren tecmint i filen /etc/vsftpd.userlist ved å bruke echo-kommandoen som følger.

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

12. Deretter oppretter du den alternative lokale rotkatalogen for brukeren (tecmint, din er sannsynligvis annerledes) og setter de riktige tillatelsene for denne katalogen.

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

13. Deretter oppretter du en katalog innenfor den lokale rotplasseringen, der brukeren vil beholde filene hans/hennes.

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

14. Koble nå til FTP-serveren ved å bruke en hvilken som helst FTP-klient som følger.

ftp [email 
Eksempelutgang
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

Det er det! I denne artikkelen beskrev vi hvordan du installerer, konfigurerer og sikrer en FTP-server i RHEL 8. I vår neste artikkel vil vi vise hvordan du sikrer FTP-server ved hjelp av SSL/TLS-tilkoblinger. Inntil da, bli hos oss.