Was ist FTP?
FTP (File Transfer Protocol) ist ein Client-Server-Netzwerkprotokoll, mit dem Benutzer Dateien von und zu Remotecomputern austauschen können.
FTP verwendet Klartext, um Daten zu übertragen und auf Daten zuzugreifen. Es gibt verschiedene Open-Source-FTP-Server für die Linux-Betriebssystemplattform. Die am häufigsten verwendeten FTP-Server sind VSFTPD, ProFTPD und PureFTPd. Das FTP-Protokoll verwendet Portnummer 21 für die Verbindung und Port 20 für die Datenübertragung. Im passiven Modus werden zusätzliche Ports verwendet.
In diesem Tutorial erfahren Sie, wie Sie VSFTPD einrichten und konfigurieren. Es ist sehr sicher und stabil und im CentOS 8-Paket-Repository verfügbar.
VSFTP FTP-Server installieren
Um das VSFTPD-Paket unter CentOS 8 zu installieren, öffnen Sie ein Terminal oder stellen Sie als Root-Benutzer eine Verbindung zu Ihrem Server her und geben Sie den folgenden Befehl ein:
# dnf install –y vsftpd
Sobald das Paket installiert ist, starten und aktivieren Sie den VSFTPD-Dienst mit dem folgenden Befehl:
# systemctl enable vsftpd# systemctl start vsftpd
Nehmen Sie eine Kopie der ursprünglichen Konfigurationsdatei /etc/vsftpd/vsftpd.conf durch Eingabe des folgenden Befehls:
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bk
Bearbeiten Sie nun die Konfigurationsdatei mit dem folgenden Befehl:
# vim /etc/vsftpd/vsftpd.conf
Suchen und setzen Sie die folgenden Anweisungen darin:
anonymous_enable=NO # disable anonymous users(Unknown users)local_enable=YES # allow local userswrite_enable=YES # allow ftp write commandslocal_umask=022 # set default umaskdirmessage_enable=YES # enable messages on change directoryxferlog_enable=YES # enable logging of uploads and downloadsconnect_from_port_20=YES # ensure PORT transfer connections from port 20 xferlog_std_format=YES # keep standard log formatlisten=NO # prevent vsftpd run in stand-alone modelisten_ipv6=YES # allow vsftpd to listen on IPv6 socketpam_service_name=vsftpd # set PAM Service name to vsftpd
Benutzerliste im FTP-Server konfigurieren
Standardmäßig dürfen alle Benutzer, die sich in der Datei user_list unter /etc/vsftpd/user_list befinden, FTP-Dienste verwenden.
Verwenden Sie die folgenden Direktiven, um Benutzer in einer Chroot-Umgebung einzuschränken:Advertisement
chroot_local_user=YES # Create chrooted environment for usersallow_writeable_chroot=YES # Allow write permission to a user on chroot jail directory
Verwenden Sie die folgenden Anweisungen, um Benutzer auf ihr Home-Verzeichnis zu beschränken:
userlist_enable=YES # enable vsftpd to load usernamesuserlist_deny=NO # allow access to users in the user list
Wenn Sie einen allgemeinen Zugriff auf unser System bereitstellen möchten, fügen Sie diese Direktive in Ihre Konfigurationsdatei ein:
chroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list #users in this file list have an overall access
Speichern und schließen Sie die Konfigurationsdatei.
Erstellen Sie nun eine chroot_list im Verzeichnis /etc/vsftpd/ mit dem folgenden Befehl:
# touch /etc/vsftpd/chroot_list
Fügen Sie nur die Benutzer in dieser Liste hinzu, denen Sie den Gesamtzugriff auf das System gewähren möchten.
Erstellen eines Benutzers für den Zugriff auf FTP-Dienste
Verwenden Sie den folgenden Befehl, um einen Benutzer für die Verwendung des FTP-Dienstes zu erstellen:
# useradd user1# passwd user1
Fügen Sie diesen Benutzer in der Datei user_list hinzu um einen Benutzer auf sein Home-Verzeichnis zu beschränken, verwenden Sie den folgenden Befehl:
# vim /etc/vsftpd/user_list
Geben Sie „i“ für insert ein und geben Sie diesen Benutzernamen ein, wie in der Abbildung gezeigt:
ESC drücken und eingeben :wq! zum Speichern der Datei.
Wenn Sie einem bestimmten Benutzer einen allgemeinen Zugriff auf das System gewähren möchten, fügen Sie diesen Benutzer in /etc/vsftpd/chroot_list hinzu.
Starten Sie den VSFTPD-Dienst neu:
# systemctl restart vsftpd
Überprüfen Sie den Status des FTP-Dienstes mit dem folgenden Befehl:
# systemctl status vsftpd
Firewall für FTP konfigurieren
Verwenden Sie den folgenden Befehl, um den FTP-Dienst über die Firewall zuzulassen:
# firewall-cmd - - add-service = ftp - - permanent# firewall-cmd - - reload
Testen des FTP-Servers von einem Windows-Computer aus
Um eine Verbindung zum FTP-Server herzustellen, benötigen Sie eine Client-Software. Die am häufigsten verwendete Software für FTP ist FileZilla, WINSCP usw. Ich benutze FileZilla für die Verbindung.
Öffnen Sie Ihre FTP-Client-Software und geben Sie die folgenden Details ein, um eine Verbindung herzustellen:
Host – > IP-Adresse oder Hostname.
Benutzername: FTP-Benutzername (In meinem Fall ist es user1)
Passwort
Hafen: 21
Nach erfolgreich verbunden, sie können upload/download dateien nach ihrem bedarf.
Fazit
In diesem Tutorial haben wir gelernt, wie man einen FTP-Server auf Centos 8 einrichtet, wie man Benutzer auf ihr Home-Verzeichnis beschränkt und ihnen Lese- / Schreibzugriff gewährt. Wir haben auch gesehen, wie man dem spezifischen Benutzer allgemeinen Zugriff auf das System gewährt.