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.