Installieren Sie VSFTP auf Ubuntu 20.04. In dieser Anleitung erfahren Sie, wie Sie einen FTP-Server einrichten und einem Benutzer Zugriff auf ein bestimmtes Verzeichnis als Chroot gewähren.
Dieses Setup wurde auf einer Google Compute Engine-VM-Instanz mit Ubuntu 20.04 LTS getestet.
Dieses Setup funktioniert also gut für jede virtuelle Maschine auf AWS EC2 Instance oder DigitalOcean oder anderen Cloud-Hosting-Servern oder VPS oder Dedicated.
Voraussetzungen für Google Cloud
Wenn Sie die Google Cloud Platform verwenden, um FTP einzurichten, müssen Sie die folgenden Schritte ausführen.
- Eine ausgeführte Compute Engine, siehe Compute Engine-Instanz mit Ubuntu 20.04 einrichten.
- Die Ersteinrichtung des Ubuntu-Servers abgeschlossen.
Schritte zum Einrichten von FTP
- Richten Sie Ihre VM-Instanz ein
- Abschließen der anfänglichen Servereinrichtung
- Firewall-Regeln konfigurieren
- Erstellen Sie einen neuen Benutzer
- Installieren Sie den VSFTP-FTP-Server
- FTP konfigurieren
- Überprüfen Sie die Einrichtung
Ich nehme an, Sie haben Ihren Server eingerichtet und konfiguriert.
Firewall-Regeln einrichten
Sie können FTP auf jedem gewünschten Port konfigurieren, jetzt werden Sie es auf dem Standardport 21 konfigurieren, also müssen Sie eine Firewall-Regel erstellen, um Zugriff auf diese Ports zu gewähren.
Wir öffnen auch die Ports 40000 – 50000 für Verbindungen im passiven Modus.
Gehen Sie zu VPC-Netzwerk>> Firewall-Regeln und klicken Sie auf Firewall-Regeln erstellen.
In Name Geben Sie ftp
ein
Unter Ziele Wählen Sie All instances in the network
Im Quellfilter Wählen Sie IP ranges
In Quell-IP-Bereichen Geben Sie 0.0.0.0/0
ein
In Protokolle und Ports überprüfen Sie TCP und geben Sie 20, 21, 990, 40000-50000
ein .
Klicken Sie auf Erstellen .
FTP-Ports in UFW zulassen
Wenn Sie UFW auf Ihrem Server verwenden, stellen Sie sicher, dass Sie den Port öffnen, um Verbindungen zu Ihrem Server zuzulassen, andernfalls können Sie keine Verbindung herstellen.
sudo ufw allow 20/tcp sudo ufw allow 21/tcp sudo ufw allow 990/tcp sudo ufw allow 40000:50000/tcp
Neuen Benutzer erstellen
Jetzt können Sie mit dem folgenden Befehl einen neuen Benutzer erstellen, um das FTP zu testen.
sudo useradd -m -c "Name, Role" -s /bin/bash username
Richten Sie ein Passwort für diesen Benutzer ein.
sudo passwd username
VSFTP-Server installieren
VSFTP ist ein Very Secure File Transfer Protocol für Linux-basierte Systeme. Standardmäßig erlauben AWS oder Google Cloud keine passwortbasierte Authentifizierung für die Instanzen der virtuellen Maschine.
Mit VSFTP können Sie Ihren eigenen FTP-Server betreiben und Benutzer erstellen und sie jedem Verzeichnis zuweisen und den Zugriff auf andere Verzeichnisse auch mit Chroot verhindern.
Jetzt können Sie VSFTP mit dem folgenden Befehl installieren.
sudo apt install vsftpd
Sobald die Installation abgeschlossen ist, können Sie VSFTP konfigurieren.
VSFTP konfigurieren
Erstellen Sie zunächst eine Sicherungskopie der ursprünglichen VSFTP-Konfigurationsdatei.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
Bearbeiten Sie vsftpd.conf
Datei und nehmen Sie die folgenden Änderungen vor.
sudo nano /etc/vsftpd.conf
Ändern die folgenden Anweisungen.
listen=YES listen_ipv6=NO
Kommentar entfernen die folgenden Anweisungen.
write_enable=YES local_umask=022 chroot_local_user=YES
Hinzufügen diese Konfigurationen bis zum letzten.
seccomp_sandbox=NO allow_writeable_chroot=YES userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER user_config_dir=/etc/vsftpd/user_config_dir pasv_min_port=40000 pasv_max_port=50000
Hier haben Sie einen userlist_file
konfiguriert die die Liste der FTP-Benutzer und user_config_dir
enthält um die benutzerspezifischen Konfigurationen zu speichern.
Fügen Sie den zuvor erstellten Benutzer in userlist
hinzu Datei.
echo "username" | sudo tee -a /etc/vsftpd.userlist
Dieser Befehl erstellt eine Datei mit dem Namen vsftpd.userlist
und fügt den Benutzer hinzu und gibt den hinzugefügten Benutzer im Terminal aus.
Erstellen Sie ein Verzeichnis mit dem Namen user_config_dir
um die benutzerspezifischen Konfigurationen zu speichern.
sudo mkdir -p /etc/vsftpd/user_config_dir
Erstellen Sie eine neue Datei mit dem gleichen Namen wie der Benutzername in diesem Verzeichnis.
sudo nano /etc/vsftpd/user_config_dir/username
Fügen Sie dieser Datei die folgende Zeile hinzu.
local_root=/path/to/your/directory
Speichern Sie die Datei und verlassen Sie den Editor.
Starten Sie schließlich VSFTP neu.
sudo systemctl restart vsftpd
SSH-Zugriff verhindern
Jetzt müssen Sie den SSH-Zugriff auf den neu erstellten Benutzer verhindern, indem Sie den DenyUsers
hinzufügen Direktive in Ihrem sshd_config
.
sudo nano /etc/ssh/sshd_config
Fügen Sie die folgende Zeile am Ende der Datei hinzu.
DenyUsers username other-user
Sie können mehrere Benutzer, getrennt durch ein Leerzeichen, hinzufügen.
Starten Sie SSH neu.
sudo systemctl restart ssh
Bereiten Sie sich auf eine Rolle als Information Technology Professional vor mit Linux-Betriebssystem
Überprüfen Sie die Einrichtung
Öffnen Sie nun Ihren FTP-Client und geben Sie die externe IP-Adresse Ihres Servers als Hostname, Port als 21, Benutzername mit dem zuvor erstellten Benutzernamen und dem Passwort ein.
Jetzt werden Sie am Server angemeldet und können nur auf den Ordner zugreifen, der Ihnen zugewiesen ist.
Schlussfolgerung
Jetzt haben Sie gelernt, wie Sie FTP auf Ihrer VM-Instanz unter Ubuntu 20.04 einrichten.
Vielen Dank für Ihre Zeit. Wenn Sie auf ein Problem oder Feedback stoßen, hinterlassen Sie bitte unten einen Kommentar.