Die Übertragung von Dateien per FTP (File Transfer Protocol) ist wahrscheinlich immer noch eine der beliebtesten Methoden, um Dateien auf einen Server hochzuladen. ProFTPD ist ein beliebter und vielseitiger FTP-Server, der als Open-Source-Software verfügbar ist und TLS (SSL) für sichere Verbindungen unterstützt.
FTP ist standardmäßig ein unsicheres Protokoll, da Passwörter und Daten im Klartext übertragen werden. Durch die Verwendung von TLS, wie wir es in diesem Leitfaden tun, kann die gesamte Kommunikation verschlüsselt werden, wodurch FTP sicherer wird.
Dieser Artikel beschreibt wie man proftpd mit TLS auf Ubuntu Server 20.04 LTS konfiguriert .
Voraussetzungen
- Ubuntu-Server 20.04 64-Bit
- sudo/root-Berechtigungen
Was wir in diesem Tutorial tun werden
- Installieren Sie ProFTPD und TLS.
- ProFTPD konfigurieren.
- Fügen Sie einen FTP-Benutzer hinzu.
- TLS in ProFTPD konfigurieren.
- Testen.
Installieren Sie Proftpd und OpenSSL
Proftpd und OpenSSL sind im Ubuntu-Repository verfügbar, sodass wir sie mit dem apt-Befehl installieren können:
sudo apt-get install -y proftpd openssl
ProFTPD wird wie unten gezeigt installiert. Der Installationsvorgang fordert keine Eingaben an.
Jetzt überprüfen wir, ob proFTPD installiert und gestartet wurde. Führen Sie diesen Befehl aus:
sudo proftpd --version
um die installierte ProFTPD-Version zu überprüfen. Als nächstes prüfen wir den Dienststatus, fragen ihn mit dem Befehl systemctl ab:
sudo systemctl status proftpd
ProFTPD konfigurieren
Sobald ProFTPD installiert ist, müssen Sie die Konfiguration anpassen, um es zu einem voll funktionsfähigen und sicheren Server zu machen. Die ProFTPD-Konfigurationsdatei befindet sich im Verzeichnis /etc/proftpd/ – editieren Sie die Datei proftpd.conf.
sudo nano /etc/proftpd/proftpd.conf
Ersetzen Sie in der Zeile Servername den Wert durch Ihren Hostnamen oder Ihre Domain :
ServerName "My FTP-Server"
Entkommentieren Sie die DefaultRoot-Zeile, um Jail für alle Nutzer zu aktivieren:
DefaultRoot ~
und starten Sie ProFTPD über den Befehl systemctl wie folgt neu.
sudo systemctl restart proftpd
FTP-Benutzer hinzufügen
Es gibt zwei Arten von FTP-Benutzern, den anonymen FTP-Benutzer und „normale“ FTP-Benutzer:
- Anonymes FTP : Der FTP-Server bietet jedem Zugriff, ohne dass ein Benutzerkonto und ein Passwort erforderlich sind. Dies sollte nicht auf einem öffentlich zugänglichen Server verwendet werden, könnte aber eine Option für einen Heimserver oder ein Firmen-LAN sein.
- FTP-Benutzer :Nur wer ein Benutzerkonto und ein Passwort hat, kann auf den FTP-Server zugreifen.
Bevor Sie einen Benutzer für den FTP-Server erstellen, fügen Sie bitte /bin/false zu Ihrer /etc/shells-Datei hinzu.
sudo echo "/bin/false" >> /etc/shells
Erstellen Sie nun einen Benutzer mit einem bestimmten Home-Verzeichnis, deaktivieren Sie den Shell-Zugriff und gewähren Sie ihn dann dem FTP-Server.
sudo useradd -m -s /bin/false tom sudo passwd tom
Der obige Befehl erstellt einen neuen Benutzer namens tom mit dem Home-Verzeichnis /home/tom/ und ohne Shell-Zugriff /bin/false.
Konfigurieren Sie nun ProFTPD so, dass der Benutzer tom Zugriff auf den FTP-Server erhält.
sudo nano /etc/proftpd/conf.d/tom.conf
Fügen Sie diese Konfigurationsdatei hinzu, damit sich Benutzer Tom anmelden und Dateien auf/von dem Server hochladen/herunterladen kann:
<Directory /home/tom> Umask 022 022 AllowOverwrite off <Limit LOGIN> AllowUser tom DenyALL </Limit> <Limit ALL> Order Allow,Deny AllowUser tom Deny ALL </Limit> <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD> AllowUser tom Deny ALL </Limit> </Directory>
Die Datei soll wie folgt aussehen:
Speichern Sie die Datei und beenden Sie nano. Starten Sie dann ProFTPD neu.
sudo systemctl restart proftpd
Sie können in diesem Stadium bereits FTP verwenden, aber wir werden es sicherer machen, indem wir im nächsten Schritt TLS verwenden.
TLS mit proftpd konfigurieren
Um TLS zu verwenden, müssen Sie ein SSL-Zertifikat erstellen. Generieren Sie ein SSL-Zertifikat mit dem OpenSSL-Befehl :
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
Der obige Befehl generiert eine Zertifikatsdatei proftpd.crt im Verzeichnis /etc/ssl/certs/ und eine Zertifikatsschlüsseldatei proftpd.key im Verzeichnis /etc/ssl/private/.
Ändern Sie als Nächstes die Zertifikatsdateiberechtigung auf 600:
sudo chmod 600 /etc/ssl/certs/proftpd.crt sudo chmod 600 /etc/ssl/private/proftpd.key
Kehren Sie nun in das Verzeichnis /etc/proftpd zurück und konfigurieren Sie ProFTPD so, dass es das von Ihnen generierte SSL-Zertifikat verwendet.
nano /etc/proftpd/proftpd.conf
Entkommentieren Sie die TLS-Zeile:
Include /etc/proftpd/tls.conf
Speichern Sie die Datei tls.conf und beenden Sie sie.
Bearbeiten Sie als Nächstes die TLS-Konfigurationsdatei, um die sichere Authentifizierung zu aktivieren:
nano /etc/proftpd/tls.conf
Entkommentieren Sie alle diese Zeilen:
TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSRSACertificateFile /etc/ssl/certs/proftpd.crt TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired TLSVerifyClient off TLSRequired on
Speichern und schließen. Der letzte Schritt ist der Neustart des ProFTPD-Servers:
sudo systemctl restart proftpd
ProFTPD testen
Um die Konfiguration zu testen, versuchen Sie, sich mit Software wie FileZilla (ich verwende FileZilla) mit Ihrem FTP-Server zu verbinden hier), und geben Sie die Server-IP, den Benutzernamen, das Passwort und den Port ein:
Server IP : 192.168.0.100 username : tom Password ****** Port : 21
Klicken Sie dann auf Schnellverbindung.
Klicken Sie auf „OK“, um unser selbstsigniertes SSL-Zertifikat zu bestätigen.
Sie werden sehen, dass Sie mit einem TLS/SSL-Zertifikat beim FTP-Server angemeldet sind.
Links
- Das ProFTPD-Softwareprojekt. Link