Überblick
Im sechsten Teil der Artikelserie: Konfiguration eines Rootserver in 10 Teilen, möchte ich zeigen, wie man den FTP-Dienst auf dem Ubuntu Rootserver installiert und konfiguriert. Ein wichtiger Aspekt dabei ist, dass der FTP-Dienst prinzipiell nicht sicher ist, weshalb man diesen mit einem SSL-Zertifikat ausstatten sollte, damit die Verbindung verschlüsselt abläuft.
Installation und Konfiguration von vsftpd
Auch die Installation von vsftpd läuft über den apt-Paketmanager.
sudo apt-get install vsftpd
Nach der Installation ist der Dienst bereits auch aktiv. Die Konfigurationsdatei mit dem Namen vsftpd.conf liegt im /etc Verzeichnis. Auch hier ist es sinnvoll vor der Konfiguration ein Backup zu erstellen. Diese Datei sollte natürlich auch entsprechend angepasst werden. Einige wichtige Einstellungen sind in der nachfolgenden Tabelle aufgelistet.
Konfigurationseinstellungen | Beschreibung des Parameters |
---|---|
local_enable=YES | Lokalen Benutzer den Zugriff erlauben |
write_enable=YES | Den Benutzers Schreibrechte gewähren |
anonymous_enable=NO | Keinen anonymen Zugriff erlauben |
anon_upload_enable=NO | Keine anonyme Uploads erlauben |
chroot_local_user=YES | Benutzer in deren Homeverzeichnis beschränken |
userlist_enable=YES | Benutzerliste aktivieren! |
userlist_file=/etc/vsftpd.user_list | Nur die aufgeführten Benutzer haben einen FTP Zugang |
Mit diesen obigen Einstellungen ist ein ftp Zugriff auf den Server möglich. Dieser ist allerdings noch nicht per Zertifikat abgesichert. Genau das zeige ich euch im nächsten Abschnitt. Übrigens muss man nach jeder Änderung an der Konfigurationsdatei den vsftpd Dienst neu starten.

/etc/init.d/vsftpd restart
Absichern des Zugriffs mit einem SSL Zertifikat
Um den Zugriff per FTP besser zu schützen, sollte man ein SSL- Zertifikat verwenden. Ich habe hierfür ein eigenes Zertifikat generiert. Das geht indem man openssl am Server installiert.
sudo apt-get install openssl
Bevor man jetzt das Zertifikat erzeugt, macht es Sinn sich einen Ordner anzulegen, indem man sämtliche Zertifikate ablegt. Ich nenne den Ordner mal secure und erstelle ihn im /etc/ssl Verzeichnis. Die Rechte werden dabei so vergeben, dass nur der Besitzer alle Rechte erhält.
mkdir -p /etc/ssl/secure chmod 700 /etc/ssl/eecure
Mit der folgenden Befehlszeile wird nun das Zertifikat erzeugt.
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/secure/vsftpd.pem -out /etc/ssl/secure/vsftpd.pem

Bei der Generierung des Zertifikats werden natürlich neben der Key-Länge auch grundsätzliche Daten wie Country Name, Adresse etc. benötigt. Jetzt ist es noch wichtig, dem vsftpd Server mitzueilen, dass er SSL verwenden soll. Hierzu muss man die vsftpd.conf Datei öffnen und folgende Einstellungen vornehmen.
Konfigurationsparameter | Beschreibung des Parameters |
---|---|
ssl_enable =YES | SSL einschalten |
force_local_logins_ssl=YES | SSL erzwingen |
rsa_cert_file=/etc/ssl/secure/vsfptd.pem | Pfad zum SSL Zertifikat |
Beim Zugriff über Filezilla wird jetzt das Zertifikat explizit angezeigt und man kann sich die jeweiligen Daten (Company Name, Email etc.) ansehen. Zuvor muss in den Einstellungen natürlich auch angeben werden, dass FTP mit TLS verwendet werden soll, sofern es verfügbar ist.

Übrigens zeigt Filezilla durch das Schlosssymbol in der Statuszeile auch an, dass die Verbindung verschlüsselt ist.


Fazit
Prinzipiell ist der FTP Zugang zum Rootserver sehr schnell eingerichtet. Aus Sicherheitsgründen sollte man aber unbedingt ein Zertifikat verwenden, da der Zugriff sonst komplett unverschlüsselt ist und damit sehr unsicher. Generell würde ich empfehlen der FTP Dienst auch nur zu starten wenn er unbedingt gebraucht wird. So wie z.B. im nächsten Artikel der Serie, wo auf dem Rootserver WordPress installiert wird.