Sådan installeres, konfigureres og sikres FTP-server i RHEL 8


FTP (står for "File Transfer Protocol") er en standard og gammel netværksprotokol, der bruges til overførsel af filer mellem en klient og server på et computernetværk. Det er bygget på en klientserver-modelarkitektur, der giver adgang til filer og mapper via en FTP-klient, for at uploade filer til serveren samt downloade filer fra den.

I vores tidligere artikel har vi forklaret, hvordan man installerer, konfigurerer og sikrer FTP-server i CentOS/RHEL 7 til overførsel af computerfiler mellem en klient og server på et computernetværk.

I denne artikel vil vi beskrive, hvordan du installerer, konfigurerer og sikrer en FTP-server på RHEL 8 til grundlæggende fildeling mellem computere.

Installer FTP-server på RHEL 8

1. Brug følgende dnf-kommando for at installere sikker FTP-pakke.

# dnf install vsftpd

2. Når installationen er afsluttet, skal du starte vsftpd-tjenesten i mellemtiden, aktivere den til at starte automatisk ved systemstart og derefter kontrollere status ved hjælp af følgende systemctl-kommandoer.

# systemctl start vsftpd
# systemctl enable vsftpd
# systemctl status vsftpd

3. Dernæst skal du åbne FTP-port 21 på system Firewall for at give adgang 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 at konfigurere en FTP-server skal du tage backup af den primære FTP-konfigurationsfil /etc/vsftpd/vsftpd.conf ved hjælp af følgende kopikommando.

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

5. Åbn derefter konfigurationsfilen ved hjælp af din foretrukne kommandolinjeditor.

# vi /etc/vsftpd/vsftpd.conf

Indstil følgende parametre med disse tilsvarende værdier (se man vsftpd.conf for betydningen af konfigurationsparametrene):

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. Dernæst skal du konfigurere FTP for at give/nægte brugere adgang til FTP-tjenester baseret på brugerlistefilen /etc/vsftpd.userlist.

Som standard nægtes brugere, der er angivet i filen /etc/vsftpd.userlist , adgang med indstillingen userlist_deny indstillet til YES , hvis userlist_enable = JA , det giver adgang.

Men ved at indstille parameteren userlist_deny = NO ændres indstillingen, hvilket betyder, at kun brugere, der udtrykkeligt er angivet i userlist_file =/etc/vsftpd.userlist , får lov til at logge ind.

Tilføj derfor følgende linjer i din vsftpd.conf konfigurationsfil (eller hvis der allerede findes, skal du fjerne kommentar til dem og indstille deres værdier 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. Tilføj nu følgende linjer i din vsftpd.conf konfigurationsfil for at begrænse FTP-brugere til deres hjemmekataloger.

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   	

Gem ændringerne i filen, og luk den.

8. Indstil følgende SELinux boolske regel for at aktivere FTP til at læse/skrive filer i brugerens hjemmekatalog.

# semanage boolean -m ftpd_full_access --on

9. Genstart endelig vsftpd-tjenesten for at påvirke alle de ændringer, vi har foretaget indtil videre:

# systemctl restart vsftpd

Test af FTP-server på RHEL 8

10. For at teste, om ovenstående FTP-opsætning kører fint, skal du starte med at oprette en FTP-bruger med kommandoen useradd og oprette en adgangskode til den bruger.

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

11. Føj derefter brugerens tecmint til filen /etc/vsftpd.userlist ved hjælp af ekkokommandoen som følger.

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

12. Opret derefter den alternative lokale rodmappe til brugeren (tecmint, din er sandsynligvis anderledes), og indstil de relevante tilladelser til denne mappe.

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

13. Opret derefter et bibliotek inden for den lokale rodplacering, hvor brugerens gemmer sine filer.

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

14. Opret nu forbindelse til FTP-serveren ved hjælp af en hvilken som helst FTP-klient som følger.

# ftp [email 
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 artikel beskrev vi, hvordan man installerer, konfigurerer såvel som sikrer en FTP-server i RHEL 8. I vores næste artikel vil vi vise, hvordan man sikrer FTP-server ved hjælp af SSL/TLS-forbindelser. Indtil da, bliv hos os.