Sie sind hier

vsftpd mit SSL Verschluesselung

Um vsftpd die Moeglichkeit zu SSL verschluesseltem Transfer zu geben, braucht man zuerst ein SSL Zertifikat. Ich beschreibe das anhand eines selbstsignierten Zertifikats, was zwar nicht taugt, um die Echtheit des Kommunikationspartners zu bestaetigen, aber dafuer gratis ist.

Alle Beispiele beziehen sich auf RedHat Enterprise Linux 4 oder seine Derivate Tao 4 und CentOS 4.

Erst erstellt man das Zertifikat und den Schluessel


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

Danach entfernt man die Passphrase vom Schluessel, damit vsftpd ohne Passworteingabe starten kann


openssl rsa -in praxis.key -out praxis_clear.key

Und zuletzt gibt man sowohl das Zertifikat, als auch den Schluessel in eine Datei, auf die vsftpd zugreifen kann:


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

Um das Zertifikat auch zu verwenden muss man nur noch folgende Zeilen in die /etc/vsftpd/vsftpd.conf einfuegen:


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

Die beiden force_...=NO sind noetig, damit auch Clients zum FTP verbinden koennen, die kein SSL beherrschen. Wenn man das verhindern und nur verschluesselten Datenverkehr ermoeglichen will, braucht man nur beide auf "YES" zu setzen.

Kommentare

prima, die zeile hab ich gesucht. danke

Freut mich wirklich sehr, dass ich helfen konnte.

Super Danke !

Das habe ich gesucht !!!

Gruß

Björn

Schön, dass ich helfen konnte. :-)

Gruss,
Thomas

Hi,
also danke auch erstmal, im Prinzip funktionierts bei mir auch :) aber sobald der Datentransfer einsetzen soll (also nach dem *erfolgreichen* TLS handshake ) hängt die ganze sache. Ich hab das selbe Phänomen übrigens auch beim proftpd. Weiss jemand hier zufällig was über dieses Phänomen? Firewallregeln gibts nicht, alle policies sind auf ACCEPT. Wieso gehts trotzdem nicht weiter?

thx u. greetz
abiszett

Geht mir _ganz genauso_. Hat da vielleicht irgendjemand eine Idee?

Funktioniert super, auch unter Debian.

Auch ich bedanke mich beim Autor für dieses Howto. Ich habe jedoch ein Problem dabei, die Verschlüsselung zu nutzen. Wenn ich mich mit meinem FTP-Client "lftp" mit dem vsftpd verbinde, bekomme ich beim Ausführen von "ls" die folgende Meldung:

ls: Fatal error: SSL_connect: no cipher list

Ich habe nun schon die man page zu vsftpd gelesen, aber durch den Abschnitt für ssl_ciphers kam ich der Problemlösung leider nicht näher. Ich bin mir auch der Bedeutung dieser Variable nicht bewusst, weswegen ich dort leider auch nicht mal andere Werte probieren kann.

Vielleicht weiß der Autor, oder einer der anderen Leser ja Bescheid, was zu tun ist, obwohl der Erstellungszeitpunkt schon lange her ist.

Grüße,

mah.

Hat uns sehr gut ....und schnell weitergeholfen.

Mit dem zusätzlichen Parameter -nodes im openssl req aufruf kann man sich das anschliessende decrypten des privaten schluessels sparen. Also kürzer:

openssl req -new -x509 -days 365 -nodes -keyout praxis_clear.key -out praxis.crt
cat praxis.crt praxis_clear.key > /usr/share/ssl/certs/vsftpd.pem

vielen dank, klappt ohne probleme.

Ich habe Deinen Beitrag erst heute gesehen ...
Danke für die Anleitung, so ging das Erweitern auf ftp+ssl ja fix :)

Eine Ergänzung:

Es ist (bei mir) noch der Eintrag rsa_private_key_file mit dem Pfad zum Private key des Serverzertifikats notwendig. Aber dann lief der Server wieder.

Also irgendwie gehts bei mir nicht. Könnte echt kotzen.

Gruß von Wie mache ich einen Screenshot

Eventuell kann ich weiterhelfen. Und Screenshots von Shellcommands anzufertigen ist wohl etwas sinnfrei, oder? Noch dazu, wo ich kein Windows verwende, mit dem ich Deine Anleitung nachvollziehen könnte.

Seiten

Neuen Kommentar schreiben