Zoeken op website

FTP-server installeren, configureren en beveiligen in RHEL 8


FTP (staat voor “File Transfer Protocol”) is een standaard en oud netwerkprotocol dat wordt gebruikt voor de overdracht van bestanden tussen een client en server op een computernetwerk. Het is gebouwd op een client-server-modelarchitectuur, die toegang biedt tot bestanden en mappen via een FTP-client, om bestanden naar de server te uploaden en er ook vanaf te downloaden.

In ons vorige artikel hebben we uitgelegd hoe u FTP Server in CentOS/RHEL 7 installeert, configureert en beveiligt voor de overdracht van computerbestanden tussen een client en server op een computernetwerk.

In dit artikel beschrijven we hoe u een FTP-server op RHEL 8 installeert, configureert en beveiligt voor het eenvoudig delen van bestanden tussen computers.

Installeer FTP-server op RHEL 8

1. Om een beveiligd FTP-pakket te installeren, gebruikt u de volgende dnf-opdracht.

dnf install vsftpd

2. Wanneer de installatie voltooid is, moet u in de tussentijd de vsftpd-service starten, deze automatisch laten starten bij het opstarten van het systeem en vervolgens de status verifiëren met de volgende systemctl-opdrachten.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. Vervolgens moet u FTP-poort 21 op de systeemfirewall openen om toegang tot FTP-services vanaf externe systemen mogelijk te maken.

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

Configureer FTP-server op RHEL 8

4. Om een FTP-server te configureren, moet u een back-up maken van het hoofd-FTP-configuratiebestand /etc/vsftpd/vsftpd.conf met behulp van de volgende kopieeropdracht.

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

5. Open vervolgens het configuratiebestand met uw favoriete opdrachtregeleditor.

vi /etc/vsftpd/vsftpd.conf

Stel de volgende parameters in met deze corresponderende waarden (zie man vsftpd.conf voor de betekenis van de configuratieparameters):

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. Vervolgens moet u FTP configureren om gebruikers toegang tot FTP-services toe te staan/te weigeren op basis van het gebruikerslijstbestand /etc/vsftpd.userlist.

Standaard wordt de toegang aan gebruikers uit het bestand /etc/vsftpd.userlist geweigerd, waarbij de optie userlist_deny is ingesteld op YES, als userlist_enable =JA, het maakt toegang mogelijk.

Maar het instellen van de parameter userlist_deny=NO verandert de instelling, wat betekent dat alleen gebruikers die expliciet vermeld staan in userlist_file=/etc/vsftpd.userlist toestemming krijgen om in te loggen.

Voeg daarom de volgende regels toe aan uw vsftpd.conf configuratiebestand (of als deze al bestaan, verwijdert u de opmerkingen en stelt u hun waarden in zoals weergegeven):

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

7. Voeg nu de volgende regels toe aan uw vsftpd.conf configuratiebestand om FTP-gebruikers te beperken tot hun thuismappen.

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   	

Sla de wijzigingen op in het bestand en sluit het.

8. Stel de volgende SELinux booleaanse regel in om FTP in staat te stellen bestanden in de thuismap van de gebruiker te lezen/schrijven.

semanage boolean -m ftpd_full_access --on

9. Start ten slotte de vsftpd-service opnieuw op om alle wijzigingen te beïnvloeden die we tot nu toe hierboven hebben aangebracht:

systemctl restart vsftpd

FTP-server testen op RHEL 8

10. Om te testen of de bovenstaande FTP-installatie goed werkt, begint u met het aanmaken van een FTP-gebruiker met de opdracht useradd en maakt u een wachtwoord voor die gebruiker.

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

11. Voeg vervolgens de gebruiker tecmint toe aan het bestand /etc/vsftpd.userlist met behulp van de echo-opdracht als volgt.

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

12. Maak vervolgens de alternatieve lokale hoofdmap voor de gebruiker (tecmint, die van jou is waarschijnlijk anders) en stel de juiste rechten in voor deze map.

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

13. Maak vervolgens een map aan binnen de lokale hoofdlocatie, waar de gebruiker zijn/haar bestanden bewaart.

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

14. Maak nu als volgt verbinding met de FTP-server via een willekeurige FTP-client.

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

Dat is het! In dit artikel hebben we beschreven hoe u een FTP-server in RHEL 8 installeert, configureert en beveiligt. In ons volgende artikel laten we zien hoe u de FTP-server kunt beveiligen met behulp van SSL/TLS-verbindingen. Blijf tot die tijd bij ons.