ProFTPd mit TLS

Wie heißte es heute zu tage immer so schon, man kann nie sicher genug sein. Gleiches gilt auch für das traditionelle FTP Protokoll, was nun langsam in die Jahre kommt, aber immer noch _DAS_ Protokoll Nummer 1 ist, wenn es um Dateiübertragungen geht.

Eines der Probleme des FTP Protokoll ist es, dass es Benutzernamen und Passwort als „plain text“ also als für jeden sicht- und lesbaren Text überträgt. Wohnt man nun zum Beispiel in einem Studentenwohnheim und jemand dort schafft es, wie auch immer, unseren Netzwerkverkehr mitzuhöhren, so wäre er in der Lage unseren Benutzernamen und das Passwort heraus zu finden.
Um dem entgegenzuwirken müssen wir eine sichere Verbindung aufbauen, welches wir auch wie bei HTTP bekannt über SSL bzw. TLS machen.

Konfiguration von proFTPd:

# TLS

  TLSEngine on
  TLSLog /var/log/proftpd_tls.log
  TLSProtocol SSLv23
  TLSCipherSuite ALL:!ADH:-LOW:-MEDIUM:-SSLv2
  TLSRequired off
  TLSVerifyClient off
  TLSRSACertificateFile /etc/proftpd/host.cert
  TLSRSACertificateKeyFile /etc/proftpd/host.key

Weiter Konfigurationsdirektiven für ProFTPd können auf der Webseite1

Zertifikate erstellen:

Nun brauchen wir noch Zertifikate, damit die Verbindung auch verschlüsselt werden kann. Der einfachste Weg ist sich selber solche Zertifikate auszustellen. Dies bedeutet allerdings für den Benutzer, dass er sich nicht sicher sein kann, dass beim Authentifizieren mit dem Server der Server auch wirklich derjenige ist, mit dem sich der Nutzer verbinden will. Deswegen gibt es sogenannte Signing Authorities wie Versign und Co.. Eine kostenlose Signing Authority is http://www.cacert.org. Hat der Benutzer deren Zertifikate als vertrauenswert eingestuft, dann kommt auch kein Warnhinweis, dass das Zertifikat nicht vertrauenswürdig ist.

Nun aber zur Erstellung der Zertifikate2 dazu benutzen wir openSSH3

openssl genrsa -des3 -out host.key 1024

Generating RSA private key, 1024 bit long modulus
.........................................................++++++
........++++++
e is 65537 (0x10001)
Enter PEM pass phrase:
Verifying password - Enter PEM pass phrase:

Hierbei lassen wir die pass phrase leer!

openssl req -new -key host.key -out host.csr

Hier ist es wichtig, dass der „Common Name (eg, your name or your server’s hostname) []“ mit der Domain über einstimmt für die das Zertifikat genutzt werden soll. bsp. ssl.freakbynature.de

openssl x509 -req -days 365 -in server.csr -signkey host.key -out host.crt

Voila fertig sind die Zertifikate. Nun noch den proFTPd restarten und dann testen.

  1. http://www.proftpd.org/docs/howto/TLS.html []
  2. Mehr zum Erstellen von Zertifikaten, http://www.akadia.com/services/ssh_test_certificate.html []
  3. http://openssl.org/docs/ []

Schreibe einen Kommentar