Dieses kurze Howto beschreibt wie man vsftpd um die Möglichkeit des SSL verschlüsselten Transfer erweitert.

Schlüssel und selbst signiertes Zertifikat erzeugen:

openssl req -new -x509 -days 365 -keyout servername.key -out servername.crt

Passphrase vom Schlüsse entfernen, damit vsftpd ohne Passworteingabe gestartet werden kann:

openssl rsa -in servername.key -out servername.key

Sowohl das Zertifikat, als auch den Schüssel in eine Datei umleiten, damit vsftpd darauf zugreifen kann:


cat servername.crt servername.key >> /usr/share/ssl/certs/vsftpd.pem

Nun noch in die Konfigurationsdatei (/etc/vsftpd/vsftpd.conf) folgende Zeilen einfügen:


ssl_enable=YES
force_local_data_ssl=NO
force_local_logins_ssl=NO
rsa_cert_file=/usr/share/ssl/certs/vsftpd.pem

Das „NO“ bei force_local_data und force_local_logins_ssl ist nötig, damit sich auch Clients zum FTP-Server verbinden können, die kein SSL beherrschen. Will man dies verhindern und nur verschlüsselten Datenverkehr ermöglichen, braucht man nur beide Werte auf „YES“ zu setzen.

Was denkst du?