secure ftp Server mit let’s encrypt Zertifikat

Es ist leicht, einen sftp Server mit let’s encrypt Zertifikat zu installieren. Hier kommt eine Anleitung für den vsftpd auf debian und ubuntu, bei dem lokale accounts auf Ihrer Daten per sftp zugreifen können.

Hier kann man nachlesen, wie man ein let’s encrypt Zertifikat installiert. Ich setze das auf meinem vserver auf.

sudo  apt-get install vsftpd

und solange ich den Server noch konfiuriere, stoppe ich ihn mal:

sudo service vsftpd stop

mein let’s encrypt Zertifkat liegt hier: /etc/letsencrypt/live/www.joergbeyer.com/ . Das muss ich jetzt in der Konfiguration des ftp servers eintragen:

rsa_cert_file=/etc/letsencrypt/live/www.joergbeyer.com/cert.pem
rsa_private_key_file=/etc/letsencrypt/live/www.joergbeyer.com/privkey.pem
ssl_enable=YES

 

Dies sind die Optionen, die ich verwendet habe:

 

grep "^[^#]" /etc/vsftpd.conf 
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/letsencrypt/live/www.joergbeyer.com/cert.pem
rsa_private_key_file=/etc/letsencrypt/live/www.joergbeyer.com/privkey.pem
ssl_enable=YES
seccomp_sandbox=no

so, nun kann ich den ftp server starten:

sudo service vsftpd start

Und nun sollte man ihn benutzen können. Erstmal testen wir, dass der nicht secure Zugriff nicht funktioniert:

joerg@dilbert:~$ ftp www.joergbeyer.com
Connected to www.joergbeyer.com.
220 (vsFTPd 3.0.2)
Name (www.joergbeyer.com:joerg): 
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>

man beachte, dass ich ftp und nicht sftp als client verwendet habe. Nun das selbe mit sftp als client:

joerg@dilbert:~$ sftp -o FingerprintHash=md5 www.joergbeyer.com
The authenticity of host 'www.joergbeyer.com (62.75.175.88)' can't be established.
ECDSA key fingerprint is MD5:72:2e:38:1c:42:69:19:be:6f:b9:e2:a9:ff:5f:cc:19.
Are you sure you want to continue connecting (yes/no)? yes

Warte mal, jetzt brauchen wir den Fingerprint zum Vergleich. Auf dem Server bekommt man den so angezeigt:

for file in *sa_key.pub; do ssh-keygen -lf $file; done
1024 77:64:79:66:f2:dc:76:78:12:39:14:b5:1d:89:81:0e ssh_host_dsa_key.pub (DSA)
256 72:2e:38:1c:42:69:19:be:6f:b9:e2:a9:ff:5f:cc:19 ssh_host_ecdsa_key.pub (ECDSA)
2048 e3:8f:6e:83:3e:e3:e0:10:04:94:b0:3c:c4:0e:7d:10 ssh_host_rsa_key.pub (RSA)

Wichtig: der im sftp Dialog angezeigte Fingerprint muss mit einem der hier angezeigten Fingerprints übereinstimmen. Tut er auch: der mittlere passt. Ja, es ist leidig, die Fingerprints zu überprüfen – ist aber nötig um sicher zu stellen, dass man auf dem richtigen Server landet.

Die Fingerprints muss man immer überprüfen, bevor man einen host zu den known hosts hinzufügt. Jetzt also ein ssh auf den Server zu machen um die Fingerprints zu überprüfen ist sinnlos – denn dabei geht man den selben Trust ein…

Warning: Permanently added 'www.joergbeyer.com,62.75.175.88' (ECDSA) to the list of known hosts.
joerg@www.joergbeyer.com's password:
Connected to www.joergbeyer.com.
sftp>

geht.

 

Dieser Beitrag wurde unter Allgemein abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>