So konfigurieren Sie vsftpd für ein Benutzerverzeichnis auf einem Ubuntu 18.04 VPS oder einem dedizierten Server

Einführung

Vsftpd kurz vor Very Secure File Transfer Protocol Daemon ist ein sicheres FTP (File Transfer Protocol) für Ubuntu-Systeme. FTP ist das am häufigsten verwendete Standardnetzwerkprotokoll zum Herunterladen und Hochladen von Dateien zwischen zwei Computern in einem bestimmten Netzwerk.


Standardmäßig sind FTP-Daten unsicher, da wichtige Informationen wie Benutzernamen, Daten, Kennwörter usw. normalerweise unverschlüsselt im Klartext übertragen werden. Daher ist es wichtig sicherzustellen, dass die FTP-Verbindungen mit vsftpd verschlüsselt werden.

In diesem Tutorial zeigen wir Ihnen, wie Sie vsftpd mit SSL / TLS-Unterstützung unter Ubuntu 18.04 VPS konfigurieren.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • Ein Nicht-Root-Benutzer mit Sudo-Berechtigungen.
  • Ein VPS oder dedizierter Server unter Ubuntu 18.04
  • Eine konfigurierte statische IP-Adresse.

Schritt 1 – Installation von vsftpd

Aktualisieren Sie zunächst die Pakete und installieren Sie den vsftpd-Daemon, indem Sie die folgenden Befehle ausführen:

$ Sudo apt update
$ Sudo apt install vsftpd

Überprüfen Sie nach der Installation der Datei den vsftpd-Status mit dem folgenden Befehl:

$ Sudo service vsftpd status

Kopieren Sie nun die aktuelle Konfigurationsdatei und erstellen Sie eine Originalsicherung dafür, bevor Sie die Firewall konfigurieren:

$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig

Schritt 2 – Firewall konfigurieren

Überprüfen Sie zunächst, ob die Firewall aktiviert ist. Stellen Sie jedoch zuvor sicher, dass Sie SSH-Verkehr zulassen, da die Firewall diese Tests sonst blockieren kann.

Überprüfen Sie nun den Status der Firewall. Drücken Sie y dann Eingeben Wenn Sie vor einer Änderung der SSH-Verbindung gewarnt werden.

$ Sudo ufw status

Wenn die Firewall ordnungsgemäß funktioniert, sollten Sie die Meldung Status: active erhalten, und die Firewall-Regeln werden automatisch hinzugefügt:

Status: aktiv

Zum Handeln von
—                         ——      —-
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)

Öffnen Sie nun die Ports 20 und 21 für FTP, einschließlich der Ports 40000-50000 für passives FTP. Öffnen Sie auch Port 990, um TLS zu aktivieren, das wir später einrichten werden:

$ Sudo ufw erlauben 20 / tcp
$ Sudo ufw erlauben 21 / tcp
$ Sudo ufw erlauben 990 / tcp
$ Sudo ufw erlaubt 40000: 50000 / tcp
$ Sudo ufw status

Sobald der Vorgang abgeschlossen ist, sollte die Ausgabe der Firewall-Regeln folgendermaßen aussehen:

Status: aktiv

Zum Handeln von
—                         ——      —-
OpenSSH ALLOW Anywhere
990 / tcp ALLOW AnyOW
20 / tcp ALLOW AnyOW
21 / tcp ALLOW AnyOW
40000: 50000 / tcp ALLOW AnyOW
OpenSSH (v6) ALLOW Anywhere (v6)
20 / tcp (v6) ALLOW ALLOW (v6)
21 / tcp (v6) ALLOW ALLOW (v6)
990 / tcp (v6) ALLOW ALLOW (v6)
40000: 50000 / tcp (v6) ALLOW ALLOW (v6)

Nach der Installation von vsftpd und nachdem sichergestellt wurde, dass die erforderlichen Ports geöffnet sind, können wir einen FTP-Benutzer erstellen.

Schritt 3 – FTP-Benutzer erstellen

