Wie man ProFTPd mit TLS-Unterstützung auf Ubuntu 16.04 installiert

Dieses Tutorial zeigt, wie man FTP mit ProFTPd sicher installiert und verwendet. FTP ohne TLS ist ein unsicheres Protokoll, da alle Passwörter und Daten im Klartext übertragen werden. Durch den Einsatz von TLS kann die gesamte Kommunikation verschlüsselt werden, wodurch FTP viel sicherer wird. Dieser Artikel erklärt, wie Sie ProFTPd mit TLS auf einem Ubuntu 16.04 Server einrichten, wie Sie einen FTP-Benutzer hinzufügen und FileZilla verwenden, um eine sichere Verbindung mit TLS herzustellen.

1 Vorbemerkung

In diesem Tutorial werde ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.1.100 verwenden. Diese Einstellungen können für Sie unterschiedlich sein, so dass Sie sie gegebenenfalls ersetzen müssen.

Da wir alle Schritte dieses Tutorials mit root-Rechten ausführen müssen, können wir entweder alle Befehle in diesem Tutorial mit der Zeichenkette sudo voranstellen, oder wir werden jetzt root, indem wir Folgendes eingeben

sudo -s

Ich werde den Nano-Editor verwenden, um Konfigurationsdateien in diesem Tutorial zu bearbeiten. Wenn Sie auch nano verwenden möchten und es noch nicht installiert haben, dann führen Sie diesen Befehl aus, um nano zu installieren.

apt-get -y install nano

2 ProFTPd und OpenSSL installieren

OpenSSL wird von TLS benötigt; zur Installation von ProFTPd und OpenSSL führen wir einfach aus:

apt-get -y install proftpd openssl

Ihnen wird eine Frage gestellt:

Führen Sie proftpd aus: <– Standalone

Aus Sicherheitsgründen sollten Sie die folgenden Zeilen in /etc/proftpd/proftpd/proftpd.conf einfügen:

nano /etc/proftpd/proftpd.conf
[...]
DefaultRoot ~
ServerIdent on "FTP Server ready."
[...]

Die erste Option ermöglicht das Chrooten von FTP-Benutzern in ihr Heimatverzeichnis und die zweite Option aktiviert eine ServerIdent Nachricht, die keine Informationen über die verwendete FTP-Serversoftware, -version oder das Betriebssystem enthält, so dass ein potenzieller Angreifer diese Details nicht auf der Silberplatte erhält.

3 Erstellen Sie das SSL-Zertifikat für TLS.

Um TLS nutzen zu können, müssen wir ein SSL-Zertifikat erstellen. Ich erstelle es in /etc/proftpd/ssl, deshalb erstelle ich dieses Verzeichnis:

mkdir /etc/proftpd/ssl

Anschließend können wir das SSL-Zertifikat wie folgt erstellen:

openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem

Ländername (2-stelliger Code)[AU]: <– Geben Sie Ihren Ländernamen ein (z.B. „DE“).
Name des Staates oder der Provinz (vollständiger Name)[Irgendein Staat]:
<– Geben Sie Ihren Staats- oder Provinztitel ein.
Ortsname (z.B. Stadt) []:
<– Betrete deine Stadt.
Firmenname (z.B. Firma)[Internet Widgits Pty Ltd]:
<– Geben Sie Ihren Firmennamen ein (z.B. den Namen Ihrer Firma).
Name der Organisationseinheit (z.B. Abschnitt) []:
<– Geben Sie den Namen Ihrer Organisationseinheit ein (z.B. „IT-Abteilung“).
Common Name (z.B. Ihr Name) []:
<– Geben Sie den voll qualifizierten Domainnamen des Systems ein (z.B. „server1.example.com“).
E-Mail-Adresse []:
<– Geben Sie Ihre E-Mail-Adresse ein.

und sichern Sie die erzeugten Zertifikatsdateien.

chmod 600 /etc/proftpd/ssl/proftpd.*

4 TLS in ProFTPd aktivieren

Um TLS in ProFTPd zu aktivieren, öffnen Sie /etc/proftpd/proftpd.conf…..

nano /etc/proftpd/proftpd.conf

…. und deaktivieren Sie die Zeile Include /etc/proftpd/tls.conf:

[...]
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
[...]

Öffnen Sie dann /etc/proftpd/tls.conf und lassen Sie es wie folgt aussehen:

nano /etc/proftpd/tls.conf
<IfModule mod_tls.c>
TLSEngine                  on
TLSLog                     /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions                 NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile      /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile   /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient            off
TLSRequired                on
RequireValidShell          no
</IfModule>

