So richten Sie VSFTPD auf Debian ein
- 2121
- 30
- Hr. Moritz Bozsik
VSFTPD ist das Akronym für sehr sichere FTP-Daemon: Es ist eines der am häufigsten verwendeten FTP-Server unter Linux und anderen Unix-ähnlichen Betriebssystemen. Es ist Open Source und wird unter der GPL -Lizenz veröffentlicht und unterstützt virtuelle Benutzer und SSL für Daten
Verschlüsselung. In diesem Tutorial sehen wir, wie Sie es installieren und unter Linux konfigurieren können.
In diesem Tutorial lernen Sie:
- So installieren Sie VSFTPD auf Debian 10
- So konfigurieren Sie VSFTPD
- So richten Sie anonyme Verwendung ein
- So richten Sie sich mit lokalen Benutzern an
- So richten Sie virtuelle Benutzer ein
- So richten Sie UFW ein, um eingehenden Verkehr zu ermöglichen
Softwareanforderungen und Konventionen verwendet
Kategorie | Anforderungen, Konventionen oder Softwareversion verwendet |
---|---|
System | Debian 10 (Buster) |
Software | VSFTPD, OpenSSL, libpam-pwdfile |
Andere | Root -Berechtigungen zum Installieren und Konfigurieren von VSFTPD |
Konventionen | # - Erfordert, dass gegebene Linux -Commands mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mithilfe von verwendet werden können sudo BefehlUS |
Installation
VSFTPD ist in den offiziellen Debian -Repositories erhältlich. Um es zu installieren, können wir unseren bevorzugten Paketmanager verwenden. Es geht nur darum, die Repositorys zu synchronisieren und das Paket zu installieren. Beide Dinge können durch erreicht werden
Ausführen der folgenden Befehle:
$ sudo apt-Get Update && sudo apt-Get Installieren Sie VSFTPD
Nur wenige Sekunden und das Paket wird in unserem Debian -System installiert. Die im Paket enthaltenen Installationsskripte achten auch darauf, die zu starten vsftpd Service automatisch, aber wir müssen uns daran erinnern, den Dienst jedes Mal neu zu starten oder neu zu laden, wenn wir die Konfigurationsdatei ändern. Um das verwenden zu können Virtuelle Benutzer Feature von der VSFTPD Wir müssen auch ein anderes Paket installieren:
$ sudo apt-Get Installieren Sie libpam-pwdfile
Wir werden seine Verwendung im speziellen Abschnitt dieses Tutorials sehen.
Sobald die erforderlichen Pakete installiert sind, können wir weiter fortfahren und VSFTPD konfigurieren: Wir werden im nächsten Abschnitt dieses Tutorials sehen, wie es geht.
Vsftpd setup
Die VSFTPD -Konfigurationsdatei ist /etc/vsftpd.Conf
. Wenn wir es öffnen, können wir die verschiedenen bereits darin enthaltenen Richtlinien sehen. Mal sehen, was für die häufigsten Fälle am relevantesten ist.
Aktivieren Sie eine anonyme Anmeldung
Der nicht authentifizierte Zugriff auf den Server als anonyme Benutzer ist standardmäßig deaktiviert. Um es zu aktivieren, müssen wir die verwenden anonymous_enable
Richtlinie, die in der Konfigurationsdatei in der Zeile platziert ist 25
. Alles was wir tun müssen, ist, es aufzunehmen JA
:
muss die Anweisung ändern in:
anonymous_enable = ja
Eine weitere Richtlinie, die wir ändern möchten, ist diejenige, die uns ein Verzeichnis in dem festlegen kann, was VSFTPD nach einem anonymen Zugriff navigieren wird. Die Richtlinie, die uns diese Einstellung steuern lässt anon_root
. Angenommen, wir möchten, dass ein anonymer Benutzer auf die zugreift /srv/ftp
Verzeichnis standardmäßig würden wir schreiben:
anon_root =/srv/ftp
Die gesamte anonyme Anmeldung wird intern an einen entworfenen Benutzer abgebildet, der standardmäßig standardmäßig ist ftp
. Um diese Zuordnung zu ändern, müssen wir die verwenden ftp_username
Option und setzen Sie es auf den Namen des Benutzers ein, dem wir anonyme Benutzer zuordnen möchten.
Standardmäßig darf ein anonymer Benutzer aus offensichtlichen Sicherheitsgründen nichts auf den Server schreiben. Wenn Sie dieses Verhalten ändern möchten (nicht empfohlen), müssen nur wenige Optionen geändert werden. Zuallererst der General write_enable
Richtlinie muss auf eingestellt werden JA
. Diese Richtlinie wird online kommentiert 31
der Konfigurationsdatei, sodass Sie nur den Kommentar entfernen müssen.
# In Übereinstimmung mit diesem Befehl FTP -Schreibbefehl ermöglicht. write_enable = ja
Sobald diese Richtlinie aktiviert ist, müssen wir lediglich an zwei weiteren Optionen arbeiten: anon_Upload_enable
Und anon_mkdir_write_enable
. Wenn der erstere auf eingestellt ist JA
Ein anonymer Benutzer kann dazu in der Lage sein hochladen Dateien, jedoch nur, wenn der Benutzer, auf den er zugeordnet ist (wie wir sagten, standardmäßig FTP) Schreibberechtigungen im Zielverzeichnis hat. Um diese Option zu aktivieren, müssen wir nur den Kommentar aus der Zeile entfernen 40
der Konfigurationsdatei:
# Dadurch können Sie dies ermöglichen, dass der anonyme FTP -Benutzer Dateien hochladen kann. Diese nur # hat einen Effekt, wenn die obige globale Schreibaktivität aktiviert ist. Außerdem müssen Sie # offensichtlich ein vom FTP -Benutzer beschreibbarer Verzeichnis erstellen. Anon_Upload_enable = Ja
Der anon_mkdir_write_enable
Richtlinie stattdessen, wenn sie auf eingestellt sind JA
Ermöglicht anonymen Benutzern, neue Verzeichnisse auf dem Server unter den oben genannten Bedingungen zu erstellen (der zugrunde liegende Benutzer auf dem Server muss Schreibberechtigungen im übergeordneten Verzeichnis haben). Die Richtlinie befindet sich in der Linie 44
der Konfigurationsdatei:
# In Übereinstimmung, wenn Sie möchten, dass der anonyme FTP -Benutzer in der Lage ist, neue Verzeichnisse zu erstellen. anon_mkdir_write_enable = ja
Noch einmal, da die Variable bereits auf festgelegt ist JA
, Damit es relevant ist, müssen wir nur den Kommentar daraus entfernen.
Damit anonyme Benutzer auch andere Art von Schreibvorgängen ausführen können, wie zum Beispiel Umbenennung oder Löschen Ein Verzeichnis, wir müssen eine andere Anweisung verwenden, die in der Konfigurationsdatei nicht vorhanden ist, anon_other_write_enable
und setzen Sie es auf JA
Wenn der oben genannte unser gewünschtes Verhalten ist:
anon_other_write_enable = yes
Authentifizierte Anmeldungen
Damit die lokalen Systembenutzer mit ihrem Systemkennwort auf den FTP -Server zugreifen können, ist die local_enable
Richtlinie muss auf eingestellt werden JA
: Dies ist der Standard auf dem Debian -System. Die Richtlinie kann online gefunden werden 28
des Daemons
Konfigurationsdatei:
# Dadurch dadurch, dass lokale Benutzer sich anmelden können. local_enable = ja
Wenn ein lokaler Benutzer erfolgreich authentifiziert wird, wird er/sie ein eigenes Heimverzeichnis als Root haben. Es ist jedoch möglich, einen alternativen Ausgangspunkt mit der Verwendung des local_root
Richtlinie. Diese Anweisung ist in der Konfigurationsdatei nicht vorhanden, daher müssen wir sie hinzufügen, wenn wir verwenden möchten. Um das zu setzen /srv/ftp
Verzeichnis als lokale Root zum Beispiel würden wir schreiben:
local_root =/srv/ftp
Chroot lokale Benutzer
Als Sicherheitsmaßnahme ist es möglich Chroot Jeder authentifizierte Benutzer in seinem eigenen Heimverzeichnis. Um diese Aufgabe zu erfüllen, müssen wir die verwenden chroot_local_user
Richtlinie:
chroot_local_user = ja
Wenn diese Funktion aktiviert ist, ist es möglich, eine Liste von Ausschlüssen (eine Liste von Benutzern, die nicht chrossoriert werden sollte) mit den folgenden Anweisungen festzulegen:
chroot_list_enable = yes chroot_list_file =/etc/vsftpd.chroot_list
Die erste Richtlinie ist erforderlich, um die Funktion zu aktivieren, die andere, um den Speicherort der Datei mit der Datei anzugeben, die die enthält Ausschlussliste. Die Datei muss erstellt werden, wenn es noch nicht vorhanden ist. Andernfalls fällt die Anmeldung fehl.
Als Sicherheitsmaß sollte ein Benutzer, wenn er chrodiert ist. Wenn dies der Fall ist, kann sich ein Benutzer in den neuesten Versionen von VSFTPD nicht anmelden, und der Server antwortet mit der folgenden Nachricht:
500 oops: vsftpd: weigern sich, mit beschreibbarer root in chroot zu laufen ()
Dieses Problem kann auf zwei Arten gelöst werden. Dieser erste ist offensichtlich dazu Behebung der Berechtigungen, Verweigern Sie den Benutzerzugriff auf das Top-Level-Verzeichnis des Chroot und lassen Sie sie nur auf Unterdiebstahl schreiben.
Der zweite Weg, um das Problem zu lösen, wenn Sie sich nicht für mögliche Sicherheitsauswirkungen interessieren, besteht darin umgehen Sie diese Einschränkung, Verwenden der folgenden Anweisung:
degly_writable_chroot = yes
Wenn Sie über Berechtigungen sprechen, ist es wichtig zu beachten 077
. Wenn diese Einstellung als zu restriktiv angesehen wird, ist es möglich, sie mit dem zu ändern local_umask
Richtlinie. Diese Richtlinie wird in der Linie kommentiert 35
der Konfigurationsdatei:
# Standard UMask für lokale Benutzer ist 077. Möglicherweise möchten Sie dies auf 022 ändern
Melden Sie sich mit virtuellen Benutzern an
Eine nette Funktion von VSFTPD ist die Möglichkeit, sich mit dem Anmeldung zu melden Virtuelle Benutzer. Ein virtueller Benutzer ist ein Benutzer, der nicht wirklich im System existiert, jedoch nur im Kontext der SFTPD -Anwendung. Um diese Funktion zu aktivieren, müssen wir die folgende Richtlinie verwenden:
guden_enable = ja
Wenn die Funktion aktiv ist guden_username
Richtlinie, die standardmäßig, wie wir bereits gesehen haben ftp.
Der nächste Schritt besteht darin, eine Datei mit den Benutzernamen und Passwörtern der virtuellen Benutzer zu erstellen. Um ein Hashed -Passwort zu generieren, können wir verwenden OpenSSL
und geben Sie den folgenden Befehl aus:
$ OpenSSL PassWD -1 Kennwort: Überprüfung - Passwort: $ 1 $ PFWH3JOU $ DQBINJW8BBTDQYS7EZTPR.
Der Passwd Befehl von OpenSSL wird an generierte Hash -Passwörter verwendet (MD5). Im obigen Beispiel wurden wir gebeten, dass das Passwort und seine Bestätigung gehasht werden soll. Schließlich wird das Hashed -Passwort generiert und auf dem Bildschirm angezeigt.
Der Benutzername muss zusammen mit dem Passwort in eine Datei eingefügt werden, sagen wir, es ist /etc/virtual_users.PWD
, im folgenden Format:
Benutzername: Hashed_Password
Angenommen, unser virtueller Benutzer heißt "LinuxConfig", würden wir schreiben:
LinuxConfig: $ 1 $ PFWH3JOU $ DQBINJW8BBTDQYS7EZTPR.
Die Operation muss für jeden virtuellen Benutzer wiederholt werden, den wir konfigurieren möchten.
Jetzt müssen wir die erstellen Pam Service, der von VSFTPD verwendet wird, um virtuelle Benutzer zu authentifizieren. Wir werden die Datei benennen vsftpd_virtual
und legen Sie es in die /etc/pam.D
Verzeichnis. Der Inhalt wird Folgendes sein:
#%PAM-1.0 Auth erforderlich PAM_PWDFILE.Also PWDFile/etc/vsftpd/virtual_userser.PWD -Konto benötigt PAM_PERMIT.So
Wie Sie sehen können, haben wir den Pfad der Datei angegeben, die den Benutzernamen und die Passwörter der virtuellen Benutzer in der ersten Zeile enthält. Alles, was wir jetzt tun müssen, ist, VSFTPD zu unterweisen, diesen PAM -Service zu nutzen,. Wir können es mit dem machen pam_service_name
Richtlinie:
pam_service_name = vsftpd_virtual
An diesem Punkt können wir die Konfigurationsdatei speichern, den Daemon neu starten und überprüfen, ob wir uns mit dem von uns gerade erstellten virtuellen Benutzer anmelden können.
Aktivierung der SSL -Unterstützung für die Datenverschlüsselung
Standardmäßig wird der SSL -Support auf VSFTPD deaktiviert, sodass übertragene Daten nicht verschlüsselt werden. Um die SSL -Unterstützung zu aktivieren, müssen wir die folgenden Anweisungen an den Linien verwenden 149
Zu 151
der Konfigurationsdatei:
# Diese Option gibt den Speicherort des RSA -Zertifikats an, das für SSL # verschlüsselte Verbindungen verwendet werden soll. RSA_CERT_FILE =/ETC/SSL/CERTS/SSL-CERT-SLAKEOIL.PEM RSA_PRIVATE_KEY_FILE =/etc/ssl/privat/ssl-cert-snakeoiloil.Schlüssel SSL_Enable = Ja
Die erste Richtlinie, RSA_CERT_FILE
wird verwendet, um den Pfad des RSA -Zertifikats für SSL -Verschlüsselungsverbindungen anzuzeigen. Der zweite, RSA_PRIVATE_KEY
, Stattdessen wird der Ort des RSA -Privatschlüssels angeben. Endlich, das ssl_enable
Die Richtlinie wird verwendet, um die Verwendung der SSL -Verschlüsselung zu ermöglichen.
Das Beispiel verwendet das /etc/ssl/certs/SSL-Cert-Snakeoiloil.Pem
Und /etc/ssl/privat/ssl-cert-snakeoiloil.Taste
Dateien, aber Sie möchten mit ziemlicher Sicherheit einen engagierten verwenden.
Angabe des Portbereichs für den passiven Modus
Der FTP Passive Modus ist der Standard für eine neue Installation von VSFTPD. Wenn wir jedoch explizit aktivieren möchten, können wir die folgende Anweisung verwenden:
# Setzen Sie auf Nein, wenn Sie die PASV -Methode zum Erhalten einer Datenverbindung # (passiver Modus) nicht zulassen möchten. Standard: Ja pasv_enable = ja
Wenn der Server in Betrieb ist Passivmodus, Es wird an den Client eine IP -Adresse und einen Port gesendet, auf den es für die Verbindung zuhören sollte. Diese Ports werden standardmäßig zufällig ausgewählt, da wir auf unserem Server eine Firewall verwenden müssen. Der Bereich der zu verwendenden Ports kann mit dem angegeben werden pasv_min_port
Und pasv_max_port
Anweisungen zum Beispiel:
# Der minimale Port, der Datenverbindungen im PASV -Stil zugewiesen wird. Kann verwendet werden, um # einen schmalen Portbereich anzugeben, um die Firewalling zu unterstützen. PASV_MIN_PORT = 10090 # Der maximale Port zur Zuordnung von Datenverbindungen im PASV -Stil zuordnen. Kann verwendet werden, um # einen schmalen Portbereich anzugeben, um die Firewalling zu unterstützen. Standard: 0 (Verwenden Sie einen beliebigen Port) pasv_max_port = 10100
Mit der folgenden Konfiguration verwendet der Server eine Reihe von Ports, aus denen stammt 10090
Zu 10100
.
Firewall -Setup
Damit unser VSFTPD -Server korrekt funktioniert. In diesem Tutorial werde ich die Verwendung des UFW Firewall Manager (unkomplizierte Firewall).
Der erste Port, den wir über den Datenverkehr zulassen möchten, ist der Port 21
, Dies ist der Standardport, der vom FTP -Protokoll verwendet wird:
$ sudo ufw erlauben in 21/tcp
Als zweites müssen wir eingehende Verkehr über den angegebenen Portbereich zulassen, den wir im vorherigen Abschnitt eingerichtet haben. Um einen Bereich von Ports anzugeben, können wir ausführen:
$ sudo ufw erlauben in 10090: 10100/tcp
Schlussfolgerungen
In diesem Artikel haben wir gesehen, wie man VSFTPD auf Debian 10 Buster installiert und konfiguriert. Wir haben gesehen Virtuelle Benutzer Feature vom Dienst bereitgestellt. Da FTP keine Datenverschlüsselung bereitstellt, haben wir gesehen. Eine vollständige Liste der möglichen Anweisungen, die in der VSFTPD -Konfigurationsdatei verwendet werden können, lesen Sie bitte die vsftpd.Conf Manpage (vsftpd.Conf (5)). Ich möchte wissen, wie man mit einem FTP -Server programmatisch arbeitet? Schauen Sie sich unseren Artikel über die Verbindung zu einem FTP -Server mit Python an, wie Sie eine Verbindung zu einem FTP -Server herstellen können.
Verwandte Linux -Tutorials:
- Setup FTP Server unter Linux einrichten
- Dinge zu installieren auf Ubuntu 20.04
- So richten Sie FTP/SFTP -Server und Client auf Almalinux ein
- Eine Einführung in Linux -Automatisierung, Tools und Techniken
- FTP -Clientliste und -installation auf Ubuntu 22.04 Linux…
- Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
- Mit Python können Sie eine Verbindung zu einem FTP -Server herstellen
- Ubuntu 20.04 Tricks und Dinge, die Sie vielleicht nicht wissen
- FTP -Clientliste und -installation auf Ubuntu 20.04 Linux…
- Ubuntu 20.04: WordPress mit Nginx -Installation