Server Setup · 3 min read · Dec 23, 2025
Einrichten von vsftpd + TLS auf Debian Squeeze
Einrichten von vsftpd + TLS auf Debian Squeeze
Version 1.0
Autor: Falko Timme
Folge mir auf Twitter
FTP ist ein sehr unsicheres Protokoll, da alle Passwörter und Daten im Klartext übertragen werden. Durch die Verwendung von TLS kann die gesamte Kommunikation verschlüsselt werden, wodurch FTP viel sicherer wird. Dieser Artikel erklärt, wie man vsftpd mit TLS auf einem Debian Squeeze-Server einrichtet.
Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!
1 Vorbemerkung
In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.0.100. Diese Einstellungen können bei Ihnen abweichen, daher müssen Sie sie gegebenenfalls anpassen.
2 Installation von vsftpd und OpenSSL
OpenSSL wird von TLS benötigt; um vsftpd und OpenSSL zu installieren, führen wir einfach aus:
apt-get install vsftpd openssl3 Erstellen des SSL-Zertifikats für TLS
Um TLS verwenden zu können, müssen wir ein SSL-Zertifikat erstellen. Ich erstelle es in /etc/ssl/private - wenn das Verzeichnis nicht existiert, erstellen Sie es jetzt:
mkdir -p /etc/ssl/private
chmod 700 /etc/ssl/privateAnschließend können wir das SSL-Zertifikat wie folgt generieren:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pemLändercode (2 Buchstaben) [AU]: <– Geben Sie Ihren Ländercode ein (z.B. “DE”).
Bundesland oder Provinzname (vollständiger Name) [Some-State]: <– Geben Sie den Namen Ihres Bundeslandes oder Ihrer Provinz ein.
Ort (z.B. Stadt) []: <– Geben Sie Ihre Stadt ein.
Organisationsname (z.B. Firma) [Internet Widgits Pty Ltd]: <– Geben Sie den Namen Ihrer Organisation ein (z.B. den Namen Ihres Unternehmens).
Abteilungsname (z.B. Sektion) []: <– Geben Sie den Namen Ihrer Abteilung ein (z.B. “IT-Abteilung”).
Allgemeiner Name (z.B. IHR Name) []: <– Geben Sie den vollqualifizierten Domainnamen des Systems ein (z.B. “server1.example.com”).
E-Mail-Adresse []: <– Geben Sie Ihre E-Mail-Adresse ein.
4 Aktivieren von TLS in vsftpd
Um TLS in vsftpd zu aktivieren, öffnen Sie /etc/vsftpd.conf…
vi /etc/vsftpd.conf… und fügen Sie die folgenden Optionen hinzu oder ändern Sie sie:
| [...] # SSL aktivieren ssl_enable=YES # Anonyme Benutzer dürfen gesicherte SSL-Verbindungen verwenden allow_anon_ssl=YES # Alle nicht-anonymen Anmeldungen sind gezwungen, eine sichere SSL-Verbindung zu verwenden, um Daten über Datenverbindungen zu senden und zu empfangen. force_local_data_ssl=YES # Alle nicht-anonymen Anmeldungen sind gezwungen, eine sichere SSL-Verbindung zu verwenden, um das Passwort zu senden. force_local_logins_ssl=YES # Erlauben Sie TLS v1-Protokollverbindungen. TLS v1-Verbindungen haben Vorrang ssl_tlsv1=YES # Erlauben Sie SSL v2-Protokollverbindungen. TLS v1-Verbindungen haben Vorrang ssl_sslv2=NO # Erlauben Sie SSL v3-Protokollverbindungen. TLS v1-Verbindungen haben Vorrang ssl_sslv3=NO # Deaktivieren Sie die Wiederverwendung von SSL-Sitzungen (erforderlich von WinSCP) require_ssl_reuse=NO # Wählen Sie, welche SSL-Verschlüsselungen vsftpd für verschlüsselte SSL-Verbindungen zulassen wird (erforderlich von FileZilla) ssl_ciphers=HIGH # Diese Option gibt den Speicherort des RSA-Zertifikats an, das für SSL-verschlüsselte Verbindungen verwendet werden soll. rsa_cert_file=/etc/ssl/private/vsftpd.pem [...] |
Wenn Sie force_local_logins_ssl=YES und force_local_data_ssl=YES verwenden, sind nur TLS-Verbindungen erlaubt (dies schließt alle Benutzer mit alten FTP-Clients aus, die keine TLS-Unterstützung haben); durch die Verwendung von force_local_logins_ssl=NO und force_local_data_ssl=NO sind sowohl TLS- als auch Nicht-TLS-Verbindungen erlaubt, je nachdem, was der FTP-Client unterstützt.
Neben den TLS-Optionen stellen Sie sicher, dass Sie auch die folgenden Einstellungen in Ihrer vsftpd.conf haben, um nicht-anonyme Anmeldungen zu aktivieren:
| [...] # Kommentieren Sie dies aus, um lokalen Benutzern die Anmeldung zu ermöglichen. local_enable=YES # # Kommentieren Sie dies aus, um eine beliebige Form von FTP-Schreibbefehlen zu aktivieren. write_enable=YES # # Die Standard-Umask für lokale Benutzer ist 077. Sie möchten dies möglicherweise auf 022 ändern, # wenn Ihre Benutzer das erwarten (022 wird von den meisten anderen ftpd's verwendet) local_umask=022 [...] # Sie können lokale Benutzer auf ihre Home-Verzeichnisse beschränken. Siehe die FAQ für # die möglichen Risiken, bevor Sie chroot_local_user oder # chroot_list_enable unten verwenden. chroot_local_user=YES [...] |
Starten Sie anschließend vsftpd neu:
/etc/init.d/vsftpd restartDas war’s. Sie können jetzt versuchen, sich mit Ihrem FTP-Client zu verbinden; Sie sollten jedoch Ihren FTP-Client so konfigurieren, dass er TLS verwendet (dies ist ein Muss, wenn Sie force_local_logins_ssl=YES und force_local_data_ssl=YES verwenden) - siehe das nächste Kapitel, wie Sie dies mit FileZilla tun.
5 Konfigurieren von FileZilla für TLS
Um FTP mit TLS zu verwenden, benötigen Sie einen FTP-Client, der TLS unterstützt, wie z.B. FileZilla.
Öffnen Sie in FileZilla den Server-Manager:
Wählen Sie den Server aus, der vsftpd mit TLS verwendet; wählen Sie im Dropdown-Menü Servertyp FTPES anstelle von normalem FTP:

Jetzt können Sie sich mit dem Server verbinden. Wenn Sie dies zum ersten Mal tun, müssen Sie das neue SSL-Zertifikat des Servers akzeptieren:

Wenn alles gut geht, sollten Sie jetzt auf dem Server angemeldet sein:

6 Links
- vsftpd: https://security.appspot.com/vsftpd.html
- FileZilla: http://filezilla-project.org/
- Debian: http://www.debian.org/
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.