FTP ist ein sehr unsicheres Protokoll, da alle Passwörter und alle Daten im Klartext übertragen werden. Durch die Verwendung von TLS kann die gesamte Kommunikation verschlüsselt werden, wodurch FTP viel sicherer wird. Dieser Artikel erklärt, wie man ProFTPd mit TLS auf einem Ubuntu 15.10-Server einrichtet, wie man einen FTP-Benutzer hinzufügt und FileZilla verwendet, um sich sicher mit TLS zu verbinden.
1 Vorbemerkung
In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.1.100. Diese Einstellungen können für Sie abweichen, daher müssen Sie sie gegebenenfalls ersetzen.
Da wir alle Schritte aus diesem Tutorial mit Root-Rechten ausführen müssen, können wir entweder allen Befehlen in diesem Tutorial die Zeichenfolge sudo voranstellen oder wir werden sofort root, indem wir
eingebensudo su
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, führen Sie diesen Befehl aus, um Nano zu installieren.
apt-get install nano
2 Installieren Sie ProFTPd und OpenSSL
OpenSSL wird von TLS benötigt; Um ProFTPd und OpenSSL zu installieren, führen wir einfach Folgendes aus:
apt-get install proftpd openssl
Ihnen wird eine Frage gestellt:
Führen Sie proftpd:<-- standalone
ausAus Sicherheitsgründen sollten Sie die folgenden Zeilen zu /etc/proftpd/proftpd.conf hinzufügen:
nano /etc/proftpd/proftpd.conf
[...]
DefaultRoot ~
ServerIdent on "FTP Server ready."
[...]
Die erste Option ermöglicht das Chrooten von FTP-Benutzern in ihr Home-Verzeichnis und die zweite Option ermöglicht eine ServerIdent-Nachricht, die keine Informationen über die verwendete FTP-Server-Software, Version oder das Betriebssystem enthält, damit ein potenzieller Angreifer diese Details nicht auf dem Silber bekommt Platte.
3 Erstellen Sie das SSL-Zertifikat für TLS
Um TLS verwenden zu können, müssen wir ein SSL-Zertifikat erstellen. Ich erstelle es in /etc/proftpd/ssl, also erstelle ich zuerst dieses Verzeichnis:
mkdir /etc/proftpd/ssl
Anschließend können wir das SSL-Zertifikat wie folgt generieren:
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
Ländername (2-Buchstaben-Code) [AU]:<-- Geben Sie Ihren Ländernamen ein (z. B. "DE").
Staats- oder Provinzname (vollständiger Name) [Some-State]:<-- Geben Sie Ihren Staat ein oder Provinzname.
Ortsname (zB Stadt) []:<-- Geben Sie Ihre Stadt ein.
Organisationsname (zB Firma) [Internet Widgits Pty Ltd]:<-- Geben Sie Ihren Organisationsnamen ein (z. B. der Name Ihres Unternehmens).
Name der Organisationseinheit (z. B. Abteilung) []:<-- Geben Sie den Namen Ihrer Organisationseinheit ein (z. B. "IT-Abteilung").
Allgemeiner Name (z. B. IHR Name) []:<-- Geben Sie den vollständig qualifizierten Domänennamen des Systems ein (z. B. "server1.example.com").
E-Mail-Adresse []:<-- Geben Sie Ihre E-Mail-Adresse ein.
und sichern Sie die generierten Zertifikatsdateien.
chmod 600 /etc/proftpd/ssl/proftpd.*
4 Aktivieren Sie TLS in ProFTPd
Um TLS in ProFTPd zu aktivieren, öffnen Sie /etc/proftpd/proftpd.conf...
nano /etc/proftpd/proftpd.conf
... und kommentieren Sie die Zeile Include /etc/proftpd/tls.conf aus:
[...]
#
# 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, sind nur TLS-Verbindungen erlaubt (dies sperrt alle Benutzer mit alten FTP-Clients, die keine TLS-Unterstützung haben); indem Sie diese Zeile auskommentieren oder TLSRequired off verwenden, sind sowohl TLS- als auch Nicht-TLS-Verbindungen zulässig, je nachdem, was der FTP-Client unterstützt.
Starten Sie danach ProFTPd neu:
systemctl restart proftpd.service
Das ist es. Sie können jetzt versuchen, sich mit Ihrem FTP-Client zu verbinden; Sie sollten jedoch Ihren FTP-Client für die Verwendung von TLS konfigurieren (dies ist ein Muss, wenn Sie TLSRequired on verwenden) – siehe nächstes 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 Fügen Sie einen FTP-Benutzer hinzu
Die in diesem Tutorial verwendete ProFTPD-Konfiguration authentifiziert Benutzer anhand der Benutzerdatenbank des Linux-Systems (/etc/passwd und /etc/shadow). In diesem Schritt füge ich einen Benutzer „tom“ hinzu, der nur für die FTP-Anmeldung verwendet wird.
useradd --shell /bin/false tom
Dadurch wird der Benutzer „tom“ mit der Shell /bin/false hinzugefügt. Diese Shell stellt sicher, dass er sich per FTP, aber nicht per SSH anmelden kann. Das Heimatverzeichnis eines Benutzers ist standardmäßig /home/[BENUTZERNAME], in unserem Fall /home/tom. ProFTPD ist so konfiguriert, dass der Benutzer in seinem Home-Verzeichnis eingesperrt wird, sodass er außerhalb von /home/tom nicht auf Systemdateien zugreifen kann. Wenn Sie ein anderes Home-Verzeichnis festlegen möchten, verwenden Sie den folgenden Befehl:
useradd --home /srv/tomftp --create-home --shell /bin/false tom
Dieser Befehl setzt für den Benutzer ein anderes Home-Verzeichnis, in diesem Beispiel das Verzeichnis /srv/tomftp.
Der nächste Schritt besteht darin, ein Passwort für den Benutzer tom festzulegen, führen Sie den passwd-Befehl aus:
passwd tom
Und geben Sie das neue Passwort zweimal ein, wenn Sie dazu aufgefordert werden.
6 Konfigurieren von FileZilla für TLS
Um FTP mit TLS verwenden zu können, benötigen Sie einen FTP-Client, der TLS unterstützt, z. B. FileZilla.
Öffnen Sie in FileZilla den Site Manager:
Wählen Sie den Server aus, der ProFTPd mit TLS verwendet; Wählen Sie im Dropdown-Menü Servertyp die Option FTPES anstelle von normalem FTP aus:
Jetzt können Sie sich mit dem Server verbinden, FileZilla fragt nach einem Passwort.
Wenn Sie dies zum ersten Mal tun, müssen Sie das neue SSL-Zertifikat des Servers akzeptieren:
Wenn alles gut geht, sollten Sie jetzt auf dem Server angemeldet sein:
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.
Anmeldedaten 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 „tom“.
Die IP-Adresse der VM ist 192.168.1.100, die IP kann in der Datei /etc/network/interfaces.
geändert werdenBitte ändern Sie die Passwörter aller Benutzer, bevor Sie die VM als Live-System verwenden.
8 Links
- ProFTPd:http://www.proftpd.org/
- FileZilla:http://filezilla-project.org/
- Ubuntu:http://www.ubuntu.com/