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.