Fürs Verteilen von Dateien über das Internet gibt es zahlreiche Protokolle, aber nicht jedes eignet sich für jeden Zweck. Die recht beliebten Peer-to-Peer-Dienste (Gnutella, E-Donkey und Verwandte) wurden für Szenarien geschaffen, in denen jeder Teilnehmer Files anbieten und empfangen möchte. Beim Verbreiten freier Software gilt eine andere Prämisse: Relativ wenige Anbieter - die Entwickler - stehen einer großen Schar Interessenten gegenüber. Die bekanntesten Protokolle für diese Konstellation sind HTTP und FTP.
Für einfache Aufgaben ist HTTP die nahe liegende Variante: Apache ist fast überall vorhanden, auch die Clientsoftware ist auf jedem System installiert und obendrein denkbar einfach zu bedienen. HTTP lässt aber einige Features vermissen, die Anwender zum Beispiel bei großen Dateien und wackligen Verbindungen benötigen.
Abgebrochene Übertragung fortsetzen
Am bedeutsamsten ist wohl das Verhalten bei abgebrochenen Übertragungen. Zwar enthält die Spezifikation für HTTP 1.1 die Funktionalität, eine Übertragung auf halbem Wege fortzusetzen. Viele Browser können damit allerdings noch nicht umgehen und verschenken somit wertvolle Bandbreite und Zeit. Obendrein ist der Betrieb eines Webservers trotz aller modernen Software relativ Ressourcen-intensiv.
Die meisten dieser Schwierigkeiten treten bei FTP[1] gar nicht auf. Dabei handelt es sich beim File Transfer Protocol nicht etwa um eine spätere Erweiterung oder Nachbesserung von HTTP, sondern um ein gänzlich anderes und außerdem wesentlich älteres Protokoll.
Installation
Daher gehört für viele Webserver ein FTP-Daemon zum notwendigen Beiwerk. Wer eine solche Software installieren möchte, hat zunächst die Qual der Wahl. Der Kasten "Wichtige FTP-Daemons" gibt eine Übersicht der verbreiteten FTP-Server unter Linux. Dieser Artikel beschreibt den leistungsfähigen, sicheren und obendrein leicht erlernbaren Pro-FTPD.
|
Eine Vielzahl von FTP-Daemons ringt um die Gunst der Admins. Die folgende Liste führt vier etablierte und bekannte Vertreter dieser Servergattung auf.
BSD-FTPD: Der Urvater vieler Linux-FTP-Server war gleichzeitig Vorbild für zahlreiche andere Programmierprojekte. Auf kleinen Systemen leistet er heute noch gute Dienste und ist daher Bestandteil mancher Linux-Distribution. Komplexe Aufgaben oder intensive Arbeitsbelastung meistert er aber weniger gut.
WU-FTPD: Unter den derzeit noch benutzten Implementierungen gleicht der FTP-Daemon der Washington University[3] am ehesten dem BSD-FTPD. Der WU-FTPD ist sehr frei konfigurierbar und fügt sich trotzdem nahtlos in ein Unix-System ein. Eine Reihe in den letzten Jahren entdeckter Sicherheitslücken sollte mittlerweile behoben sein.
NC-FTPD: Dieser kommerzielle Server[2] ist nur für Privatanwender und Universitäten kostenlos erhältlich. Den Quellcode bekommt niemand zu Gesicht. Der Daemon erfreut sich dennoch einiger Beliebtheit, da er sich automatisch installiert. Zudem ist er selbst bei vielen gleichzeitigen Sessions sehr schnell.
Pro-FTPD: Wie NC-FTPD kann auch der in diesem Artikel vorgestellte Pro-FTPD[4] als eigenständiger Server laufen und somit Geschwindigkeitsvorteile gegenüber den Konkurrenten erzielen: Wenn er eine neue Verbindung annimmt, muss das Serversystem nicht erst einen neuen Prozess starten. Wahlweise lässt sich dieser Daemon aber auch aus »inetd« heraus aufrufen. Pro-FTPD ist Open Source, einfach zu konfigurieren und sinnvoll abzusichern.
|
Die Mühe der Installation nehmen Ihnen viele aktuelle Distributionen ab - sie liefern die Pakete bereits mit. Falls nicht, müssen Sie selbst Hand anlegen und zunächst die Quelltexte und deren digitale Signaturen von[4] beziehen. Die Signaturen sollten Sie unbedingt prüfen: Listing 1 zeigt die einzelnen Schritte. Zuerst kontrollieren Sie mit »md5sum« die MD5-Prüfsummen. Damit ist sichergestellt, dass das Paket unversehrt ist und beim Download keine zufälligen Fehler auftraten.
01 $ md5sum -c proftpd-1.2.9.tar.bz2.md5
02 proftpd-1.2.9.tar.bz2: OK
03 $ gpg proftpd-1.2.9.tar.bz2.asc
04 gpg: Signature made Fri Oct 31 09:39:42 2003 CET using DSA key ID A511976A
05 gpg: Good signature from "TJ Saunders <tj@castaglia.org>"
06 gpg: WARNING: This key is not certified with a trusted signature!
07 gpg: There is no indication that the signature belongs to the owner.
08 Primary key fingerprint: 697E 684D 1668 D696 8428 405C B78E 893F A511 976A
09 mas@ishi:/tmp>
|
Der wichtigere Test betrifft die GPG-Signatur. Im Gegensatz zur MD5-Summe prüft sie die Authentizität. Das Problem hierbei: Sie wissen in der Regel nicht, dass der zugehörige öffentliche Schlüssel tatsächlich dem Pro-FTPD-Entwickler TJ Saunders gehört. Es gibt keine Garantie, dass der Key korrekt ist. Dennoch ist eine korrekte Signatur ein weiterer Vertrauen bildender Schritt.
Das darauf folgende Übersetzen des Quellcodes und Installieren der erzeugten Dateien entspricht der üblichen Vorgehensweise unter Linux. Listing 2 zeigt die einzelnen Schritte. Interessant sind vor allem die Configure-Optionen in Zeile 3.
01 $ bzip2 -cd proftpd-1.2.9.tar.bz2 | tar xf -
02 $ cd proftpd-1.2.9
03 $ ./configure --sysconfdir=/etc/proftpd --localstatedir=/var/run
04 [...]
05 $ make
06 [...]
07 $ su
08 Password:
09 # make install
|