Wenn Sie TLSRequired on verwenden, dann sind nur TLS-Verbindungen erlaubt (dies schließt alle Benutzer mit alten FTP-Clients aus, die keine TLS-Unterstützung haben); indem Sie diese Zeile auskommentieren oder TLSRequired off verwenden, sind sowohl TLS- als auch Nicht-TLS-Verbindungen erlaubt, je nachdem, was der FTP-Client unterstützt.

Starten Sie ProFTPd anschließend neu:

systemctl restart proftpd.service

Das ist es. Das ist es. Sie können nun versuchen, sich mit Ihrem FTP-Client zu verbinden; Sie sollten jedoch Ihren FTP-Client so konfigurieren, dass er TLS verwendet (dies ist ein Muss, wenn Sie TLSRequired on verwenden) – siehe das nächste Kapitel, wie Sie dies mit FileZilla tun.

Wenn Sie Probleme mit TLS haben, können Sie einen Blick in die TLS-Protokolldatei /var/log/proftpd/tls.log werfen.

5 Einen FTP-Benutzer hinzufügen

Die in diesem Tutorial verwendete ProFTPD-Konfiguration authentifiziert Benutzer anhand der Benutzerdatenbank des Linux-Systems (/etc/passwd und /etc/shadow). In diesem Schritt werde ich einen Benutzer „tom“ hinzufügen, der nur für die FTP-Anmeldung verwendet werden soll.

useradd --shell /bin/false tom

Dann müssen wir das Home-Verzeichnis unseres Benutzers „tom“ erstellen und den Besitzer dieses Verzeichnisses auf den Benutzer und die Gruppe „tom“ ändern.

mkdir /home/tom
chown tom:tom /home/tom/

Dadurch wird der Benutzer „tom“ mit der Shell /bin/false hinzugefügt. Diese Shell stellt sicher, dass er sich per FTP anmelden kann, aber nicht per SSH. Das Heimatverzeichnis eines Benutzers ist standardmäßig /home/[USERNAME], in unserem Fall /home/tom. ProFTPD ist konfiguriert, um den Benutzer in sein Heimatverzeichnis zu sperren, so dass er nicht auf Systemdateien außerhalb von /home/tom zugreifen kann. Wenn Sie ein anderes Home-Verzeichnis einrichten möchten, verwenden Sie den folgenden Befehl:

useradd --home /srv/tomftp --create-home --shell /bin/false tom

Dieser Befehl setzt ein anderes Heimatverzeichnis, in diesem Beispiel das Verzeichnis /srv/tomftp für den Benutzer.

Der nächste Schritt ist, ein Passwort für den Benutzer tom festzulegen und den Befehl passwd auszuführen:

passwd tom

Und geben Sie das neue Passwort bei Bedarf zweimal ein.

6 FileZilla für TLS konfigurieren

Um FTP mit TLS nutzen zu können, benötigen Sie einen FTP-Client, der TLS unterstützt, wie beispielsweise FileZilla.

Öffnen Sie in FileZilla den Site Manager:

FileZilla Site-Manager.

Wählen Sie den Server, der ProFTPd mit TLS verwendet; Wählen Sie FTP als Protokoll und benötigen Sie explizites TLS über FTP.

Die Login-Daten des FTP-Kontos.

Jetzt können Sie sich mit dem Server verbinden, FileZilla fragt nach einem Passwort.

Geben Sie das FTP-Passwort ein.

Wenn Sie dies zum ersten Mal tun, müssen Sie das neue SSL-Zertifikat des Servers akzeptieren:

Akzeptieren Sie das SSL-Zertifikat.

Wenn alles gut geht, solltest du jetzt auf dem Server angemeldet sein:

FileZilla - Login erfolgreich.

7 Laden Sie dieses Setup als VM herunter.

Das in diesem Tutorial beschriebene Setup steht HowtoForge-Abonnenten zum Download zur Verfügung. Die einsatzbereite virtuelle Maschine im OVA / OVF-Format ist kompatibel mit VMWare und Virtualbox.

Login-Details der VM

Die virtuelle Maschine hat einen SSH-Benutzer mit dem Namen „Administrator“ und dem Passwort „howtoforge“. Dieser SSH-Benutzer hat sudo-Berechtigungen.

Das Passwort des FTP-Benutzers „tom“ lautet „howtoforge“.

Die IP-Adresse der VM ist 192.168.1.100, die IP-Adresse kann in der Datei /etc/network/interfaces geändert werden.

Bitte ändern Sie die Passwörter aller Benutzer, bevor Sie die VM als Live-System verwenden.

8 Links

Das könnte Dich auch interessieren …