Die Installation eines FTP-server (vsftpd) auf Ubuntu 18.04 / 18.10 / 19.04 / 19.10

Veröffentlicht in: Articles | 0

Bevor Sie beginnen…

Es ist erstaunlich, wie viele Entwickler sind sich noch nicht bewusst, SFTP-und die Vorteile über FTP/FTPS. SFTP kommt mit Linux-Server vorinstalliert und funktioniert wie normale FTP, ist aber sicherer und weniger Aufwand einzurichten. Wenn Ihr FTP-Client SFTP unterstützt, sollten Sie es verwenden!

  • So konfigurieren Sie SFTP für ein Webserver-Dokument root

Installieren Sie vsftpd

Beginnen wir mit der Aktualisierung der Paketlisten und der Installation von vsftpd unter Ubuntu 18.04 / 18.10 / 19.04 / 19.10.,

Unten haben wir zwei Befehle getrennt durch &&. Der erste Befehl aktualisiert die Paketlisten, um sicherzustellen, dass Sie die neueste version und Abhängigkeiten für vsftpd. Der zweite Befehl lädt dann vsftpd herunter und installiert es. Drücken Sie y und ENTER, wenn Sie aufgefordert werden, fortzufahren.

sudo apt update && sudo apt install vsftpd

Überprüfen Sie nach der Installation den Status von vsftpd

sudo service vsftpd status

Oben können wir sehen, dass unser FTP-Server jetzt betriebsbereit ist.,

Firewall konfigurieren

Wenn Sie dies noch nicht getan haben, wird empfohlen, die ufw Firewall für Ubuntu zu aktivieren 18.04 / 18.10 / 19.04 / 19.10. Bevor Sie ufw firewall aktivieren, stellen Sie sicher, dass Sie eine Regel für SSH hinzufügen, da Sie sonst möglicherweise von Ihrem Server gesperrt werden, wenn Sie remote verbunden sind. Wenn Sie keine Firewall einrichten möchten, fahren Sie mit Schritt 3 fort.

sudo ufw allow OpenSSH

Öffnen wir die Ports 20 und 21 für FTP und die Ports 40000-50000 für passives FTP. Wir öffnen auch Port 990 für TLS, den wir später einrichten werden.,

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw allow 990/tcp

Aktivieren Sie nun die Firewall, falls diese noch nicht vorhanden ist. Drücken Sie y und ENTER, wenn Sie gewarnt werden, dass die SSH-Verbindung unterbrochen wird.

sudo ufw enable

Um den Status der Firewall zu überprüfen, führen Sie Folgendes aus:

sudo ufw status

Wenn die Firewall ausgeführt wird, sollten SieStatus: active und die soeben hinzugefügten Firewall-Regeln sehen.

FTP-Benutzer erstellen

Wir erstellen jetzt einen neuen Benutzer, mit dem wir uns bei FTP anmelden., In diesem Beispiel erstellen wir einen neuen Benutzer namens ftpuser.

sudo adduser ftpuser

Generieren Sie ein sicheres Passwort und schützen Sie es.

Möglicherweise werden Sie auch aufgefordert, einige Kontaktinformationen einzugeben. Sie können einfach ENTER zu jedem dieser drücken.

Wenn Sie nur möchten, dass sich ftpuser über FTP anmeldet, sollten Sie den SSH-Zugriff deaktivieren, indem Sie den Benutzernamen in der SSH-Konfigurationsdatei auf die schwarze Liste setzen. Andernfalls springen Sie zu Schritt 4.

Öffnen Sie die SSH-Konfiguration in Nano.,

sudo nano /etc/ssh/sshd_config

Fügen Sie am Ende der Datei Folgendes hinzu und ersetzen Sie ftpuser durch den Benutzer, dem Sie den SSH-und SFTP-Zugriff verweigern möchten. Sie können hier mehrere Benutzer hinzufügen, die durch ein einzelnes Leerzeichen getrennt sind. (Um Nano einzufügen, drücken Sie die rechte Maustaste).

/ etc/ssh/sshd_config
DenyUsers ftpuser

Um die Datei zu speichern und zu beenden, drücken Sie CTRL + X, drücken Sie Y und drücken Sie dann ENTER.

Starten Sie den SSH-Dienst.,

sudo service sshd restart

Verzeichnisberechtigungen

Sie müssen nun entscheiden, wo dieser neue FTP-Benutzer Dateien anzeigen und hochladen darf.

vsftpd verwendet Chroot-Jails, um Benutzer auf ihre Home-Verzeichnisse zu beschränken, und erfordert, dass das Home-Verzeichnis nicht beschreibbar ist. Aus diesem Grund müssen wir einige Verzeichnisse und Berechtigungen einrichten.

Wenn Sie dieses FTP-Benutzerkonto zum Hochladen von Dateien auf einen Webserver verwenden möchten, fahren Sie mit Schritt 4.1 fort. Wenn Sie nur in einen Home-Ordner hochladen möchten, gehen Sie zu Schritt 4.2.

4.1., Hochladen auf einen Webserver

