FTP Server - TOTOLINK router A3002RU - 4 antenna
Inhaltsverzeichnis:
- Voraussetzungen
- Vsftpd unter Debian 9 installieren
- Vsftpd konfigurieren
- 1. FTP-Zugang
- 2. Uploads aktivieren
- 3. Chroot Gefängnis
- 4. Passive FTP-Verbindungen
- 5. Beschränkung der Benutzeranmeldung
- 6. Sichern von Übertragungen mit SSL / TLS
- Starten Sie den vsftpd-Dienst neu
- Firewall öffnen
- FTP-Benutzer erstellen
- Shell-Zugriff deaktivieren
- Fazit
FTP (File Transfer Protocol) ist ein Standard-Netzwerkprotokoll zum Übertragen von Dateien zu und von einem entfernten Netzwerk. Verwenden Sie für sicherere und schnellere Datenübertragungen SCP oder SFTP.
Es gibt viele Open-Source-FTP-Server für Linux. Die beliebtesten und am häufigsten verwendeten sind PureFTPd, ProFTPD und vsftpd.
Dieses Tutorial erklärt, wie man vsftpd (Very Secure FTP Daemon) unter Debian 9 installiert und konfiguriert. Vsftpd ist ein stabiler, sicherer und schneller FTP-Server. Wir zeigen Ihnen auch, wie Sie vsftpd konfigurieren, um Benutzer auf ihr Ausgangsverzeichnis zu beschränken und die gesamte Übertragung mit SSL / TLS zu verschlüsseln.
Voraussetzungen
Der Benutzer, unter dem Sie angemeldet sind, muss über Sudo-Berechtigungen verfügen, um Pakete installieren zu können.
Vsftpd unter Debian 9 installieren
Das vsftpd-Paket ist in den Debian-Repositories verfügbar. Die Installation ist ziemlich einfach:
sudo apt update
sudo apt install vsftpd
Der vsftpd-Dienst wird nach Abschluss des Installationsvorgangs automatisch gestartet. Überprüfen Sie dies, indem Sie den Servicestatus ausdrucken:
sudo systemctl status vsftpd
Die Ausgabe sieht ungefähr wie folgt aus und zeigt, dass der vsftpd-Dienst aktiv ist und ausgeführt wird:
● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-12-10 11:42:51 UTC; 53s ago Main PID: 1394 (vsftpd) CGroup: /system.slice/vsftpd.service └─1394 /usr/sbin/vsftpd /etc/vsftpd.conf
Vsftpd konfigurieren
Der vsftpd-Server kann durch Ändern der Datei
vsftpd.conf
im Verzeichnis
/etc
konfiguriert werden.
Die meisten Einstellungen sind in der Konfigurationsdatei gut dokumentiert. Alle verfügbaren Optionen finden Sie auf der offiziellen vsftpd-Seite.
In den folgenden Abschnitten werden einige wichtige Einstellungen erläutert, die zum Konfigurieren einer sicheren vsftpd-Installation erforderlich sind.
Öffnen Sie zunächst die vsftpd-Konfigurationsdatei:
1. FTP-Zugang
local_enable
Anweisungen
anonymous_enable
und
local_enable
und überprüfen Sie, ob Ihre Konfiguration mit den folgenden Zeilen übereinstimmt:
anonymous_enable=NO local_enable=YES
Dadurch wird sichergestellt, dass nur die lokalen Benutzer auf den FTP-Server zugreifen können.
2. Uploads aktivieren
Deaktivieren Sie die Einstellung
write_enable
, um Änderungen am Dateisystem wie das Hochladen und Löschen von Dateien zuzulassen.
3. Chroot Gefängnis
Um zu verhindern, dass FTP-Benutzer auf Dateien außerhalb ihrer Basisverzeichnisse zugreifen, deaktivieren Sie die
chroot
Einstellung.
chroot_local_user=YES
Standardmäßig wird vsftpd das Hochladen von Dateien verweigern, wenn das Verzeichnis, in dem Benutzer gesperrt sind, beschreibbar ist, um eine Sicherheitsanfälligkeit zu verhindern, wenn Chroot aktiviert ist.
Wenden Sie eine der folgenden Methoden an, um Uploads zuzulassen, wenn Chroot aktiviert ist.
-
Methode 1. - Die empfohlene Methode zum Zulassen des Uploads besteht darin, die Chroot-Funktion aktiviert zu lassen und FTP-Verzeichnisse zu konfigurieren. In diesem Tutorial erstellen wir ein
/etc/vsftpd.confftp
Verzeichnis innerhalb des Benutzerhauses, das als Chroot-Verzeichnis und beschreibbares Upload-Verzeichnis zum Hochladen von Dateien dient.user_sub_token=$USER local_root=/home/$USER/ftp
Methode 2. - Eine andere Option ist das Hinzufügen der folgenden Direktive in die vsftpd-Konfigurationsdatei. Verwenden Sie diese Option, wenn Sie Ihrem Benutzer beschreibbaren Zugriff auf sein Basisverzeichnis gewähren müssen.
/etc/vsftpd.confallow_writeable_chroot=YES
4. Passive FTP-Verbindungen
vsftpd kann jeden Port für passive FTP-Verbindungen verwenden. Wir legen den minimalen und maximalen Bereich der Ports fest und öffnen später den Bereich in unserer Firewall.
Fügen Sie der Konfigurationsdatei die folgenden Zeilen hinzu:
/etc/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. Beschränkung der Benutzeranmeldung
Fügen Sie die folgenden Zeilen am Ende der Datei hinzu, damit sich nur bestimmte Benutzer beim FTP-Server anmelden können:
userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
Wenn diese Option aktiviert ist, müssen Sie explizit angeben, welche Benutzer sich anmelden können, indem Sie die Benutzernamen zur Datei
/etc/vsftpd.user_list
(ein Benutzer pro Zeile).
6. Sichern von Übertragungen mit SSL / TLS
Um die FTP-Übertragungen mit SSL / TLS zu verschlüsseln, benötigen Sie ein SSL-Zertifikat und müssen den FTP-Server für die Verwendung konfigurieren.
Sie können ein vorhandenes SSL-Zertifikat verwenden, das von einer vertrauenswürdigen Zertifizierungsstelle signiert wurde, oder ein selbstsigniertes Zertifikat erstellen.
In diesem Lernprogramm erstellen wir mit dem Befehl
openssl
ein selbstsigniertes SSL-Zertifikat.
Der folgende Befehl erstellt einen privaten 2048-Bit-Schlüssel und ein selbstsigniertes Zertifikat mit einer Gültigkeit von 10 Jahren. Sowohl der private Schlüssel als auch das Zertifikat werden in derselben Datei gespeichert:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Sobald das SSL-Zertifikat erstellt wurde, öffnen Sie die vsftpd-Konfigurationsdatei:
sudo nano /etc/vsftpd.conf
Suchen Sie die Direktiven
rsa_cert_file
und
rsa_private_key_file
, ändern Sie ihre Werte in den Pfad der
ssl_enable
Datei und setzen Sie die Direktive
ssl_enable
auf
YES
:
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES
Wenn nicht anders angegeben, verwendet der FTP-Server nur TLS, um sichere Verbindungen herzustellen.
Starten Sie den vsftpd-Dienst neu
Nach Abschluss der Bearbeitung sollte die vsftpd-Konfigurationsdatei (ohne Kommentare) ungefähr so aussehen:
/etc/vsftpd.conf
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
Speichern Sie die Datei und starten Sie den vsftpd-Dienst neu, damit die Änderungen wirksam werden:
Firewall öffnen
Führen Sie die folgenden Befehle aus, um Port
21
(FTP-Befehlsport), Port
20
(FTP-Datenport) und
30000-31000
(Passive Ports) zu
30000-31000
:
sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp
Um nicht ausgesperrt zu werden, öffnen wir auch den Port
22
:
sudo ufw allow OpenSSH
Laden Sie die UFW-Regeln neu, indem Sie UFW deaktivieren und erneut aktivieren:
sudo ufw disable
sudo ufw enable
So überprüfen Sie die Änderungen:
sudo ufw status
Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
FTP-Benutzer erstellen
Um unseren FTP-Server zu testen, erstellen wir einen neuen Benutzer.
- Wenn Sie bereits einen Benutzer haben, dem Sie FTP-Zugriff gewähren möchten, überspringen Sie den
allow_writeable_chroot=YES
Schritt. Wenn Sieallow_writeable_chroot=YES
in Ihrer Konfigurationsdateiallow_writeable_chroot=YES
überspringen Sie den dritten Schritt.
-
Erstellen Sie einen neuen Benutzer namens
newftpuser
:sudo adduser newftpuser
Fügen Sie den Benutzer der Liste der zulässigen FTP-Benutzer hinzu:
echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list
Erstellen Sie den FTP-Verzeichnisbaum und stellen Sie die richtigen Berechtigungen ein:
sudo mkdir -p /home/newftpuser/ftp/upload
sudo chmod 550 /home/newftpuser/ftp
sudo chmod 750 /home/newftpuser/ftp/upload
sudo chown -R newftpuser: /home/newftpuser/ftp
Wie im vorherigen Abschnitt beschrieben, kann der Benutzer seine Dateien in das Verzeichnis
ftp/upload
.
Zu diesem Zeitpunkt ist Ihr FTP-Server voll funktionsfähig und Sie sollten in der Lage sein, über einen beliebigen FTP-Client, der für die Verwendung der TLS-Verschlüsselung wie FileZilla konfiguriert werden kann, eine Verbindung zu Ihrem Server herzustellen.
Shell-Zugriff deaktivieren
Wenn beim Erstellen eines Benutzers keine explizite Angabe erfolgt, hat der Benutzer standardmäßig SSH-Zugriff auf den Server.
Um den Shell-Zugriff zu deaktivieren, erstellen wir eine neue Shell, die einfach eine Nachricht ausgibt, die den Benutzer darüber informiert, dass sein Konto nur auf den FTP-Zugriff beschränkt ist.
Erstellen Sie die Shell
/bin/ftponly
und machen Sie sie ausführbar:
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
sudo chmod a+x /bin/ftponly
Hängen Sie die neue Shell an die Liste der gültigen Shells in der Datei
/etc/shells
:
echo "/bin/ftponly" | sudo tee -a /etc/shells
Ändern Sie die Benutzer-Shell in
/bin/ftponly
:
sudo usermod newftpuser -s /bin/ftponly
Verwenden Sie denselben Befehl, um die Shell aller Benutzer zu ändern, denen Sie nur FTP-Zugriff gewähren möchten.
Fazit
In diesem Tutorial haben Sie gelernt, wie Sie einen sicheren und schnellen FTP-Server auf Ihrem Debian 9-System installieren und konfigurieren.
FTP-DebianSo richten Sie eine Firewall mit ufw unter Debian 9 ein
UFW (Uncomplicated Firewall) ist ein benutzerfreundliches Front-End für die Verwaltung von iptables-Firewall-Regeln. Das Hauptziel besteht darin, die Verwaltung von iptables zu vereinfachen oder, wie der Name schon sagt, unkompliziert zu gestalten. In diesem Tutorial zeigen wir Ihnen, wie Sie eine Firewall mit UFW unter Debian 9 einrichten.
So richten Sie virtuelle Apache-Hosts unter Debian 9 ein
Mit Apache Virtual Hosts können Sie mehr als eine Domäne auf einem einzelnen Computer hosten. In diesem Tutorial werden wir Sie durch die Einrichtung von virtuellen Apache-Hosts unter Debian 9 führen.
So richten Sie Nginx-Serverblöcke unter Debian 9 ein
In diesem Tutorial zeigen wir Ihnen, wie Sie Nginx-Serverblöcke unter Debian 9 einrichten. Mit Serverblocks können Sie mehr als eine Website auf einem einzelnen Computer ausführen.