Erstellen wir einen neuen Benutzer für FTP. Stellen Sie sicher, dass Sie einen Testbenutzer hinzufügen. In unserem Beispiel rufen wir unseren neuen Benutzer an ftpuser.

$ Sudo adduser ftpuser

Erstellen Sie ein sicheres Passwort dafür. Sie werden aufgefordert, einige wichtige Informationen einzugeben, und drücken Sie dann EINGEBEN für jeden Fall.

Damit FTP für Benutzer sicherer ist, sollte es in ein bestimmtes Verzeichnis geleitet werden. Vsftpd kann dies mit erreichen chroot. Durch Aktivieren von chroot für Benutzer werden diese auf ein bestimmtes Ausgangsverzeichnis beschränkt. Da vsftpd jedoch sicherstellt, dass das Home-Verzeichnis sicher ist, sollte es vom lokalen Benutzer nicht beschreibbar sein.

In diesem Tutorial werden wir, anstatt die Schreibrechte im Home-Verzeichnis zu entfernen, ein neues erstellen ftp Verzeichnis anstelle von chroot und eine entsprechende beschreibbare Dateien Verzeichnis für die Originaldateien.

So erstellen Sie eine neue ftp Führen Sie den folgenden Befehl aus:

$ sudo mkdir / home / ftpuser / ftp

Erstellen Sie eine Besitzdatei im FTP-Verzeichnis an niemand: Nogruppe::

$ Sudo chown niemand: nogroup / home / ftpuser / ftp

Beseitigen Sie die Schreibberechtigungen:

$ Sudo chmod a-w / home / ftpuser / ftp

Überprüfen Sie nun diese Berechtigungen:

$ Sudo ls -la / home / ftpuser / ftp

Dadurch erhalten Sie eine Ausgabe wie die folgende

insgesamt 8
4 dr-xr-xr-x 2 nobodynogroup 4096 Aug 24 21:29 .
4 drwxr-xr-x 3 ftpuser ftpuser 4096 24. August 21:29 ..

Der nächste Schritt besteht darin, ein neues Verzeichnis zum Speichern von Uploads zu erstellen und sicherzustellen, dass diese dem lokalen Benutzer zugewiesen sind:

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

Führen Sie nun den folgenden Befehl aus, um die Berechtigung für das FTP-Verzeichnis zu überprüfen:

$ Sudo ls -la / home / ftpuser / ftp

Dies gibt Ihnen die folgende Ausgabe:

insgesamt 12
dr-xr-xr-x 3 nobodynogroup 4096 26. August 14:01 .
drwxr-xr-x 3 ftpuser ftpuser 4096 26. August 13:59 ..
drwxr-xr-x 2 ftpuser ftpuser 4096 26. August 14:01 Dateien

Fügen Sie nun eine weitere Datei hinzu test.txt zu Testzwecken:

$ echo"vsftpd Testdatei" | sudo tee /home/ftpuser/ftp/files/test.txt

Sobald die ftp Verzeichnis ist sicher und die Dateien Das Verzeichnis ist für den Benutzer zugänglich. Konfigurieren Sie FTP.

Schritt 4 – Konfigurieren des FTP-vsftpd-Zugriffs

Die wichtigsten Einstellungen, mit denen ein einzelner Benutzer eine Verbindung mit FTP herstellen kann, sind bereits vorgenommen vsftpd.conf. Erstellen Sie eine Sicherungsdatei, bevor Sie die Konfigurationsdatei bearbeiten.

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

Öffnen Sie nun die Konfigurationsdatei, um zu bestätigen, dass Ihre Konfigurationseinstellungen mit den folgenden übereinstimmen:

$ Sudo nano /etc/vsftpd.conf

Sie sollten die Ausgabe unten sehen:

. . .
# Anonymen FTP zulassen? (Standardmäßig deaktiviert).
anonym_enable = NO
#
# Kommentieren Sie dies aus, damit sich lokale Benutzer anmelden können.
local_enable = YES
. . .

Jetzt müssen Sie den FTP-Benutzern erlauben, Dateien auf den Server hochzuladen, indem Sie die mit “Beschriftung” gekennzeichnete Einstellung auskommentieren write_enable im Verzeichnis /etc/vsftpd.conf.