In vielen Fällen möchten Sie Dateien in das Dokumentstammverzeichnis auf dem Webserver hochladen können.

Wenn Sie hier eine vorherige Anleitung zum Einrichten mehrerer Domänen befolgt haben, befindet sich Ihr Dokumentstamm möglicherweise irgendwo wie /var/www/test1.com/public_html – in diesem Fall müssen Sie den Home-Ordner für ftpuser auf den Ordner über dem Dokumentstamm festlegen: /var/www/test1.com (Ersetzen test1.com für Ihre eigene Domain).,

Wenn Sie nicht mehrere Domänen verwenden, gehen wir davon aus, dass Sie das Standarddokument root /var/www/html sowohl für Apache als auch für Nginx in Ubuntu verwenden 18.04 / 18.10 / 19.04 / 19.10. In diesem Szenario müssen wir /var/www/ zum Home-Verzeichnis für unseren Benutzer ftpusermachen.

Legen wir den Ordner über dem Dokumentstammverzeichnis als Home-Verzeichnis für ftpuserfest.

sudo usermod -d /var/www ftpuser

Dadurch kann unser FTP-Benutzer Dateien im Dokumentstammverzeichnis schreiben und ändern.,

sudo chown ftpuser:ftpuser /var/www/html

Gehen Sie nun zu Schritt 5, um vsftpd zu konfigurieren.

4.2 In einen Home-Ordner hochladen

Wenn dieser Benutzer stattdessen Dateien in das Home-Verzeichnis hochladen soll, erstellen Sie ein neues Verzeichnis mit dem Namen ftp im Home-Verzeichnis des Benutzers und ein anderes darin mit dem Namen . In diesem Beispiel unten heißt unser Benutzer ftpuser.

sudo mkdir /home/ftpuser/ftp

Legen Sie den Besitz des ftp Verzeichnisses auf no nobody:nogroupfest.,

sudo chown nobody:nogroup /home/ftpuser/ftp

Legen Sie Berechtigungen für das Verzeichnis ftp mit chmod fest, damit es von niemandem geschrieben werden kann. a-w bedeutet a = all/alle - = remove w = Schreibrecht, so entfernen Sie die Schreibrechte für jedermann.

Als nächstes erstellen wir ein neues Verzeichnis in /ftp, in dem der Benutzer Dateien anzeigen und hochladen kann.,

sudo mkdir /home/ftpuser/ftp/files

Weisen Sie unserem neuen FTP-Benutzer das Eigentum an diesem Verzeichnis zu, da er sonst nicht darauf schreiben kann.

sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files

vsftpd konfigurieren

Wir müssen einige Änderungen an der vsftpd-Konfigurationsdatei vornehmen, bevor Sie FTP unter Ubuntu verwenden können 18.04 / 18.10 / 19.04 / 19.10.

Erstellen Sie vor dem Bearbeiten der Konfigurationsdatei ein Backup.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

Öffnen Sie nun die Konfigurationsdatei im nano Editor.,

sudo nano /etc/vsftpd.conf

Dies ist eine ziemlich große Datei, die jedoch größtenteils mit Kommentaren gefüllt ist, die Ihnen dabei helfen.

Sie müssen die Datei durchgehen und sicherstellen, dass die Einstellungen mit den folgenden übereinstimmen. Hinweis: Sie können in nano mit CTRL + W

Suchen Sie nach #write_enable=YES und kommentieren Sie es aus, indem Sie das # – Zeichen entfernen. Dadurch können FTP-Benutzer Dateien auf den Server schreiben.

/etc / vsftpd.,conf
write_enable=YES

Suchen Sie nach #chroot_local_user=YES und kommentieren Sie es aus, indem Sie das # – Zeichen entfernen. Dies verhindert, dass FTP-Benutzer außerhalb ihres eigenen Verzeichnisses surfen.

/etc / vsftpd.conf
chroot_local_user=YES

Suchen Sie nach #local_umask=022 und kommentieren Sie es aus, indem Sie das # – Zeichen entfernen. Dadurch erhalten hochgeladene Dateien und Ordner die richtigen Berechtigungen.

/etc / vsftpd.conf
local_umask=022

Wir müssen jetzt einige Direktiven hinzufügen, die nicht in der Datei vorhanden sind.,

Da Linux keine Dateien anzeigt, die mit einem Punkt beginnen, sind Dateien wie .htaccess in FTP nicht sichtbar. Dies kann ein Problem sein, wenn Sie Apache verwenden und mit .htaccessarbeiten möchten.

Um vsftpd zu zwingen, Dateinamen anzuzeigen, die mit einem Punkt beginnen, fügen Sie Folgendes am Ende der Datei ein. (Um nano einzufügen, drücken Sie die rechte Maustaste)

etc / vsftpd.conf
force_dot_files=YES

Zuletzt fügen wir einige Portbereiche für passives FTP hinzu, um sicherzustellen, dass genügend Verbindungen verfügbar sind. Fügen Sie Folgendes am Ende der Datei ein., (Um nano einzufügen, drücken Sie die rechte Maustaste)

