File Transfer Protocol oder FTP ist ein sehr altes und eines der bekanntesten Netzwerkprotokolle. Es ist heutzutage im Vergleich zu SFTP oder SCP nicht sicher, aber immer noch die erste Wahl vieler Benutzer, um Dateien zwischen einem Server und einem Client zu übertragen. FTP ist als unsicher bekannt, da es Daten zusammen mit Benutzeranmeldeinformationen ohne jegliche Art von Verschlüsselung überträgt.
Wir haben heutzutage eine große Auswahl an Open-Source-FTP-Servern wie FTPD, VSFTPD, PROFTPD und pureftpd. Unter allen ist VSFTPD ein sehr sicheres, schnelles und am häufigsten verwendetes Protokoll zum Übertragen von Dateien zwischen zwei Systemen.
VSFTPD ist auch als "Very Secure File Transfer Protocol Daemon" mit SSL-Unterstützung bekannt , IPv6, explizites und implizites FTPS.
In dieser Anleitung zeigen wir Ihnen, wie Sie den FTP-Server vsftpd unter Debian 11 installieren.
Voraussetzungen
Ein Server, auf dem Debian 11 ausgeführt wird.
Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.
1. Installieren Sie Vsftpd
Bevor Sie mit der Installation beginnen, aktualisieren Sie Ihren Debian 11-Server, indem Sie den folgenden Befehl im Terminal ausführen:
sudo apt update -y
sudo apt upgrade -y
Debian hat ein sehr großes Repository und das vsftpd-Paket ist im offiziellen Repository verfügbar. Sie können also den vsftpd ganz einfach installieren, indem Sie den folgenden Befehl ausführen:
sudo apt install vsftpd -y
Starten Sie nach der Paketinstallation den Vsftpd-Dienst, überprüfen Sie den Dienststatus und aktivieren Sie den Dienst beim Start.
sudo systemctl start vsftpd
sudo systemctl status vsftpd
systemctl enable vsftpd.service
2. Erstellen Sie einen FTP-Benutzer und konfigurieren Sie ihn für die FTP-Anmeldung
Erstellen Sie nun ein neues Benutzerkonto für FTP, mit diesem Benutzer werden wir uns später beim FTP-Server anmelden.
sudo adduser sohan
Benutzer, die in der Datei vsftpd.userlist hinzugefügt wurden, haben die Berechtigung, auf den FTP-Server zuzugreifen.
Als Nächstes müssen wir den Benutzer sohan zur vsftpd-Benutzerliste hinzufügen. Öffnen Sie die Datei und fügen Sie einen Benutzer hinzu, indem Sie den folgenden Befehl ausführen:
echo "sohan" | sudo tee -a /etc/vsftpd.userlist
3. FTP-Benutzerverzeichnis erstellen
Als nächstes müssen wir ein FTP-Verzeichnis für unseren FTP-Benutzer erstellen und den Besitz mit dem folgenden Befehl festlegen:
sudo mkdir -p /home/sohan/ftp_directory
sudo chown niemand:nogroup /home/sohan/ftp_directory
sudo chmod a-w /home/sohan/ftp_directory
Erstellen Sie nun ein Verzeichnis, in das Dateien hochgeladen werden können, und geben Sie das Eigentum an den sohan-Benutzer, indem Sie den folgenden Befehl ausführen:
sudo mkdir -p /home/sohan/ftp_directory/ftp_data
sudo chown sohan:sohan /home/sohan/ftp_directory/ftp_data
cd /home/sohan/ftp_directory/
chmod -R 777 ftp_data
4. Konfigurieren Sie Vsftpd
Als Nächstes müssen Sie einige Standardparameter ändern, um einen FTP-Server einzurichten.
Erstellen Sie zuerst eine Sicherungskopie der ursprünglichen vsftpd-Konfigurationsdatei.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
Auf dem FTP-Server wird anonymen Benutzern standardmäßig Zugriff gewährt. Um den FTP-Server sicherer zu machen, werden wir die anonyme Benutzeranmeldung deaktivieren und nur dem bestimmten Benutzer Zugriff gewähren.
Öffnen Sie als Nächstes die Datei vsftpd.conf und nehmen Sie die folgenden Änderungen vor:
vim /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
Es gibt noch einige andere Änderungen, die wir in der Konfiguration vornehmen müssen. Öffnen Sie zuerst vsftpd.conf
sudo vim /etc/vsftpd.conf
Stellen Sie als Nächstes sicher, dass vsftpd.conf die folgenden Zeilen enthalten sollte:
listen=NO
listen_ipv6=YES
anonymous_enable=NO
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
user_sub_token=$USER
local_root=/home/$USER/ftp_directory
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
Speichern und schließen Sie die Datei. Sie können die obige Konfiguration Ihren Bedürfnissen entsprechend ändern.
Starten Sie jetzt den vsftpd-Dienst neu und überprüfen Sie den Dienststatus, indem Sie die folgenden Befehle ausführen:
sudo systemctl restart vsftpd
Stellen Sie als Nächstes sicher, dass der vsftpd-Dienst ausgeführt wird, indem Sie den folgenden Befehl im Terminal ausführen:
sudo systemctl status vsftpd
5. Erlauben Sie vsftpd in der Firewall und greifen Sie auf den vsftpd-Server zu
Wenn Sie eine Firewall verwenden, lassen Sie als Nächstes Port 21 und Port 22 zu, indem Sie den folgenden Befehl ausführen:
sudo ufw allow 21/tcp
sudo ufw allow 22/tcp
Laden Sie dann die Firewall neu, um die Änderungen zu übernehmen:
sudo ufw reload
Öffnen Sie als Nächstes einen beliebigen FTP-Client wie FileZilla und geben Sie Ihre Serverdetails ein, z. B. Protokoll, Host, Benutzer:
Klicken Sie jetzt auf Verbinden und geben Sie dann Ihr Passwort ein:
Dann werden Details wie unten angezeigt, klicken Sie auf OK.
An diesem Punkt sind Sie mit dem FTP-Server verbunden und können Dateien/Ordner hochladen und herunterladen.
6. Sichern Sie Vsftpd mit SSL/TLS
Angenommen, Sie möchten verschlüsselte Daten per FTP übertragen, dazu müssen Sie ein SSL-Zertifikat erstellen und eine SSL/TLS-Verbindung aktivieren.
Sie können ein Zertifikat mit OpenSSL erstellen, indem Sie den folgenden Befehl verwenden:
sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pemJetzt müssen Sie die vsftpd.conf-Datei bearbeiten und einige Änderungen vornehmen:
sudo vim /etc/vsftpd.confFügen Sie zuletzt die folgenden Zeilen hinzu:
rsa_cert_file=/etc/cert/vsftpd.pem
rsa_private_key_file=/etc/cert/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=JA
ssl_tlsv1=JA
ssl_sslv2=NEIN
ssl_sslv3=NEIN
require_ssl_reuse=NEIN
ssl_ciphers=HIGHSpeichern und beenden Sie die Datei und starten Sie dann Vsftpd mit dem folgenden Befehl neu:
sudo systemctl restart vsftpd7. Zugriff auf FTP über SSL/TLS
Öffnen Sie den FileZilla FTP-Client und gehen Sie zu Datei> Sites-Manager. Klicken Sie hier auf Neue Site hinzufügen und geben Sie den Host-/Site-Namen ein, fügen Sie die IP-Adresse hinzu, definieren Sie das zu verwendende Protokoll, Verschlüsselung:Require to explicate FTP over TLS und den Anmeldetyp. Klicken Sie dann auf die Schaltfläche Verbinden. Sie sollten das folgende Bild sehen:
Geben Sie als Nächstes Ihr Passwort ein:
Als Nächstes sehen Sie das SSL-Zertifikat, überprüfen die Zertifikatsdetails und klicken auf OK.
Endlich sehen Sie den Inhalt Ihres FTP-Servers und können Ihre Daten sicher von einem System übertragen zu einem anderen.
Schlussfolgerung
In der obigen Anleitung haben wir den VSFTPD-Server auf Debian 11 installiert. Wir lernen auch, wie man sich über eine unverschlüsselte und eine verschlüsselte Verbindung mit einem SSL-Zertifikat verbindet.