Einführung
Wenn Sie einen FTP-Server auf Ubuntu installieren möchten, können Sie die Einfachheit von vsftpd nicht übertreffen.
FTP steht für File Transfer Protocol. Es ähnelt HTTP (HyperText Transfer Protocol), da es eine Sprache für die Übertragung von Daten über ein Netzwerk angibt. FTP ist standardmäßig unverschlüsselt, daher ist es allein keine gute Wahl für die sichere Übertragung von Daten.
Diese Anleitung hilft Ihnen bei der Installation und Konfiguration eines FTP-Servers mit vsftpd unter Ubuntu.
Voraussetzungen
- Zugriff auf ein Benutzerkonto mit sudo Privilegien
- Zugriff auf ein Terminalfenster/Befehlszeile (Strg-Alt-T)
- Das passende Paketmanager, standardmäßig enthalten
Schritt 1:Systempakete aktualisieren
Beginnen Sie mit der Aktualisierung Ihrer Repositories – geben Sie Folgendes in ein Terminalfenster ein:
sudo apt update
Das System fährt mit der Aktualisierung der Repositories fort.
Schritt 2:vsftpd-Server auf Ubuntu installieren
Ein gängiges Open-Source-FTP-Dienstprogramm, das in Ubuntu verwendet wird, ist vsftpd . Es wird wegen seiner Benutzerfreundlichkeit empfohlen.
1. Zur Installation von vsftpd , geben Sie den Befehl ein:
sudo apt install vsftpd
Dies ist ein Beispiel für die Ausgabe in Ubuntu.
2. Führen Sie die folgenden Befehle aus, um den Dienst zu starten und beim Start zu aktivieren:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
Schritt 3:Konfigurationsdateien sichern
Stellen Sie sicher, dass Sie Ihre Konfigurationsdateien sichern, bevor Sie Änderungen vornehmen.
1. Erstellen Sie eine Sicherungskopie der Standardkonfigurationsdatei, indem Sie Folgendes eingeben:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default
Schritt 4:FTP-Benutzer erstellen
Erstellen Sie mit den folgenden Befehlen einen neuen FTP-Benutzer:
sudo useradd -m testuser
sudo passwd testuser
Das System sollte Sie auffordern, ein Passwort für den neuen Testbenutzer zu erstellen Konto.
Schritt 5:Konfigurieren Sie die Firewall, um FTP-Datenverkehr zuzulassen
Wenn Sie UFW verwenden, das standardmäßig mit Ubuntu geliefert wird, blockiert es standardmäßig den FTP-Verkehr. Geben Sie die folgenden Befehle ein, um Ports 20 zu öffnen und 21 für FTP-Verkehr:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
Schritt 6:Mit Ubuntu-FTP-Server verbinden
Verbinden Sie sich mit dem folgenden Befehl mit dem FTP-Server:
sudo ftp ubuntu-ftp
Ersetzen Sie ubuntu-ftp mit dem Namen Ihres Systems (von der Kommandozeile übernommen).
Anmelden mit dem testuser Konto und Passwort, die Sie gerade festgelegt haben. Sie sollten jetzt erfolgreich bei Ihrem FTP-Server angemeldet sein.
Konfigurieren und Sichern des Ubuntu-vsftpd-Servers
Standardverzeichnis ändern
Standardmäßig verwendet der FTP-Server /srv/ftp Verzeichnis als Standardverzeichnis. Sie können dies ändern, indem Sie ein neues Verzeichnis erstellen und das Home-Verzeichnis des FTP-Benutzers ändern.
Geben Sie Folgendes ein, um das FTP-Home-Verzeichnis zu ändern:
sudo mkdir /srv/ftp/new_location
sudo usermod -d /srv/ftp/new_location ftp
Starten Sie den vsftpd neu Dienst, um die Änderungen zu übernehmen:
sudo systemctl restart vsftpd.service
Jetzt können Sie alle Dateien, die Sie per FTP freigeben möchten, in /srv/ftp ablegen Ordner (wenn Sie ihn als Standard belassen haben) oder /srv/ftp/new_location / Verzeichnis (falls Sie es geändert haben).
FTP-Benutzer authentifizieren
Wenn Sie authentifizierten Benutzern erlauben möchten, Dateien hochzuladen, bearbeiten Sie die vsftpd.conf Datei, indem Sie Folgendes eingeben:
sudo nano /etc/vsftpd.conf
Suchen Sie den Eintrag mit der Bezeichnung write_enable=NO , und ändern Sie den Wert in „JA .“
Speichern Sie die Datei, beenden Sie den FTP-Dienst und starten Sie ihn wie folgt neu:
sudo systemctl restart vsftpd.service
Dadurch kann der Benutzer Änderungen in seinem Home-Verzeichnis vornehmen.
FTP sichern
Zahlreiche Exploits nutzen ungesicherte FTP-Server aus. Als Antwort gibt es mehrere Konfigurationsoptionen in vsftpd.conf das kann helfen, Ihren FTP-Server zu sichern.
Benutzerzugriff einschränken
Eine Methode besteht darin, Benutzer auf ihr Home-Verzeichnis zu beschränken. Öffnen Sie vsftpd.conf in einem Editor und kommentieren Sie den folgenden Befehl aus:
chroot_local_user=YES
Dies ist ein Beispiel für die Datei in nano :
Erstellen Sie eine Benutzerlistendatei
Um eine Listendatei zu erstellen, bearbeiten Sie /etc/vsftpd.chroot_list , und fügen Sie einen Benutzer pro Zeile hinzu.
Weisen Sie Ihren FTP-Server an, diese Benutzerliste auf ihre eigenen Home-Verzeichnisse zu beschränken, indem Sie vsftpd.conf bearbeiten :
chroot_local_user=YES
chroot_list_file=/etc/vsftpd.chroot_list
Das Bild veranschaulicht die vorgenommenen Änderungen:
Starten Sie den vsftpd neu Dienst:
sudo systemctl restart vsftpd.service
Standardmäßig wird die Liste der für den FTP-Zugriff gesperrten Benutzer in /etc/ftpusers gespeichert . Um blockierte Benutzer hinzuzufügen, bearbeiten Sie diese Datei und fügen Sie einen Benutzer pro Zeile hinzu.
Datenverkehr mit FTPS verschlüsseln
Eine weitere Methode zur Sicherung Ihres FTP-Servers besteht darin, den Datenverkehr zu verschlüsseln. Dies geschieht über FTPS – File Transfer Protocol über SSL (Secure Socket Layer).
Damit dies funktioniert, müssen Benutzer mit einem Shell-Konto auf dem FTP-Server eingerichtet werden. Dadurch wird Ihrem FTP-Datenverkehr eine Ebene sicherer Verschlüsselung hinzugefügt.
1. Erstellen Sie zunächst ein neues Zertifikat mit openssl. Führen Sie dazu den folgenden Befehl aus:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
2. Geben Sie die erforderlichen Informationen ein, wenn Sie dazu aufgefordert werden, oder behalten Sie die Standardkonfiguration bei, indem Sie Enter drücken .
3. Als nächstes öffnen Sie Ihre vsftpd.conf Datei in einem Editor und ändern Sie die Zeile ssl_enable=NO
zu ssl_enable=YES
:
ssl_enable=YES
4. Fügen Sie dann die folgenden Zeilen hinzu:
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
pasv_min_port=40000
pasv_max_port=50000
5. Speichern Sie die Änderungen und beenden Sie die Datei.
6. Starten Sie abschließend den Dienst neu, um die Änderungen zu übernehmen:
sudo systemctl restart vsftpd.service