Website-Suche

So installieren, konfigurieren und sichern Sie den FTP-Server in RHEL 8


FTP (steht für „File Transfer Protocol) ist ein standardmäßiges und altes Netzwerkprotokoll, das für die Übertragung von Dateien zwischen einem Client und einem Server in einem Computernetzwerk verwendet wird. Es basiert auf einer Client-Server-Modellarchitektur, die über einen FTP-Client Zugriff auf Dateien und Verzeichnisse bietet, um Dateien auf den Server hochzuladen und von diesem herunterzuladen.

In unserem vorherigen Artikel haben wir erklärt, wie man einen FTP-Server in CentOS/RHEL 7 für die Übertragung von Computerdateien zwischen einem Client und einem Server in einem Computernetzwerk installiert, konfiguriert und sichert.

In diesem Artikel beschreiben wir, wie Sie einen FTP-Server auf RHEL 8 für die grundlegende Dateifreigabe zwischen Computern installieren, konfigurieren und sichern.

Installieren Sie den FTP-Server auf RHEL 8

1. Um ein sicheres FTP-Paket zu installieren, verwenden Sie den folgenden dnf-Befehl.

dnf install vsftpd

2. Wenn die Installation abgeschlossen ist, müssen Sie in der Zwischenzeit den vsftpd-Dienst starten, ihn für den automatischen Start beim Systemstart aktivieren und dann den Status mit den folgenden systemctl-Befehlen überprüfen.

systemctl start vsftpd
systemctl enable vsftpd
systemctl status vsftpd

3. Als Nächstes müssen Sie den FTP-Port 21 in der Systemfirewall öffnen, um den Zugriff auf FTP-Dienste von externen Systemen zu ermöglichen.

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

Konfigurieren Sie den FTP-Server auf RHEL 8

4. Um einen FTP-Server zu konfigurieren, müssen Sie mit dem folgenden Kopierbefehl eine Sicherungskopie der Haupt-FTP-Konfigurationsdatei /etc/vsftpd/vsftpd.conf erstellen.

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

5. Öffnen Sie dann die Konfigurationsdatei mit Ihrem bevorzugten Befehlszeileneditor.

vi /etc/vsftpd/vsftpd.conf

Legen Sie die folgenden Parameter mit diesen entsprechenden Werten fest (siehe man vsftpd.conf für die Bedeutung der Konfigurationsparameter):

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. Als nächstes müssen Sie FTP konfigurieren, um Benutzern den Zugriff auf FTP-Dienste basierend auf der Benutzerlistendatei /etc/vsftpd.userlist zu erlauben/verweigern.

Standardmäßig wird Benutzern, die in der Datei /etc/vsftpd.userlist aufgeführt sind, der Zugriff verweigert, wenn die Option userlist_deny auf YES gesetzt ist, wenn userlist_enable =YES, es ermöglicht den Zugriff.

Das Festlegen des Parameters userlist_deny=NO ändert jedoch die Einstellung, was bedeutet, dass nur Benutzer, die explizit in userlist_file=/etc/vsftpd.userlist aufgeführt sind, sich anmelden dürfen.

Fügen Sie daher die folgenden Zeilen in Ihre vsftpd.conf-Konfigurationsdatei ein (oder, falls bereits vorhanden, kommentieren Sie sie aus und legen Sie ihre Werte wie gezeigt fest):

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

7. Fügen Sie nun die folgenden Zeilen in Ihre Konfigurationsdatei vsftpd.conf ein, um FTP-Benutzer auf ihre Home-Verzeichnisse zu beschränken.

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   	

Speichern Sie die Änderungen in der Datei und schließen Sie sie.

8. Legen Sie die folgende boolesche SELinux-Regel fest, um FTP das Lesen/Schreiben von Dateien im Home-Verzeichnis des Benutzers zu ermöglichen.

semanage boolean -m ftpd_full_access --on

9. Starten Sie schließlich den vsftpd-Dienst neu, um alle oben vorgenommenen Änderungen zu übernehmen:

systemctl restart vsftpd

Testen des FTP-Servers auf RHEL 8

10. Um zu testen, ob das obige FTP-Setup ordnungsgemäß funktioniert, erstellen Sie zunächst einen FTP-Benutzer mit dem Befehl „useradd“ und erstellen Sie ein Passwort für diesen Benutzer.

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

11. Fügen Sie dann den Benutzer tecmint zur Datei /etc/vsftpd.userlist hinzu, indem Sie den Echo-Befehl wie folgt verwenden.

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

12. Erstellen Sie dann das alternative lokale Stammverzeichnis für den Benutzer (tecmint, Ihres ist wahrscheinlich anders) und legen Sie die entsprechenden Berechtigungen für dieses Verzeichnis fest.

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

13. Erstellen Sie als Nächstes ein Verzeichnis im lokalen Stammverzeichnis, in dem der Benutzer seine Dateien speichert.

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

14. Stellen Sie nun mit einem beliebigen FTP-Client wie folgt eine Verbindung zum FTP-Server her.

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

Das ist es! In diesem Artikel haben wir beschrieben, wie Sie einen FTP-Server in RHEL 8 installieren, konfigurieren und sichern. In unserem nächsten Artikel zeigen wir, wie Sie einen FTP-Server mithilfe von SSL/TLS-Verbindungen sichern. Bis dahin bleiben Sie bei uns.