Was ist FTP?
FTP (File Transfer Protocol) ist ein Client-Server-Netzwerkprotokoll, mit dem Benutzer Dateien von und zu Remote-Computern austauschen können.
FTP verwendet Klartext, um Daten zu übertragen und auf Daten zuzugreifen. Für die Linux-Betriebssystemplattform sind mehrere verschiedene Open-Source-FTP-Server verfügbar. 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 lernen wir, wie man VSFTPD einrichtet und konfiguriert. Es ist sehr sicher und stabil und im Paket-Repository von CentOS 8 verfügbar.
VSFTP FTP-Server installieren
Um das VSFTPD-Paket unter CentOS 8 zu installieren, öffnen Sie ein Terminal oder stellen Sie per SSH 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 vsftpd aktivieren# systemctl vsftpd starten
Erstellen Sie eine Kopie der ursprünglichen Konfigurationsdatei /etc/vsftpd/vsftpd.conf indem Sie den folgenden Befehl eingeben:
# 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 darin die folgenden Anweisungen:
anonymous_enable=NO # Anonyme Benutzer deaktivieren (Unbekannte Benutzer)local_enable=YES # Lokale Benutzer zulassenwrite_enable=YES # FTP-Schreibbefehle zulassenlocal_umask=022 # umaskdirmessage_enable=YES als Standard festlegen # Nachrichten bei Verzeichnisänderungen aktivierenxferlog_enable=YES # Protokollierung von Uploads aktivieren und downloadsconnect_from_port_20=YES # PORT-Übertragungsverbindungen von Port 20 sicherstellen xferlog_std_format=YES # Standardprotokoll beibehalten formatlisten=NO # vsftpd-Ausführung im eigenständigen Modus verhindern modelisten_ipv6=YES # vsftpd erlauben, auf IPv6 zu lauschen socketpam_service_name=vsftpd # PAM-Dienstnamen auf vsftpdBenutzerliste im FTP-Server konfigurieren
Standardmäßig alle Benutzer, die sich in der user_list befinden Datei unter /etc/vsftpd/user_list sind erlaubt um FTP-Dienste zu nutzen.
Um Benutzer in einer Chroot-Umgebung einzuschränken , verwenden Sie die folgenden Anweisungen:
chroot_local_user=YES # Chroot-Umgebung für Benutzer erstellenallow_writeable_chroot=YES # Erlaube einem Benutzer Schreibrechte im Chroot-GefängnisverzeichnisVerwenden Sie die folgenden Anweisungen, um Benutzer auf ihr Home-Verzeichnis zu beschränken:
userlist_enable=YES # vsftpd aktivieren, um Benutzernamen zu ladensuserlist_deny=NO # Benutzern in der Benutzerliste Zugriff gewährenWenn Sie einen umfassenden Zugriff auf unser System bereitstellen möchten, fügen Sie diese Anweisung in Ihre Konfigurationsdatei ein:
chroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list #Benutzer in dieser Dateiliste haben GesamtzugriffSpeichern und schließen Sie die Konfigurationsdatei.
Erstellen Sie jetzt eine chroot_list unter /etc/vsftpd/ Verzeichnis, indem Sie den folgenden Befehl verwenden:
# touch /etc/vsftpd/chroot_list
Fügen Sie dieser Liste nur die Benutzer hinzu, denen Sie Gesamtzugriff auf das System gewähren möchten.
Erstellen Sie einen Benutzer 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 user1Fügen Sie diesen Nutzer zur user_list hinzu Um einen Benutzer auf sein Home-Verzeichnis zu beschränken, verwenden Sie den folgenden Befehl:
# vim /etc/vsftpd/user_listGeben Sie „i ein ” zum Einfügen und geben Sie diesen Benutzernamen ein, wie in der Abbildung gezeigt:
Drücken Sie ESC und geben Sie :wq! ein zum Speichern der Datei.
Wenn Sie einem bestimmten Benutzer Gesamtzugriff auf das System gewähren möchten, fügen Sie diesen Benutzer in /etc/vsftpd/chroot_list. hinzu
Starten Sie den VSFTPD neu Dienst:
# systemctl vsftpd neu starten
Ü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 durch die Firewall zuzulassen:
# firewall-cmd - - add-service =ftp - - permanent# firewall-cmd - - reload
Testen des FTP-Servers von einem Windows-Rechner
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 verwende 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 Benutzer1)
Passwort
Hafen:21
Nach erfolgreicher Verbindung können Sie Dateien nach Bedarf hochladen/herunterladen.
Schlussfolgerung
In diesem Tutorial haben wir gelernt, wie man einen FTP-Server auf Centos 8 einrichtet, Benutzer auf ihr Home-Verzeichnis beschränkt und ihnen Lese-/Schreibzugriff gewährt. Wir haben auch gesehen, wie man dem bestimmten Benutzer allgemeinen Zugriff auf das System gibt.