Willkommen zum vorerst letzten Teil dieses Workshops!
Auf unserem Server läuft jetzt ein Webserver, der PHP-Interpreter und ein MySQL-Datenbankserver, um dynamische Websites ausliefern zu können. Als letztes richten wir noch einen FTP-Server ein, um Dateien auf den Server rauf/runterladen können. Wir verwenden den FTP-Server “proftpd”, da er sowohl weit verbreitet als auch relativ einfach einzurichten ist.
Wir verwenden zur Authentifizierung mit dem FTP-Server “normale” Linux-User-Accounts. Die Methode über virtuelle User wird demnächst erläutert.
In Debian 6.0 “Squeeze” ist der proftpd-Server in Version 1.3.3a im Repository enthalten. Über die Paketverwaltung wird im ersten Schritt der proftpd-Daemon installiert.
apt-get install proftpd
Während der Installation werden wir gefragt, ob proftpd als eigener Server gestartet werden soll, oder ob er durch den Inetd-Server verwaltet werden soll. Hier wählen wir “Servermodus” oder “standalone” (je nach Sprachversion des Betriebssystems) aus.
Wenn auf dem Server eine oder mehrere Websites gehostet werden, brauchen wir keinen neuen Benutzer anzulegen, da wir als FTP-Benutzernamen den Benutzernamen unseres PHP-Benutzers verwenden. Haben wir für PHP noch keinen Benutzer eingerichtet, werden auf dem Server keine Websites gehostet oder kommt eine andere PHP-Konfiguration (z.B. über apache2-mod-php und suEXEC) zum Einsatz, dann müssen wir zuerst einen ganz normalen Linux-User mit eingeschränkten Benutzerrechten anlegen.
Die Konfigurationsdatei für proftpd liegt unter /etc/proftpd/proftpd.conf. Zunächst sollten wir jeden FTP-Benutzer in sein home-Verzeichnis “einsperren”, sonst kann jeder FTP-Benutzer durch das ganze Dateisystem “wandern” und ggf. sensible Dateien einsehen. Dazu entfernen wir einfach das #-Zeichen vor der Zeile “default-root ~”. Ebenfalls sollte noch die Zeile “RequireValidShell” von dem Rautezeichen befreit werden, damit der FTP-Benutzer keine gültige Shell benötigt. Dies ist etwa sinnvoll, wenn einem Webhosting-Kunden auf dem Server kein SSH-Zugang gewährt werden soll und als Shell /bin/false angegeben wird. Die Direktive “DeferWelcome” sollte noch auf “on” gesetzt werden. Dadurch wird verhindert, dass Informationen über die FTP-Server-Software wie der Name des Servers und die Versionsnummer vor der erfolgreichen Authentifizierung des Clients am Server übertragen werden, was aus Sicherheitsgründen interessant ist. Wollen wir statt der Standard-Willkommensnachricht bestehend aus Servername + Versionsnummer einen eigenen Servernamen ausgeben, können wir der proftpd.conf noch die Zeile “ServerIdent on “Servername”“ hinzufügen.
Nach einem Neustart des Proftpd-Servers ist die Konfiguration im wesentlichen auch schon erledigt. Bei der momentanen Konfiguration kann sich jeder Linux-Benutzer an dem FTP-Server anmelden und nur in sein Home-Verzeichnis lesen und schreiben. Diese Methode der Authetifizierung ist für die meisten Einsatzgebiete ausreichend. Sollen mehr als 50 FTP-Accounts auf einem Server angelegt werden, dann lohnt sich ein Blick auf die Authetifizierung über eine MySQL-Datenbank und der SQL-Bridge des proftpd-Servers. Dies ist jedoch ein wenig aufwändiger und wird – je nach Bedarf – in einem separaten Artikel erklärt.