. . .
write_enable = YES
. . .

Bearbeiten Sie nun die Chroot, um sicherzustellen, dass die FTP-Benutzer keinen Zugriff auf Dateien außer denen im Verzeichnis /etc/vsftpd.conf haben:

. . .
chroot_local_user = YES
. . .

Füge hinzu ein user_sub_token Zeile, um einen Benutzernamen in die local_root Verzeichnis, um sicherzustellen, dass der Konfigurationsprozess für den lokalen Benutzer und alle anderen Benutzer in Zukunft funktioniert. Fügen Sie der Datei die folgenden Einstellungen hinzu /etc/vsftpd.conf::

. . .
user_sub_token = $ USER
local_root = / home / $ USER / ftp

Fügen wir außerdem den Port-Grenzbereich für passives FTP hinzu, um sicherzustellen, dass genügend Verbindungen verfügbar sind:

. . .
pasv_min_port = 40000
pasv_max_port = 50000

Beachten Sie, dass wir diese Ports in Schritt 2 geöffnet haben, um den Portbereich für passives FTP einzurichten. Stellen Sie bei Änderungen an diesen Werten sicher, dass Sie die Firewall-Einstellungen aktualisieren.

Um sicherzustellen, dass Benutzer nur dann auf FTP zugreifen können, wenn sie sich in der Liste befinden, und nicht standardmäßig, legen Sie die folgende Konfiguration im Verzeichnis fest /etc/vsftpd.conf::

. . .
userlist_enable = YES
userlist_file = / etc / vsftpd.userlist
userlist_deny = NO

Aus der obigen Konfiguration, wenn userlist_deny Wenn YES festgelegt ist, erhalten die zur Liste hinzugefügten Benutzer keinen FTP-Zugriff. Wenn NO festgelegt ist, dürfen nur Benutzer in der Liste darauf zugreifen.

Wenn Sie diese Änderungen vorgenommen haben, speichern Sie Ihre Datei und beenden Sie sie.

Fügen Sie nun den Benutzer hinzu /etc/vsftpd.userlist. Stellen Sie sicher, dass Sie das an die Datei angehängte Flag -a verwenden:

$ echo"ftpuser" | sudo tee -a /etc/vsftpd.userlist

Stellen Sie sicher, dass die Datei hinzugefügt wurde:

$ Cat /etc/vsftpd.userlist

Dies liefert die folgende Ausgabe:

ftpuser

Zuletzt starten Sie den vsftpd-Daemon neu, um die folgenden Änderungen zu übernehmen:

$ Sudo systemctl restart vsftpd

Nachdem Sie die Konfiguration festgelegt haben, testen Sie jetzt den FTP-Zugriff.

Schritt 5 – Testen des FTP-Zugriffs

Nachdem Sie Ihren Server erfolgreich so konfiguriert haben, dass der ftpuser eine Verbindung über FTP herstellen kann, müssen wir sicherstellen, dass dieser Prozess ordnungsgemäß funktioniert.

Versuchen Sie zunächst, ob anonym auf das System zugreifen kann. Wenn die Konfiguration wie geplant funktioniert, sollten Nichtbenutzer nicht auf das System zugreifen.

$ Ftp -p (IP-Adresse)

Die Ausgabe sollte folgendermaßen aussehen:

Verbunden mit der IP-Adresse.
220 (vsFTPd 3.0.3)
Name (IP-Adresse: Standard): anonym
530 Erlaubnis verweigert.
ftp: Anmeldung fehlgeschlagen.
Ftp

Schließen Sie nun die Verbindungen:

ftp>Tschüss

Versuchen Sie als Nächstes, eine Verbindung als Sudo-Benutzer herzustellen. Anderen Benutzern außer ftpuser sollte die Berechtigung verweigert werden, bevor sie überhaupt ihr Passwort eingeben.

$ Ftp -p IP-Adresse

Die Ausgabe sollte folgendermaßen aussehen:

Verbunden mit der IP-Adresse.
220 (vsFTPd 3.0.3)
Name (IP-Adresse: Standard): sudo_user
530 Erlaubnis verweigert.
ftp: Anmeldung fehlgeschlagen.
ftp>

Schließen Sie nun die Verbindung:

ftp>Tschüss

Als nächstes sollte der FTP-Benutzer eine Verbindung herstellen, Dateien lesen und sogar schreiben. Wir müssen sicherstellen, dass unser Benutzer eine einfache Verbindung findet:

$ Ftp -p IP-Adresse

Die Ausgabe sollte folgendermaßen aussehen:

Verbunden mit der IP-Adresse.
220 (vsFTPd 3.0.3)
Name (IP-Adresse: Standard): ftpuser
331Bitte geben Sie das Passwort an.
Passwort: Ihr_Benutzerpasswort
230Login erfolgreich.
Der Remote-Systemtyp ist UNIX.
Verwenden des Binärmodus zum Übertragen von Dateien.
ftp>

Wechseln Sie nun zu Dateien Verzeichnis und übertragen Sie die zuvor erstellten Dateien mit dem auf Ihren Computer erhalten Befehl:

ftp>CD-Dateien
ftp> Holen Sie sich test.txt

Die Ausgabe sollte folgendermaßen aussehen:

227EnteringPassiveMode (IP-Adresse).
150OpeningBINARY-Modus Datenverbindung für test.txt (16 Bytes).
226Übertragung abgeschlossen.
16 Bytes empfangen in 0,0101 Sekunden (1588 Bytes / s)
ftp>

Testen wir nun die Schreibberechtigungen, indem wir unsere Datei in das Verzeichnis mit einem neuen Namen hochladen:

ftp> puttest.txtupload.txt

Die Ausgabe sollte folgendermaßen aussehen:

227EnteringPassiveMode (IP-Adresse).
150Ok, um Daten zu senden.
226Übertragung abgeschlossen.
16 Bytes gesendet in 0,000894 Sekunden (17897 Bytes / s)

Schließen Sie nun die Verbindungen:

ftp>Tschüss

Nachdem Sie die Konfiguration getestet haben, sichern wir den Server.

Schritt 6 – Sichern der Transaktionen

FTP verschlüsselt keine Daten einschließlich der Anmeldeinformationen des Benutzers. Also werden wir TLS / SSL aktivieren, um eine Verschlüsselung zu erhalten. Erstellen Sie zunächst ein SSL-Zertifikat für vsftpd.

Zu diesem Zweck verwenden wir OpenSSL für das Zertifikat und geben die Zeile -days an, um eine einjährige Gültigkeit zu erhalten. Wir werden diesem Befehl auch einen privaten Schlüssel hinzufügen, um das Zertifikat und den Schlüssel in einer Datei zu haben:

$ 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, weitere Details für das Zertifikat anzugeben. Verwenden Sie Ihre Informationen in den hervorgehobenen Bereichen der folgenden Anzeige:

Generieren eines privaten 2048-Bit-RSA-Schlüssels
………………………………………………………………….+++
………..+++
Schreiben eines neuen privaten Schlüssels in ‘/etc/ssl/private/vsftpd.pem’
—–
Sie werden aufgefordert, Informationen einzugeben, die aufgenommen werden sollen
in Ihre Zertifikatsanfrage.
Was Sie eingeben möchten, wird als Distinguished Name oder DN bezeichnet.
Es gibt einige Felder, aber Sie können einige leer lassen
Für einige Felder gibt es einen Standardwert,
Wenn Sie ‘.’ Eingeben, bleibt das Feld leer.
—–
Ländername (2-Buchstaben-Code) [AU]: US
Name des Bundesstaates oder der Provinz (vollständiger Name) [Some-State]: NY
Ortsname (z. B. Stadt) []: New York City
Name der Organisation (z. B. Firma) [Internet Widgits Pty Ltd]: HostAdvice
Name der Organisationseinheit (z. B. Abschnitt) []:
Allgemeiner Name (z. B. FQDN des Servers oder IHR Name) []: your_server_ip
E-Mail-Addresse []:

