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).
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 ftpuser
machen.
Legen wir den Ordner über dem Dokumentstammverzeichnis als Home-Verzeichnis für ftpuser
fest.
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:nogroup
fest.,
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.
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.
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.
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 .htaccess
arbeiten 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)
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)
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!
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
)
ssl_enable=NO
Ändern Sie es in:
ssl_enable=YES
Fügen Sie Folgendes darunter ein.
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!,
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