etc / vsftpd.conf
pasv_min_port=40000pasv_max_port=50000

Wenn Sie zuvor Schritt 4.2 befolgt haben und nur möchten, dass dieser Benutzer Dateien in den Home-Ordner hochlädt, müssen wir vsftpd mitteilen, dass der local_root der /ftp Ordner ist, den wir zuvor erstellt haben.

Fügen Sie diese beiden Zeilen nicht hinzu, wenn der Benutzer in das Stammverzeichnis des Webdokuments hochladen soll!

/etc / vsftpd.conf
user_sub_token=$USERlocal_root=/home/$USER/ftp

Wir sind fertig mit vsftpd.conf für den Moment, wird aber in späteren Schritten zurückkehren, um Sicherheit und SSL einzurichten.,

Um die Datei zu speichern und zu beenden, drücken Sie CTRL + X, drücken Sie Y und drücken Sie dann ENTER.

Starten Sie vsftpd neu.

sudo systemctl restart vsftpd

Test FTP

Wir können jetzt vsftpd testen, um festzustellen, ob wir uns als zuvor erstellter Benutzer anmelden können. Wir empfehlen FileZilla, das unter Windows, Mac und Linux funktioniert.

Geben Sie die IP Ihres Servers, Ihren FTP-Benutzernamen und Ihr Passwort ein, die Sie zuvor erstellt haben, und klicken Sie auf Quickconnect.,

Oben können wir sehen, dass wir uns erfolgreich verbunden haben und das Webstammverzeichnis html wird angezeigt, obwohl dies auf Ihrem Server unterschiedlich sein kann.

Versuchen Sie, Ordner und Dateien im Webstammverzeichnis hochzuladen, zu erstellen und zu bearbeiten, um sicherzustellen, dass die Berechtigungen ordnungsgemäß funktionieren.

Sie werden feststellen, dass wir eine Warnung in FileZilla haben “ Status: Unsicherer Server, FTP über TLS wird nicht unterstützt.“Es wird dringend empfohlen, TLS jetzt so zu konfigurieren, dass Anmeldeinformationen und Datenverkehr über die FTP-Verbindung verschlüsselt werden.,

Wenn Sie Probleme beim Anmelden auf dem FTP-Server haben, überprüfen Sie das vsftpd-Protokoll. Um die letzten 200 Einträge mit tail:

sudo tail /var/log/vsftpd.log -n 200

Secure FTP with TLS (optional)

anzuzeigen, ist es wichtig, bei der Verwendung von FTP einige Dinge zu beachten – es ist standardmäßig nicht verschlüsselt, dh Ihre Anmeldeinformationen und Dateien, die Sie senden, sind anfällig für Abfangen. Um dies zu beheben, sollten Sie über FTPS (FTP über SSL/TLS) eine Verbindung zu vsftpd herstellen.

Beginnen wir mit der Erstellung eines neuen Zertifikats mit dem Werkzeug openssl.,

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Sie werden aufgefordert, einige details wie Land, etc. Sie müssen diese nicht ausfüllen. Sie können einfach ENTER für Standardeinstellungen drücken.

Nachdem Ihr privater Schlüssel erstellt wurde, müssen wir einige Änderungen an der vsftpd-Konfigurationsdatei vornehmen.

Öffnen Sie die Konfigurationsdatei imnano Editor.

sudo nano /etc/vsftpd.conf

Finden Sie die folgende zeile: (Hinweis: sie können suchen in nano mit CTRL + W)

etc/vsftpd.,conf
ssl_enable=NO

Ändern Sie es in:

etc/vsftpd.conf
ssl_enable=YES

Fügen Sie Folgendes darunter ein.

/etc / vsftpd.conf

Datei speichern und beenden (drücken Sie CTRL + X, drücken Sie Y und drücken Sie dann ENTER).

Starten Sie vsftpd neu.

sudo systemctl restart vsftpd

Testen von TLS mit FileZilla

Wir können jetzt TLS testen. Wir empfehlen FileZilla, das unter Windows, Mac und Linux funktioniert.,

Geben Sie die IP Ihres Servers, Ihren FTP-Benutzernamen und Ihr Passwort ein, die Sie zuvor erstellt haben, und klicken Sie auf Quickconnect.

Möglicherweise wird Ihnen eine Warnung zu unbekannten Zertifikaten angezeigt. Klicken Sie in zukünftigen Sitzungen auf Dieses Zertifikat immer vertrauen und klicken Sie auf OK.

Wenn Sie über TLS verbunden sind, wird es Ihnen im Verbindungsprotokoll mitgeteilt. Sie sehen auch ein Vorhängeschloss in der unteren rechten Ecke.

Fertig!,

4.79 (42 Stimmen)

Lassen Sie mich wissen, ob dies geholfen hat. Folgen Sie mir auf Twitter,Facebook und YouTube oder kaufen Sie mir einen Smoothie.

p. s. Mit AI 🤖habe ich meinen AdSense-Umsatz um 68% gesteigert. Lesen Sie meine Ezoic Bewertung, um herauszufinden, wie.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.