Sobald die Zertifikate fertig sind, rufen Sie die Konfigurationsdatei vsftpd auf und öffnen Sie sie erneut:

$ Sudo nano /etc/vsftpd.conf

Unten beginnen zwei Zeilen mit RSA. Bearbeiten Sie sie so, dass Sie so etwas haben:

. . .
# rsa_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem
# rsa_private_key_file = / etc / ssl / private / ssl-cert-snakeoil.key
. . .

In der nächsten Zeile im selben Verzeichnis (/etc/vsftpd.conf), Fügen Sie die folgenden Informationen hinzu:

. . .
rsa_cert_file = / etc / ssl / private / vsftpd.pem
rsa_private_key_file = / etc / ssl / private / vsftpd.pem
. . .

Als Nächstes müssen Sie sicherstellen, dass SSL funktioniert, um zu verhindern, dass TLS-Benutzer Zugriff erhalten. Dies ist wichtig, um sicherzustellen, dass der gesamte Datenverkehr vollständig verschlüsselt ist. Dieser Schritt kann den FTP-Benutzer jedoch dazu zwingen, Clients zu wechseln.

Mach weiter und ändere dich ssl aktivieren zu JA

/etc/vsftpd.conf

. . .
ssl_enable = YES
. . .

Bearbeiten und fügen Sie diese Zeilen hinzu, um den anonymen Zugriff über SSL zu verweigern:

/etc/vsftpd.conf

. . .
allow_anon_ssl = NO
force_local_data_ssl = YES
force_local_logins_ssl = YES
. . .

Fügen Sie nun die folgenden Zeilen hinzu, um Ihren Server für die Verwendung von TLS zu konfigurieren:

/etc/vsftpd.conf

. . .
ssl_tlsv1 = JA
ssl_sslv2 = NO
ssl_sslv3 = NO
. . .

Zuletzt werden wir zwei zusätzliche Optionen hinzufügen. Wir benötigen hochverschlüsselte Cipher Suites, was bedeutet, dass die Schlüssellängen 128 Bit oder mehr betragen:

/etc/vsftpd.conf

. . .
require_ssl_reuse = NO
ssl_ciphers = HIGH
. . .

Die Ausgabe sieht folgendermaßen aus:

/etc/vsftpd.conf

# Diese Option gibt den Speicherort des RSA-Zertifikats an, das für SSL verwendet werden soll
# verschlüsselte Verbindungen.
# rsa_cert_file = / etc / ssl / certs / ssl-cert-snakeoil.pem
# rsa_private_key_file = / etc / ssl / private / ssl-cert-snakeoil.key
rsa_cert_file = / etc / ssl / private / vsftpd.pem
rsa_private_key_file = / etc / ssl / private / vsftpd.pem
ssl_enable = YES
allow_anon_ssl = NO
force_local_data_ssl = YES
force_local_logins_ssl = YES
ssl_tlsv1 = JA
ssl_sslv2 = NO
ssl_sslv3 = NO
require_ssl_reuse = NO
ssl_ciphers = HIGH

Wenn alles abgeschlossen ist, speichern Sie die Datei und beenden Sie sie.

Starten Sie nun das System neu, um diese Änderungen zu übernehmen:

$ Sudo systemctl restart vsftpd

Der nächste Schritt besteht darin, zu überprüfen, ob mit einem Client, der TLS unterstützt, eine Verbindung zum Server hergestellt werden kann.

Schritt 7 – Testen von TLS mit FileZilla

Zum Testen von TLS verwenden wir FileZilla, da es einen plattformübergreifenden Support-Service bietet.

Wenn Sie sich in FileZilla befinden, suchen Sie die Seitenverwalter und klicken Sie darauf.

So konfigurieren Sie vsftpd für ein Benutzerverzeichnis auf einem Ubuntu 18.04 VPS oder einem dedizierten Server

Drücken Sie im neuen Fenster die Taste Neue Seite Taste.

So konfigurieren Sie vsftpd für ein Benutzerverzeichnis auf einem Ubuntu 18.04 VPS oder einem dedizierten Server

