Werbehinweise

Startseite » Software » Linux » Pure-FTPd 

Werbung

Pure-FTPd

Einführung

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.

Kompilieren und installieren

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.

Pure-FTPd von inetd starten lassen

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.

Datenschutzerklärung
Durch die Nutzung der Website stimmen Sie der Verwendung von Cookies zur Durch­führung von Analysen und zum Erstellen von Inhalten und Werbung, welche an Ihre Interessen angepasst ist, zu.