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 mit dem Server ausgetauschte Daten zu sichern.
In diesem Tutorial lernen wir, wie man den vsftpd-FTP-Server installiert auf Debian 11 .
Schritt 1:vsftpd unter Debian 11 installieren
Öffnen Sie zuerst das Terminal und aktualisieren Sie die Paketlisten auf Ihrem Debian-Server.
$ sudo apt update
Das vsftpd-Paket wird auf offiziellen Debian-Repositories 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 folgenden Befehl ausführen:
$ sudo systemctl status vsftpd
Aus der Ausgabe können Sie ersehen, dass vsftpd wie erwartet läuft.
Falls der vsftpd-Dienst bei Ihnen nicht läuft, können Sie ihn wie angegeben starten.
$ sudo systemctl start vsftpd
Aktivieren Sie dann den Dienst so, dass er beim Booten startet.
$ 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. Verwenden Sie einfach den 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 Benutzer hinzufügen
Als nächstes fügen wir den FTP-Benutzer der vsftpd.userlist
Datei. In dieser Datei angegebenen lokalen Benutzern wird die Berechtigung zum Zugriff auf den FTP-Server erteilt.
Führen Sie also den Befehl aus:
$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
Perfekt. Lassen Sie uns nun fortfahren und vsftpd konfigurieren.
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 Eigentumsrechte 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 ein paar Einstellungen, die Sie sicherstellen müssen.
Beginnen wir zunächst mit dem FTP-Zugriff . Standardmäßig wird anonymen Benutzern Zugriff gewährt. Aber das wollen wir aus Sicherheitsgründen nicht. 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 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:
listen_ipv6=JA
anonymous_enable=NEIN
local_enable=JA
write_enable=JA
dirmessage_enable=JA
use_localtime=JA
xferlog_enable=JA
connect_from_port_20=JA
chroot_local_user=JA
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=JA
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=JA
userlist_file=/etc/vsftpd.user_list
userlist_deny=NEIN
Starten Sie den Server neu, damit die Änderungen wirksam werden.
$ sudo systemctl restart vsftpd
Nur um sicherzustellen, dass alles in Ordnung ist, können Sie den Ausführungsstatus überprüfen.
$ sudo systemctl status vsftpd
Schritt 5:Greifen Sie auf den vsftpd-Server zu
Wir sind jetzt mit den Konfigurationen fertig. Der letzte Schritt ist die Anmeldung. Falls Sie eine Firewall aktiviert haben, lassen Sie die Ports 20 und 21 zu.
$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
Laden Sie dann die Firewall neu, damit die Änderungen übernommen werden.
$ sudo ufw reload
Schnappen Sie sich schließlich Ihren FTP-Client wie FileZilla und geben Sie die Details wie folgt ein:
Host :sftp://server-IP
Benutzername: ftpuser
Passwort :Passwort des ftpuser
Nachdem Sie die Details ausgefüllt haben, klicken Sie auf die Schaltfläche „QuickConnect“.
Nach der erfolgreichen Verzeichnisauflistung können Sie nun damit beginnen, Dateien sicher über SSL zu übertragen.
Führen Sie in der Befehlszeile einfach den folgenden Befehl aus:
$ sftp ftpuser@server-IP
Geben Sie „Ja“ ein, wenn Sie zum Fortfahren aufgefordert werden, und geben Sie das Kennwort für den FTP-Benutzer an, um sich anzumelden.
Schlussfolgerung
Dies war ein Tutorial, in dem wir gelernt haben, wie man den vsftpd-FTP-Server unter Debian 11 installiert. Wir gingen weiter und erstellten den Benutzer, konfigurierten den Server und meldeten uns über einen FTP-Client und über die Befehlszeile an.