Gehe zu Meine Seiten Symbol, wo Sie ein anderes Symbol mit der Bezeichnung sehen Neue Seite. Verwenden Sie die Umbenennen Klicken Sie auf die Schaltfläche, um Ihrer Site einen neuen Namen zuzuweisen.

Geben Sie Ihren Namen oder Ihre IP-Adresse in das Feld Host ein. Gehe zu Verschlüsselung und wähle Erfordern explizites FTP über TLS.

Für die Anmeldetyp Abschnitt auswählen Fragen Sie nach dem Passwort. Geben Sie Ihren FTP-Benutzer im nächsten Abschnitt mit der Bezeichnung ein Benutzer Feld.

So konfigurieren Sie vsftpd für ein Benutzerverzeichnis auf einem Ubuntu 18.04 VPS oder einem dedizierten Server

Drücken Sie die Verbinden und geben Sie Ihr Passwort ein.

So konfigurieren Sie vsftpd für ein Benutzerverzeichnis auf einem Ubuntu 18.04 VPS oder einem dedizierten Server

Drücken Sie OK um die Verbindung zu starten. Jetzt sollten Sie mithilfe der TLS / SSL-Verschlüsselung automatisch mit dem Server verbunden werden.

Wenn alles richtig geklappt hat, wird ein Serverzertifikat angezeigt, wie unten gezeigt:

So konfigurieren Sie vsftpd für ein Benutzerverzeichnis auf einem Ubuntu 18.04 VPS oder einem dedizierten Server

Nachdem Sie das Zertifikat akzeptiert haben, gehen Sie zu Dateien Ordner und doppelklicken Sie darauf, dann ziehen Sie upload.txt auf der linken Seite, um sicherzustellen, dass Sie die Dateien einfach herunterladen können.

So konfigurieren Sie vsftpd für ein Benutzerverzeichnis auf einem Ubuntu 18.04 VPS oder einem dedizierten Server

Benennen Sie nun die Kopie in um upload-tls.txt Übertragen Sie es dann zurück auf den Server, um festzustellen, ob Sie erfolgreich Dateien hochladen können.

So konfigurieren Sie vsftpd für ein Benutzerverzeichnis auf einem Ubuntu 18.04 VPS oder einem dedizierten Server

Wenn der Vorgang erfolgreich ist, können Sie Dateien mit SSL / TLS-Aktivierung erfolgreich übertragen.

Fazit

Herzliche Glückwünsche! Sie können FTP bequem für verschiedene Benutzer unter Ubuntu 18.04 VPS einrichten. Zu dir hinüber.

Schauen Sie sich diese Top 3 Linux Hosting Services an

FastComet

Startpreis:
2,95 $


Verlässlichkeit
9.7


Preisgestaltung
9.5


Benutzerfreundlich
9.7


Unterstützung
9.7


Eigenschaften
9.6

Bewertungen lesen

Besuchen Sie FastComet

Hostinger

Startpreis:
0,99 $


Verlässlichkeit
9.3


Preisgestaltung
9.3


Benutzerfreundlich
9.4


Unterstützung
9.4


Eigenschaften
9.2

Bewertungen lesen

Besuchen Sie Hostinger

ChemiCloud

Startpreis:
2,76 $


Verlässlichkeit
10


Preisgestaltung
9.9


Benutzerfreundlich
9.9


Unterstützung
10


Eigenschaften
9.9

Bewertungen lesen

Besuchen Sie ChemiCloud

Verwandte Anleitungen

  • So richten Sie einen VSFTPD-Server auf einem CentOS 7 VPS- oder dedizierten Server ein
    mittlere
  • So installieren und konfigurieren Sie vsftpd unter Ubuntu 18.04
    mittlere
  • So installieren Sie VSFTPD unter Ubuntu 18.04
    mittlere
  • So installieren Sie VSFTPD unter Ubuntu 18.04
    mittlere
  • So installieren Sie PrestaShop auf einem Ubuntu 18.04 VPS oder einem dedizierten Server
    mittlere
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me