File Transfer Protocol (FTP) ist ein Standard-Netzwerkprotokoll, das verwendet wird, um eine Datei über ein TCP-basiertes Netzwerk wie das Internet von einem Host auf einen anderen zu kopieren. FTP basiert auf einer Client-Server-Architektur und verwendet separate Steuer- und Datenverbindungen zwischen Client und Server. FTP-Benutzer können sich mit einem Klartext-Anmeldeprotokoll authentifizieren, können sich jedoch anonym verbinden, wenn der Server so konfiguriert ist, dass dies zugelassen wird.
Die ersten FTP-Clientanwendungen waren interaktive Befehlszeilentools, die Standardbefehle und -syntax implementierten. Clients mit grafischer Benutzeroberfläche wurden seitdem für viele der gängigen Desktop-Betriebssysteme entwickelt, die heute verwendet werden.
FTP-Server installieren
Stellen Sie vor der Installation von vsftpd sicher, dass der Server Zugriff auf das Internet hat. Wenn dies nicht der Fall ist, konfigurieren Sie das lokale YUM-Repository für die vsftpd-Installation.
Installieren Sie den vsftpd-Server mit dem folgenden Befehl.
# yum -y install vsftpd
FTP-Server konfigurieren
Die Konfigurationsdatei befindet sich im Ordner /etc/vsftp. Vsftpd.conf ist die Konfigurationsdatei des FTP-Servers.
# vi /etc/vsftpd/vsftpd.conf
Diese Datei enthält viele Anweisungen, die helfen, die Sicherheit des FTP-Servers zu erhöhen; Im Folgenden sind die wichtigen Anweisungen aufgeführt, die bereits in der Datei enthalten sind.
Richtlinie
| In Vsftpd.conf | Verwendung |
anonymous_enable | JA | Steuert, ob anonyme Anmeldungen erlaubt sind oder nicht. Wenn aktiviert ist, werden sowohl die Benutzernamen ftp als auch anonym als anonyme Anmeldungen erkannt. |
local_enable | JA | Steuert, ob lokale Anmeldungen erlaubt sind oder nicht. Wenn aktiviert, können normale Benutzerkonten in /etc/passwd (oder wo auch immer Ihre PAM-Konfigurationsreferenzen) verwendet werden, um sich anzumelden. Dies muss aktiviert sein, damit alle nicht anonymen Anmeldungen funktionieren, einschließlich virtueller Benutzer. |
write_enable | JA | Damit wird gesteuert, ob FTP-Kommandos, die das Dateisystem verändern, erlaubt sind oder nicht. Diese Befehle sind: STOR, DELE, RNFR,RNTO, MKD, RMD, APPE und SITE. |
local_umask | 022 | Der Wert , auf den die umask für die Dateierstellung für lokal eingestellt ist Benutzer. |
anon_upload_enable | JA
Aber es hat die Datei kommentiert, Sie müssen es auskommentieren. | Bei Einstellung auf JA dürfen anonyme Benutzer unter bestimmten Bedingungen Dateien hochladen. Damit dies funktioniert, muss die Option write_enable aktiviert sein und der anonyme FTP-Benutzer muss Schreibrechte für die gewünschten Upload-Speicherorte haben. Diese Einstellung ist ebenfalls erforderlich, damit virtuelle Benutzer sie hochladen können; standardmäßig werden virtuelle Nutzer mit anonymen (d. h. maximal eingeschränkten) Privilegien behandelt. |
anon_mkdir_write_enable | JA
Aber es hat die Datei kommentiert, Sie müssen es auskommentieren. | Bei Einstellung auf JA dürfen anonyme Benutzer unter bestimmten Bedingungen neue Verzeichnisse erstellen. Damit dies funktioniert, muss die Option write_enable aktiviert sein und der anonyme FTP-Benutzer muss Schreibrechte auf dem übergeordneten Verzeichnis haben. |
hören | JA
| Wenn aktiviert, läuft vsftpd im Standalone-Modus. Das bedeutet, dass Vsftpd nicht von irgendeiner Art von inetd ausgeführt werden darf. Stattdessen wird die Die ausführbare Vsftpd-Datei wird einmal direkt ausgeführt. Vsftpd kümmert sich dann selbst um das Abhören und Verarbeiten eingehender Verbindungen. |
Im Folgenden sind einige weitere Optionen aufgeführt, die Sie für mehr Sicherheit in die Datei einfügen können.
Richtlinie | Optionen | Beschreibung |
userlist_enable | JA/NEIN | Wenn aktiviert, lädt vsftpd eine Liste von Benutzernamen aus dem durch userlist_file angegebenen Dateinamen. Wenn ein Benutzer versucht, sich mit einem Namen in dieser Datei anzumelden, wird er abgelehnt, bevor er nach einem Passwort gefragt wird. Dies kann nützlich sein, um zu verhindern, dass Klartext-Passwörter übertragen werden. Siehe auch userlist_deny. |
chroot_local_user | JA/NEIN | Wenn auf YES gesetzt, werden lokale Benutzer (standardmäßig) nach der Anmeldung in ein chroot()-Gefängnis in ihrem Home-Verzeichnis platziert. Warnung:Diese Option hat Sicherheitsrisiken, insbesondere wenn die Benutzer Upload-Berechtigungen oder Shell-Zugriff haben. Aktivieren Sie nur, wenn Sie wissen, was Sie tun. Beachten Sie, dass diese Auswirkungen auf die Sicherheit nicht vsftpd-spezifisch sind. Sie gelten für alle FTP-Daemons, die anbieten, lokale Benutzer in chroot()-Jails zu stecken. |
local_max_rate | In KB Beispiel: local_max_rate=1000 | Die maximal zulässige Datenübertragungsrate in Bytes pro Sekunde für lokal authentifizierte Benutzer. Standard:0 (unbegrenzt) |
anon_max_rate | in KB Beispiel: anon_max_rate=1000 | Die maximal zulässige Datenübertragungsrate in Bytes pro Sekunde für anonyme Clients. Standard:0 (unbegrenzt) |
kein_anon_passwort | JA/NEIN | Wenn aktiviert, verhindert dies, dass vsftpd nach einem anonymen Passwort fragt – der anonyme Benutzer meldet sich direkt an. |
Hier werden wir nur auf unsere Anforderungen eingehen. Lassen Sie uns die anonyme Anmeldung deaktivieren, indem Sie den folgenden Eintrag in der Konfigurationsdatei bearbeiten.
anonymous_enable=NO
Lokalen Benutzern erlauben, sich bei vsftpd anzumelden.
local_enable=YES
Schreibzugriff für lokale Benutzer aktivieren.
write_enable=YES
Versetzen Sie die lokalen Benutzer in „chroot jailed“, damit ihnen der Zugriff auf Teile der Systemdateien verweigert wird
chroot_local_user=YES
Erlaube dem Chroot-Benutzer zu schreiben.
allow_writeable_chroot=YES
Starten Sie den vsftpd-Dienst neu.
# systemctl restart vsftpd.service
Stellen Sie vsftpd so ein, dass es beim Systemstart gestartet wird.
# systemctl enable vsftpd.service
Firewall
Lassen Sie Port 21 in der Firewall zu, damit auf vsftp über das Netzwerk zugegriffen werden kann.
# firewall-cmd --permanent --zone=public --add-port=21/tcp # firewall-cmd --reload
SELinux
Geben Sie den folgenden Befehl aus, um die Schreibberechtigung für Home-Verzeichnisse zu aktivieren.
# setsebool -P ftp_home_dir 1
Das ist alles. Um FileZilla oder WinSCP zu verwenden, müssen Sie den passiven Modus in vsftp aktivieren .