Was ist TLS, FTPS und SFTP?
TLS (Transport Layer Security) beschreibt einen weiteren Layer im Netzwerk-Protokoll. Hier wird im Gegensatz zum normalen TCP/IP das Datenpaket verschlüsselt übersendet. Da es aber nicht zu den standard Layern gehört wird es künztlich drüber gestülpt. D.h. jede Software die dies Nutzen will muß das TLS-Protokoll eigenständig implementieren.
Im Falle von proFTPs ist es das FTPS-Protokoll.(FTP over SSL) wie sie in der RFC 4217 beschrieben wird.
SFTP (SSH File Transfer Protocol) hingegen basiert auf dem SSH-Protokoll und ist vergleichbar mit einer FTP-Verbindung, die per SSH getunnelt wird.
TLS für proFTPd
Dafür wird der mod_tls
benötigt. I.d.R. ist er bei modernen Installationen von proFTPd schon vorhanden und muß lediglich aktiviert werden. Wenn nicht, muß man updaten oder proFTPd aus den Quellen selber kompilieren.
Die Datei /etc/proftpd.conf muß entsprechend ergänzt werden:
# TLS <IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/proftpd_tls.log TLSProtocol TLSv1 TLSRequired off TLSVerifyClient off TLSRSACertificateFile /etc/ssl/certs/proftpd.cert.pem TLSRSACertificateKeyFile /etc/ssl/certs/proftpd.key.pem </IfModule>
Hier werden als Beispiele das Zertifikat und der Key in den std. Debian-Verzeichnis für Zertifikate geholt. Auf anderen Systemen kann das natürlich auch woanders sein. Auch das TLS-Protocol kann vareieren. Z.B. gibt es auch SSLv23
und SSLv3
.
Achtung: Natürlich muß danach der proFTPd die Konfiguration neu einlesen:
/etc/init.d/proftpd restart
Eigene Zertifikate erstellen
Dafür brauchen wir das openssl-Paket (installieren, falls noch nicht vorhanden):
openssl req -new -x509 -days 365 -nodes \
-out /etc/ssl/certs/proftpd.cert.pem \
-keyout /etc/ssl/certs/proftpd.key.pem