FTP, kurz für File Transfer Protocol, ist ein beliebtes Protokoll zum Übertragen von Dateien zu und von einem FTP-Server. Es ist jedoch mit Sicherheitsrisiken behaftet, da es Daten und sensible Informationen wie Benutzernamen und Passwörter im Klartext sendet. VSFTPD ( Very Secure FTP Daemon ) ist ein schneller, sicherer und stabiler FTP-Server, der Verschlüsselung verwendet, um die mit dem Server ausgetauschten Daten zu sichern.
In diesem Tutorial lernen wir, wie man vsftpd-FTP-Server installieren an Debian 11.
Schritt 1: vsftpd auf Debian 11 installieren
Öffnen Sie zunächst das Terminal und aktualisieren Sie die Paketlisten auf Ihrem Debian-Server.
$ sudo apt update
Das vsftpd-Paket wird in offiziellen Debian-Repositorys gehostet. Verwenden Sie daher den APT-Paketmanager wie gezeigt.
$ sudo apt install vsftpd
Der Befehl installiert vsftpd neben anderen Abhängigkeiten. Nach der Installation startet vsftpd automatisch. Sie können dies bestätigen, indem Sie den Befehl ausführen:
$ sudo systemctl status vsftpd
An der Ausgabe können Sie sehen, dass vsftpd wie erwartet ausgeführt wird.
Falls der vsftpd-Dienst in Ihrem Fall nicht läuft, können Sie ihn wie angegeben starten.
$ sudo systemctl start vsftpd
Aktivieren Sie dann den Dienst, um beim Booten zu starten.
$ sudo systemctl enable vsftpd
Schritt 2: Erstellen Sie einen eindeutigen FTP-Benutzer
Als Nächstes erstellen wir ein eindeutiges FTP-Benutzerkonto, mit dem wir uns beim FTP-Server anmelden. Nutzen Sie einfach die adduser
Befehl gefolgt vom Namen des Benutzers und reagieren Sie entsprechend auf die Eingabeaufforderungen.
$ sudo adduser ftpuser

Schritt 3: FTP-Benutzer zur Liste der zugelassenen Anmeldebenutzer hinzufügen
Im weiteren Verlauf werden wir den FTP-Benutzer zum hinzufügen vsftpd.userlist
Datei. Lokalen Benutzern, die in dieser Datei angegeben sind, wird die Berechtigung zum Zugriff auf den FTP-Server gewährt.
Führen Sie also den Befehl aus:
$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist

Perfekt. Fahren wir nun fort und konfigurieren vsftpd.
Schritt 4: FTP-Benutzerverzeichnis erstellen
Erstellen Sie als Nächstes ein FTP-Verzeichnis für den FTP-Benutzer und weisen Sie die entsprechenden Verzeichnisberechtigungen und den Besitz zu.
$ sudo mkdir -p /home/ftpuser/ftp_dir
$ sudo chmod -R 750 /home/ftpuser/ftp_dir
$ sudo chown -R ftpuser: /home/ftpuser/ftp_dir
Schritt 5: vsftpd konfigurieren
Es sind einige zusätzliche Schritte erforderlich, bevor wir uns anmelden und mit dem Server interagieren können. Fahren Sie fort und bearbeiten Sie die Hauptkonfigurationsdatei – /etc/vsftpd.conf
.
$ sudo vim /etc/vsftpd.conf
Es gibt einige Einstellungen, die Sie sicherstellen müssen, dass sie festgelegt sind.
Fangen wir erstmal an mit FTP-Zugang. Standardmäßig wird anonymen Benutzern der Zugriff gewährt. Aber das ist aus Sicherheitsgründen nicht das, was wir wollen. Daher werden wir die Anmeldung durch den anonymen Benutzer deaktivieren und nur dem lokalen Benutzer Zugriff gewähren.
anonymous_enable=NO
local_enable=YES
Als nächstes müssen Sie dem lokalen Benutzer erlauben, Dateien hochzuladen und Zugriff auf sein Home-Verzeichnis zu erhalten sowie Änderungen an den Dateien wie angegeben vorzunehmen.
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
Darüber hinaus können Sie die lokalen Benutzer einschränken, die auf Dateien zugreifen und diese hochladen können, indem Sie nur die Benutzer angeben, die in der Datei enthalten sind vsftpd.userlist
Datei.
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
Um eine sichere FTP-Verbindung zum Server bereitzustellen, müssen wir den Server mit einem SSL-Zertifikat verschlüsseln. Wir werden ein selbstsigniertes SSL-Zertifikat generieren, um den Server zu verschlüsseln. Führen Sie dazu den Befehl aus.
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Kehren Sie erneut zur Standardkonfigurationsdatei zurück und fügen Sie diese Zeilen ein, um den Pfad der generierten SSL-Zertifikate anzugeben und SSL zu aktivieren.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
Zusammenfassend sollte Ihre Konfigurationsdatei diese Zeilen enthalten:
zuhören=NEIN
listen_ipv6=JA
anonym_enable=NEIN
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=JA
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NEIN
Starten Sie den Server neu, damit die Änderungen wirksam werden.
$ sudo systemctl restart vsftpd
Um sicherzustellen, dass alles in Ordnung ist, können Sie den Betriebsstatus überprüfen.
$ sudo systemctl status vsftpd
Schritt 5: Greifen Sie auf den vsftpd-Server zu
Wir sind jetzt mit den Konfigurationen fertig. Als letztes müssen Sie sich anmelden. Falls Sie eine Firewall aktiviert haben, erlauben Sie die Ports 20 und 21.
$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
Laden Sie dann die Firewall neu, damit die Änderungen wirksam werden.
$ sudo ufw reload
Schnappen Sie sich schließlich Ihren FTP-Client wie FileZilla und geben Sie die Details wie folgt ein:
Gastgeber: sftp://Server-IP
Nutzername: ftpuser
Passwort: Passwort von ftpuser
Nachdem Sie die Angaben ausgefüllt haben, klicken Sie auf die Schaltfläche ‘QuickConnect’.

Nach erfolgreicher Verzeichnisauflistung können Sie nun mit der sicheren Übertragung von Dateien über SSL beginnen.

Führen Sie in der Befehlszeile einfach den Befehl aus:
$ sftp ftpuser@server-IP
Geben Sie „ja“ ein, wenn Sie aufgefordert werden, fortzufahren, und geben Sie dem FTP-Benutzer das Kennwort zum Anmelden an.

Fazit
Dies war ein Tutorial, in dem wir gelernt haben, wie man den vsftpd-FTP-Server auf Debian 11 installiert. Wir gingen weiter und erstellten den Benutzer, konfigurierten den Server und loggten uns von einem FTP-Client und über die Befehlszeile ein.