Mit dieser Anleitung können wir den proftpd Server so einstellen, dass er die verschlüsselte Übertragung ermöglicht.
Die Vorraussetzungen hierfür sind mod_tls, welches aber bei den gängigen Distributionen bereits enthalten ist und natürlich ein Zertifikat.
In diesem Beispiel verwende ich ein echtes Zertifikat welches auch für den Webservice geeignet ist.
Wir müssen die proftpd.conf Konfigurationsdatei editieren. In meinem Beispiel liegt sie im Verzeichnis /etc
nano /etc/proftpd.conf
Jetzt einfach folgende Zeilen an das Ende der Datei einfügen:
TLSEngine on
TLSLog /var/log/proftpd_tls.log
#TLSProtocol TLSv1
TLSProtocol SSLv23
TLSRequired on
TLSVerifyClient off
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/httpd/conf/freeweb_webhoster_ag.crt
TLSRSACertificateKeyFile /etc/httpd/conf/freeweb.key
und dann den FTP Server neu starten. Z.B. mit service proftpd restart
Im besten Fall gibt es keine Fehlermeldung und es funktioniert =)
Nun zur Erklärung der einzelnen Zeilen.
TLSEngine on
Gibt proftpd den Befehl den Verschlüsselungsmodus zu aktivieren.
TLSLog /var/log/proftpd_tls.log
proftpd erstellt ein Logfile für die gesicherten Verbindungen.
TLSProtocol SSLv23
Hier wird die Protokollversion bestimmt. v1 sollte nicht verwendet werden.
TLSRequired on
Mit dieser Einstellung können wir proftpd sagen, dass er die Datentransfers und Kontrolltransfers verschlüsseln soll. Verzeichnisauflistungen zählen als Datentransfers. Einige FTP Clients können dieses Sicherheitsfeature nicht verarbeiten und hängen sich dann beim Directory Listing auf. In dem Fall kann diese option auf off gesetzt werden, allerdings kann man dann auch entsprechend die Listings abfangen. Wenn sich auch Clients ohne Verschlüsselung verbinden sollen, dann können wir diesen Wert auch auf off setzen.
TLSVerifyClient off
Hier stellen die die Client Verifizierung ab.
TLSOptions NoCertRequest
Es gibt einige FTP Clients die sonst mit einer Fehlermeldung wie unable to accept TLS connection: received EOF that violates protocol abstürzen.
TLSRSACertificateFile /etc/httpd/conf/freeweb_webhoster_ag.crt
TLSRSACertificateKeyFile /etc/httpd/conf/freeweb.key
Unser Zertifikat und das dazugehörige Key File.
Das war es. Eine Anleitung für den FTP Client gibt es hier natürlich auch.