FTP (File Transfer Protocol) ist eines der ersten Internet-Protokolle (RFC 959 ist 1985 veröffentlicht worden!). Es wurde zur Verteilung von Dateien benutzt, sogar schon bevor das Web geboren war (das HTTP-Protokoll wurde 1990 entwickelt und formal in seiner 1.0 Version durch RFC 1945 festgelegt, die 1996 veröffentlicht worden ist).
Dieses Protokoll ermöglicht sowohl das Hoch- als auch das Herunterladen von Dateien; daher wird es noch häufig verwendet, um Aktualisierungen auf einer bei einem Internetdienstanbieter untergebrachten Website einzustellen (oder bei irgendeiner anderen Stelle, die Websites aufnimmt). In diesen Fällen wird ein sicherer Zugriff durch eine Benutzerkennung und ein Passwort erreicht; nach der erfolgreichen Authentifizierung gewährt der FTP-Server Lese- und Schreibzugriff auf das Benutzerverzeichnis des jeweiligen Benutzers.
Andere FTP-Server dienen in erster Linie dazu, Dateien zum öffentlichen Download zu verbreiten; Debian-Pakete sind hierfür ein gutes Beispiel. Der Inhalt dieser Server wird von anderen, geografisch entfernten Servern bezogen; er wird dann weniger entfernten Benutzern zur Verfügung gestellt. Dies bedeutet, dass Client-Authentifizierung nicht erforderlich ist; daher wird diese Betriebsart als „anonymes FTP“ bezeichnet. Um ganz genau zu sein, authentifizieren sich die Clients mit dem Benutzernamen anonymous
; das Passwort ist dabei üblicherweise die E-Mail-Adresse des Benutzers, aber der Server ignoriert sie.
In Debian stehen zahlreiche FTP-Server zur Verfügung (ftpd, proftpd-basic, pyftpd und so weiter). Die Falcot Corp. Administratoren haben vsftpd gewählt, weil sie den FTP-Server nur dazu benutzen, einige Dateien zu verbreiten (einschließlich eines Debian-Paketdepots); da sie keine weitergehenden Leistungsmerkmale benötigen, haben sie sich dafür entschieden, die Sicherheitsaspekte in den Mittelpunkt zu stellen.
Durch das Installieren des Pakets wird ein Systembenutzer namens ftp
erstellt. Dieses Konto wird stets für anonyme FTP-Verbindungen verwendet, und sein Benutzerverzeichnis (/srv/ftp/
) ist der Stamm des Verzeichnisbaums, der den Benutzern, die sich mit diesem Dienst verbinden, zur Verfügung gestellt wird. Die Standardkonfiguration (in /etc/vsftpd.conf
) erfordert einige Änderungen, um der einfachen Notwendigkeit gerecht zu werden, große Dateien für öffentliche Downloads zur Verfügung zu stellen: anonymer Zugriff muss aktiviert sein (anonymous_enable=YES
) und Lesezugriff von lokalen Benutzern muss deaktiviert sein (local_enable=NO
). Letzteres ist besonders wichtig, da das FTP-Protokoll keine Verschlüsselung verwendet und das Benutzerpasswort über die Leitung abgefangen werden kann.