Als Alternative zu den verbreiteten FTP-Daemons wu-ftpd und pro-ftpd gewinnt Pure-FTPd
immer mehr Verbreitung. Insbesondere die eigentlich sehr einfache und (relativ)
übersichtliche Konfiguration (via Schalter beim Aufruf) macht den Pure-FTPd attraktiv – und
schreckt leider viele User erstmal ab.
Die meisten wünschen sich eine mit Kommentaren versehene Konfigurationsdatei in
/etc
. Dies ist auch mit dem Pure-FTPd möglich, allerdings muß man dazu erstmal die
Readme-Datei lesen. Daran scheinen etliche gescheitert zu sein – zumindest wenn ich an einige
Kommentare in diversen Foren zurückdenke.
Diese Seiten sollen die einfache Bedienung des Pure-FTPd auch für Benutzer erklären, die sich
sonst lieber auf grafische Tools zur Konfiguration von Programmen und Diensten
verlassen.
Wer unbedingt will, kann also auch den Pure-FTPd mit einer Konfigurationsdatei einrichten und
starten. Hierzu findet man auf der offiziellen Homepage (oder im entpackten Archiv der Sourcen) eine Datei mit
dem Namen README.Configuration-File. Darin sind alle
Informationen enthalten.
Seit 2002 befindet sich diese Anleitung schon im Internet. Im Laufe der Zeit ist sie daher häufig verlinkt wurden. Sie wurde auch bereits einige Male überarbeitet beziehungsweise mit Hinweisen und Links ergänzt.
Beispielsweise die seit April 2008 auf einer separaten Website beschriebene Konfiguration der virtuellen Benutzer, wie sie unter Ubuntu 7.10 anhand eines Konfigurationsverzeichnisses realisiert wurde.
Im Januar 2010 habe ich zur inzwischen fast 8 Jahre alten Anleitung zu PureFTPd einige Zeilen zur
grafischen Konfigurationsoberfläche PureAdmin verfasst. Leider
hatte ich ein paar Probleme mit der Software, ein Workaround für meinen Verwendungszweck habe ich
ebenfalls dokumentiert. Dieser ist auf der eben genannten Seite zu finden.
Die folgende Anleitung wird sich allerdings ausschließlich auf das Aufrufen von Schaltern an
der Kommandozeile bzw. der /etc/inetd.conf
befassen.
Die Quellen vom der offiziellen Homepage www.pureftpd.org beziehen. Dort stehen ebenfalls schon fertige RPMs zum
Download bereit und für Debian-Benutzer gibt's Einträge für die
/etc/apt/sources.list
für .debs und die Sourcen.
Anschließend entweder die Pakete installieren oder eben das Archiv mit den Sourcen entpacken
(nach /usr/src).
Nach dem Entpacken in das Verzeichnis wechseln (beispielsweise
/usr/src/Pure-FTPd-1.0.12
) und dort dann folgenden Aufruf machen:
./configure --with-everything --with-language=german
Andere Optionen wären beispielsweise:
--without-inetd (ohne inetd-Unterstützung) --without-standalone (ohne Unterstützung des standalone-Modus)
Wurden keine Fehler gemeldet, kann der Server danach mit
make
make install
installiert werden. Er sollte jetzt einsatzbereit sein.
Alternativ kann bei ./configure
natürlich auch die Funktionalität des Servers
begrenzt werden. Ein Beispiel:
./configure --with-puredb --with-nonroot --with-virtualchroot \ --with-virtualhosts --with-puredb --without-standalone \ --with-throttling --with-language=german
Alles drin, alles dran was man für den »Beispielserver« (siehe hier) benötigt. Zusätzlich bewirkt die Angabe
--with-throttling
, dass – beispielsweise für Virtuelle Benutzer – die bandwith
limitation genutzt werden kann.
Wenn der Pure-FTPd vom Internet-Superserver (inetd) aus gestartet werden soll, muß eine
eventuell bereits vorhandene Zeile für einen FTP-Server angepasst, oder ein neuer Eintrag
erstellt werden. Bitte nicht gleich vor den drei verschiedenen Zeilen erschrecken, ich will
an dieser Stelle nur die unterschiedlichen Varianten darstellen und erläutern. Letztendlich
wird vermutlich die letzte Variante in Kombination mit Schaltern verwendet werden, doch
zunächst fange ich mal ganz am Anfang an.
Ein unvollständiges und daher nicht funktionierendes Beispiel für eine solche Zeile:
ftp stream tcp nowait root /usr/local/sbin/Pure-FTPd
Diese Zeile ist deshalb unvollständig, weil nach dem Aufruf des Pure-FTPd keine Optionen
mit übergeben worden sind. Ohne eine weitere Angabe würde der Server nicht starten.
Es gibt zwei Möglichkeiten, den Server trotzdem starten zu lassen. Zunächst die
Wahrscheinlichere: Es werden weitere Angaben gemacht wie der Server sich zu verhalten hat.
Der Server verwendet wenn er ohne Schalter aufgerufen wird seine fest einkompilierten
Einstellungen. Dies ist an der Kommandozeile kein Problem, eventuell auch beim Aufruf vom
inetd
aus nicht.
Allerdings benötigt die korrekt geschriebene Zeile in der /etc/inetd.conf
einen oder
mehrere Übergabeparameter. Welche Schalter beim Aufruf gesetzt werden können ist auf der
nächsten Seite zu sehen. Bitte nicht gleich weiterblättern, alles zu seiner Zeit.
Für den Anfang würde es genügen, ihm den Schalter -B anzuhängen.
An der Konsole bewirkt das -B das Starten im Hintergrund des
Servers. Die Zeile in der inetd.conf würde dann so lauten:
ftp stream tcp nowait root /usr/local/sbin/Pure-FTPd -B
Noch zu der ersten Möglichkeit zähle ich die nun folgende Variante. Es ist mir von anderen
Distributionen bekannt, das einfach noch eine »Dummy«-Option mit angegeben wird. Gerne wird
dafür der Namen des Servers wiederholt. Ein solcher Aufruf würde so in der
/etc/inetd.conf
stehen:
ftp stream tcp nowait root /usr/local/sbin/Pure-FTPd Pure-FTPd
Diese Schreibweise ist zwar nicht gerade fein, ist aber oft sogar in den Handbüchern
einiger Distributionen so zu finden.
Die weite Möglichkeit für eine korrekte Schreibweise der Zeile setzt einen installierten
tcpwrapper (tcpd
) voraus. Für den Betrieb über inetd wird in der Praxis ohnehin der
tcpwrapper vorgeschaltet. Daher hier der Eintrag in der inetd.conf mit dem vorgeschalteten
aufruf des tcpwrappers:
ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/Pure-FTPd
Ich habe die einzelnen Bestandteile etwas »zusammengerafft« damit alles komplett in eine
Zeile auf dieser Seite passt. Der tcpwrapper hat den Pure-FTPd sozusagen als »Option« bzw.
»Übergabeparameter« als Anhängsel. Daher funktioniert dieser Aufruf und der FTP-Server sollte
laufen.
Nach dem Anpassen der /etc/inetd.conf
muß inetd natürlich neu gestartet werden,
damit die Änderungen übernommen werden:
turanga:~# ps -e | grep inetd 183 ? 00:00:00 inetd turanga:~# kill -1 183 turanga:~#
Wer den Pure-FTPd lieber im Standalone-Modus betreiben will, kann dies natürlich über den
direkten Aufruf des Daemons an der Kommandozeile realisieren.
Wird der Pure-FTPd ohne weitere Angaben gestartet, verwendet er – wie bereits erwähnt – eine
einkompilierte Standardkonfiguration. Diese kann/muß/sollte man mit sogenannten Schaltern
(oder auch »Flags«) ändern, beziehungsweise den Pure-FTPd an die eigenen Anforderungen
anpassen.
Beim Starten von der Kommandozeile aus muß zumindest ein Schalter mit angegeben werden:
-B. Ansonsten bleibt die Kommandozeile vom gestarteten Server
blockiert.
Zurück zu den Schaltern. Auf der nächsten Seite ist eine Übersetzung der Funktionen der
einzelnen Schalter zu finden. Ich habe sie aus dem Englischen auf Deutsch übersetzt, da ich
keine solche Übersetzung im Web finden konnte.
Da die Schalter eigentlich eher als »Nachschlagewerk« dienen sollen, kann man auch direkt zur
dritten Seite dieses HowTos wechseln, auf welcher Teile der Konfiguration erklärt werden. Auf
der vierten Seite wird eine angepasste Konfiguration des Servers vorgestellt, welche der
Konfiguration eines von mir aufgesetzten FTP-Servers entspricht.