pure-ftpd

Professioneller FTP-Server auf Linux

FTP ist auf jedem Server ein Standard-Dienst. Auf Linux (LAMP)-Systemen werden vorwiegend die FTP-Server pure-ftpd und vsftpd verwendet. pure-ftpd erlaubt sowohl einfache Tests als auch absolut professionelles und sicheres FTP-Service mit hoher Last.
LAMP Standard-Server mit Linux - Apache - MySQL - PHP - Samba
Linux & FTP FTP-Server als fixer Bestandteil jedes Standard-Servers
Vorbereitung LAN, Server, Installation, ...
Verwaltung Scripts, Start, Autostart, Kontrolle, ...
Konfiguration Maßgeschneiderte Einstellung nach Bedarf
Optionen Eine kleine Auswahl der Möglichkeiten
Muster Muster-Konfigurationen
Links Ausgewählte Links zum Thema 'pure-ftpd'

Linux und FTP

Ein FTP-Server gehört zur Standard-Ausrüstung jedes LAN-Servers. Da Linux-Systeme diesen Bereich dominieren, ist das Thema für IT-AdministratorInnen wichtig.

FTP ist ein vergleichsweise 'altes' Protokoll und wurde im Laufe der Zeit stark durch HTTP verdrängt. In einigen Bereichen wird FTP allerdings weiterhin gerne verwendet (s.u.).

ftpd

Für den FTP-Dienst sind auf Linux zahlreiche Produkte verfügbar. Hier wird lediglich pure-ftpd kurz beschrieben. Diese Auswahl hat zwei Gründe:
pure-ftpd ist weit verbreitet und in fast allen Linux-Distributionen enthalten. Das Programm ist schnell und sehr sicher. Es erlaubt alle denkbaren Optionen, vom einfachen Test bis zum Profi FTP-Server.
Das 'd' am Ende des Namens zeigt an, dass es sich um einen 'daemon' (Dienst, service) handelt, also ein Server-Programm ohne Oberfläche.
Die Konfiguration ist jedoch ungewöhnlich und für AnfängerInnen nicht leicht verständlich.

Download:

Ein FTP-Server dient als bequeme und sichere Quelle für Dateien jeder Art.

In jedem LAN sollte dieses Service (anonym, readonly) eingerichtet sein und alle jene Dateien in aktueller Version anbieten, die für die BenutzerInnen jederzeit verfügbar sein sollen.
Wenn dieses Service gut gewartet wird, haben die AnwenderInnen dazu Vertrauen und verzichten auf individuelles Download und lokales Speichern. Das spart Zeit, Nerven und Speicherplatz.

Ein FTP-Server kann jedoch auch als Dateien-Drehscheibe für Upluad und Download dienen. Dazu bieten Linux und pure-ftpd sauber geordnete und gut konfigurierbare Zugriffsrechte.

Technische Reserve

FTP ist vergleichsweise primitiv und robust, funktioniert daher meist auch unter schwierigen Bedingungen. Wenn z.B. Fehler im LAN, an einem Server oder PC auftreten, stellt FTP eine verlässliche technische Reserve dar.
Jedes gängige Betriebssystem bietet ein FTP Konsolen-Programm. Das funktioniert ohne spezielle Installation, ohne grafische Oberfläche, meist auch in einem 'Notfall-System'.
Kluge AdministratorInnen installieren daher auf jedem Server auch einen FTP-Server, selbst dann, wenn dieser im Normalbetrieb gar nicht benötigt wird.

Synchronisation:

FTP-Client Programme gibt es (auch kostenlos) für alle Betriebssysteme. Sie eignen sich ausgezeichnet für die Synchronisation von Verzeichnissen: Ein 'slave'-Verzeichnis (Ordner) wird auf den aktuellen Stand des gewünschten 'master'-Verzeichnisses gebracht: neue oder geänderte Dateien & Verzeichnisse werden zum 'slave' kopiert, gelöschte werden auch vom 'slave' entfernt.

Ein typischer Fall von Synchronisation ist der Web-Upload:
Ein Web wird auf dem lokalen PC (oder auf einem Netzwerk-Volume) entwickelt. Nach erfolgreichem Test werden (nur) die geänderten Dateien auf den Webserver kopiert. Gute FTP-Clients machen das vollautomatisch und transportieren dabei nur die jeweils geänderten Dateien.
pure-ftpd unterstützt übrigens den Web-upload bei ungestörtem vollem Betrieb des Webservers.

Die Synchronisation ist einfach, wenn sie nur in eine Richtung laufen soll (master → slave), wie z.B. bei jedem Web-Upload. Sie kann jedoch durchaus schwierig und manchmal sogar unmöglich werden, wenn wechselseitige Synchronisation (in beide Richtungen) gewünscht wird. In diesem Fall ist professionelles Daten-Management erforderlich, das mit FTP oder anderen Mitteln ausgeführt wird.

Vorbereitung

LAN:

Ein FTP-Server ergibt nur in einem Netzwerk Sinn. Ihr LAN sollte daher vor Installation eines FTP-Servers bereits funktionieren.
Testen sie, ob ihr Server von jedem PC im LAN erreichbar ist:
# ping 192.168.0.1
Ersetzen sie die IP-Adresse durch Name oder Adresse ihres Servers.

(Linux)-Server:

Je nach Version hat ihr System schon bei der Installation einige der Vorarbeiten ausgeführt. Die Angaben sind nur Richtwerte, insbesondere die Datei-Pfade können sich unterscheiden.

user & group:
Das System sollte einen user ftp angelegt haben. Als home-Verzeichnis für diesen User ist normalerweise /srv/ftp/ eingetragen. Dieses Verzeichnis dient für als FTP-Startverzeichnis für anonyme user.
Wenn sie 'gewöhnliche' und Administrations-user unterscheiden wollen, dann verwenden sie dazu eine eigene Gruppe (im Beispiel unten mit der GID-Nr 1111). Wählen sie die Mitglieder dieser Gruppe nach Bedarf.

directory:
Ein Verzeichnis muss als FTP-Startverzeichnis definierert oder angelegt werden. Standard ist /srv/ftp/
Dieses Verzeichnis muss als home-Verzeichnis für den user ftp eingetragen sein.
Legen sie darin ein öffentliches Verzeichnis an (üblicher Name pub oder public ): /srv/ftp/pub/ und stellen sie die gewünschten Zugangsrechte ein.
Wenn sie Dateien für spezielle user-Gruppen anbieten, dann erzeugen sie dafür weitere Verzeichnisse. Legen sie die Zugriffsrechte fest. Ein Verzeichnis /srv/ftp/marketing/ könnte z.B. alles enthalten, was im Marketing benötigt wird, mit Lese-Rechten (nur) für die Marketing-Gruppe, ohne jeden Zugriff anderer User.

Installation aus der Linux-Distribution:

Am einfachsten ist die Installation direkt aus ihrer Linux-Distribution:
Diese Methode ist immer zu bevorzugen, denn der Distributor hat sich bereits darum gekümmert, alle Bestandteile passend einzurichten.
Kontrollieren sie, ob ihre Distribution pure-ftpd enthält, und ob das Paket installiert ist.
Ältere SuSE-Versionen enthalten pure-ftpd. Öffnen sie dazu YAST und suchen entweder nach dem Paket-Namen ('pure') oder nach Paketgruppen (Produktivität | Netzwerk | FTP | Server). Installieren sie das Paket.

RPM-Paket:

Falls ihre Linux-Distribution kein pure-ftpd enthält, laden sie es aus dem Internet, am besten als fertig konfiguriertes Installations-Paket *.rpm.
Alle Distributoren bieten solche Pakete zum Download an, sie sind bereits für das jeweilige System konfiguriert.
Packen sie das Archiv aus und installieren sie das Paket:
# rpm -i pure-ftpd-xxx.rpm
Link: pureftpd.org, SuSE

In seltenen Fällen erfolgt keine Installation und sie erhalten einen Hinweis auf eine fehlende (Bibliotheks)-Datei. Falls diese library in ihrer Distribution nicht zu finden ist, erhalten sie meist im Internet Hinweis auf das zu installierende Paket (z.B. libpq.so im Paket postgres ...).
Details zu RPM-Paketen im Kapitel Linux-Installation

Kompilieren:

Falls sie nicht zu einem installierbaren Paket gelangen, laden sie aus dem Internet den Quelltext (source) des Programms und erzeugen (compile) daraus selbst am eigenen PC das Programm. Folgen sie dazu den beigelegten Anweisungen und der Dokumentation beim Hersteller.
Details im Kapitel Linux-Installation.

Super-Server:

pure-ftpd wird ungefragt als 'standalone'-Service installiert. Das ist die sicherste und schnellste Einsatz-Methode.
Alternativ besteht auch die Möglichkeit, einen 'super-server' zu verwenden (z.B. inetd ). Die Dokumentation bietet dazu detaillierte Angaben.
Ein Super-Server verwaltet alle Anfragen an einen Server und leitet sie an den entsprechenden Dienst zur Bearbeitung weiter. Diese Art des Einsatzes ist IT-Profis vorbehalten.

Kontrolle nach Installation:

Sehen sie nach, ob und wo neue Dateien installiert wurden (Unterschiede je nach Distribution und Version !).

Für pure-ftpd werden auf SuSE u.a. die rechts gezeigten Dateien installiert. Sehen sie sich die Dokumentation an, auch die Scripts sind für IT-Profis meist aufschlussreich.

Nach Installation können sie den FTP-Server bereits probeweise starten. Für den laufenden Betrieb müssen sie jedoch meist noch Änderungen an der Konfiguration vornehmen.

# Ausführbare Programme (binaries):
/usr/sbin/pure-ftpd
# Ausführbare Perl-Scripts:
/usr/sbin/pure-config.args.pl
/usr/sbin/pure-config.pl
# Konfiguration und Verwaltung:
/etc/pure-ftpd/pure-ftpd.conf
# Dokumentation:
/usr/share/doc/packages/pure-ftpd/
/usr/share/man/man8/pure-ftpd.8.gz

Verwaltung

Script-Programme:

Scripts sind Text-Dateien, die ein Programm enthalten. Sie sind transparent (lesbar), und mit jedem Editor-Programm zu öffnen oder zu ändern. Linux verwendet für Verwaltungs-Aufgaben vorwiegend Scripts.

Jeder installierte Dienst muss verwaltet werden. Übliche Maßnahmen sind start, stop, restart und status. Darüber hinaus sollte ein Dienst bei Systemstart automatisch gestartet werden. Diese Aufgaben werden mit Scripts ausgeführt, die bei der Installation des Pakets konfiguriert und installiert wurden.

Zusätzlich zu den Scripts stehen je nach Distribution bequeme Programme mit grafischer Oberfläche zur Verfügung - auch in diesem Fall werden im Hintergrund die gleichen Scripts verwendet !
Normalerweise genügen die vorgesehenen Resourcen zur Verwaltung: Nach Installation und Konfiguration sollte der FTP-Server ja ohne weitere Aufsicht laufen.

Manueller Start:

Das Server-Programm kann direkt gestartet werden:
# /usr/local/sbin/pure-ftpd &
In der Praxis sollten sie den Server nicht manuell bedienen, sondern die dazu installierten Scripts verwenden oder eigene Scripts nach deren Muster erstellen.
Sonderwünsche:
Wenn sie experimentieren wollen, oder Sonderwünsche erfüllen müssen, dann ändern sie installierte Scripts nicht oder nur minimal. Stützen sie sich in eigenen Scripts so weit wie möglich auf die installierten Scripts und programmieren sie selbst nur die unbedingt notwendigen Teile.

Auto-Start:

Ein Dienst (service, daemon) sollte beim Systemstart automatisch gestartet werden.
Mit runlevel werden die verschiedenen Arten der Verwendung bezeichnet. Der FTP-Server sollte bei jeder Verwendung als Server bzw. im Netzwerk gestartet werden, das sind die runlevels 3 und 5. Für jeden runlevel sind eigene Verzeichnisse vorgesehen, die darin enthaltenen Scripts werden automatisch ausgeführt.
Jede gängige Linux-Distribution bietet ein Programm zur Verwaltung der Dienste, z.B. SuSE: YAST | System | Runlevel-Editor.
Richten sie den FTP-Dienst für Autostart ein. Damit werden in den betroffenen Verzeichnissen Scripts erzeugt, z.B.
/etc/init.d/rc5.d/K10pure-ftpd

Ändern sie nicht das runlevel-Script. Legen sie in einem anderen Verzeichnis einen symbolischen Link an, mit dem sie dieses Script benutzen können, z.B.:
ln -s /etc/init.d/rc5.d/K10pure-ftpd /root/ftpdtool
Nun können sie den FTP-Server in ihrem Verzeichnis verwalten:
# /root/ftpdtool
# /root/ftpdtool status
# /root/ftpdtool start
# /root/ftpdtool stop
# /root/ftpdtool restart

Kontrolle:

Der FTP-Server speichert seine PID (process id-number) nach Linux-Praxis in einer Text-Datei, z.B.
/var/run/pure-ftpd.pid
Sie können den aktuellen Prozess-Status anzeigen:
# ps -C pure-ftpd -F
# ps -p 1234 -F
Statt 1234 setzen sie ihre aktuelle PID ein.

Je nach Konfiguration schreibt der FTP-Server laufende Ereignisse in eine Log-Datei, z.B.
/var/log/pure-ftpd.log

Das Dienstprogramm pure-ftpwho gibt Auskunft über aktuelle BesucherInnen des FTP-Servers:
# pure-ftpwho

Für kreative EntwicklerInnen ist es relativ einfach, Webseiten-Programme zur Verwaltung von Diensten zu erstellen. Alle gängigen Server-Programmiersprachen (Perl, PHP, Python, ..) bieten diese Möglichkeit. Diese Art der Verwaltung ist ideal, da sie von jedem PC im LAN mit einem beliebigen Browser ausgeführt werden kann. Selbstverständlich muss dabei die Sicherheit gegen Fremd- und Fehlbedienung besonders beachtet werden.
Details im Kapitel Systembefehle mit Programmiersprachen.

Verbindung:

Auf einem beliebigen PC im LAN öffnen sie die Konsole (Linux-Shell oder Windows-'Eingabeaufforderung' cmd.exe). Geben sie den Befehl ftp ein, gefolgt vom Namen oder von der IP-Adresse des FTP-Servers, z.B.
# ftp 192.168.0.1
C:\> ftp 192.168.0.1

Der Server sollte sich melden und je nach Konfiguration nach ihrem Anmelde-Namen fragen.
Falls dieser Test fehlschlägt:
Prüfen sie (z.B. mit ping ) die Verbindung zum Server und stellen sie fest (s.o.), ob der FTP-Server überhaupt läuft.

Konfiguration

Ein wichtiger Punkt der Konfiguration wird - anders als bei anderen Diensten - an anderer Stelle festgelegt, in der User-Verwaltung des Betriebssystems: Das Startverzeichnis für anonyme FTP-User ist jenes Verzeichnis, welches im System als /home/-Verzeichnis des Users ftp festgelegt wurde, normalerweise /srv/ftp/.

Befehlszeilen-Optionen:

pure-ftpd ist extrem spartanisch (eben 'pur') ausgestattet und wird ausschließlich durch Optionen in der Befehlszeile gesteuert.
Das klingt kompliziert, bei >50 verschiedenen Optionen in unzähligen Varianten.
Tatsächlich werden die Server in der Praxis durch umfangreiche Befehlszeilen gesteuert: Das entspricht einer radikalen Optimierung für das Programm, ist jedoch für Menschen ziemlich undurchschaubar.

Daher werden zusammen mit pure-ftpd meist Script-Programme installiert, die eine Konfigurations-Datei (in 'menschlichem' Text) lesen und daraus die Befehlszeile für den Server erstellen.

Diese Methode ist sehr effizient, da sie die Konfiguration (einmalig, 'Menschen-orientiert') vom eigentlichen Server sauber trennt.
Die Konfigurations-Datei befindet sich normalerweise hier:
/etc/pure-ftpd/pure-ftpd.conf
Das ist eine kommentierte Text-Datei.
Erstellen sie eine Sicherungskopie (!) und sehen sie sich die Datei mit einem Editor an.
Kommentare sind integriert, solche Zeilen beginnen mit einem #- Zeichen. Für ernsthafte Verwendung benötigen sie zusätzlich unbedingt die Original-Dokumentation des Herstellers !
Testen sie die Konfiguration (zunächst noch ohne Änderung) mit diesem Befehl:
# /usr/sbin/pure-config.pl etc/pure-ftpd/pure-ftpd.conf
Das Script-Programm pure-config.pl erstellt die Befehlszeile, zeigt sie zur Kontrolle an und leitet sie an den Server weiter.

Dabei werden z.B. solche Befehlszeilen erzeugt:
# /usr/sbin/pure-ftpd -B -z -D -fftp -H -lpam -M -U177:077
Wenn sie Befehlszeilen wie diese sehen, ist der Befehl bereits erteilt, sie müssen den Befehl nicht nochmals eintippen.
Der Server selbst wird besser mit dem rechts gezeigten restart-Befehl gestartet, das Script zeigt jedoch die Befehlszeile an, eine anfangs wichtige Kontrolle.
Die Konfiguration wird normalerweise erst nach Neustart wirksam. Wenn sie ein Verwaltungs-Werkzeug erzeugt haben, wie oben vorgestellt, dann befehlen sie den Neustart so:
# /root/ftpdtool restart

Nun können sie den FTP-Server testen. Dazu öffnen sie eine Konsole (Shell, cmd.exe) auf einem beliebigen PC (Linux, Windows, MacOS, ..) im LAN:
# ftp 192.168.0.1
Ändern sie die Adresse auf Name oder Adresse ihres Servers.
Der FTP-Server sollte sich melden und ihre Anmeldung vorschlagen. Sie können das ausprobieren, oder gleich beenden:
>ftp help
>ftp quit
Nach diesem Muster beginnen sie nun die Konfiguration ihres FTP-Servers:
Konfigurations-Datei ändern (Optionen s.u.)
Konfigurations-Script starten (Befehlszeile)
Server restart
Test von einem (Client)-PC im LAN
Diesen Zyklus wiederholen sie solange, bis sie die gewünschte Einstellung gefunden haben.
Danach ist eine kurze Dokumentation ratsam: Je besser ihr Server funktioniert, umso länger wird es dauern, bis sich erneut jemand mit der Konfiguration beschäftigt !

Optionen

pure-ftpd bietet >50 Optionen zur genauen Abstimmung des FTP-Servers an die Bedürfnisse. Für professionellen Einsatz sollten sie sich ausführlich mit allen Details auseinandersetzen. Die Original-Doku ist recht gut, darüber hinaus finden sie zahlreiche Hinweise im Internet. Die meisten Tipps sind allerdings nur dann verständlich, wenn man sich schon intensiver mit dem Thema 'FTP-Server' auseinandergesetzt hat. Auf dieser Seite wird nur eine kleine Auswahl der Optionen vorgestellt. darüber hinaus gibt es zahlreiche weitere Möglichkeiten, vorwiegend für professionelle FTP-Server.
Faustregel: Schränken sie alles ein, was für ihre User nicht wirklich notwendig ist.
Syntax:
Die vorgestellten Optionen von pure-ftpd werden in 2 verschiedenen Syntax-Varianten vorgestellt, die alternativ verwendet werden können.
Die Kurz-Variante besteht aus - und einem einzelnen Zeichen.

Die Lang-Variante (verbose) besteht aus -- und einem nachfolgenden Wort
Ausdrücke in Klammern <> müssen durch die entsprechenden Daten ersetzt werden.

FTP und User:

Ohne Option sind sowohl anonyme als auch angemeldete User zugelassen.
Option -e erzwingt ausschließlich anonyme User.
Option -E verbietet anonyme User.
Option -u lässt nur User mit einer minimalen UID-Nr zu. Damit lassen sich privilegierte User wie root (0), bin(1) oder daemons (<100) aus Sicherheitsgründen ausschließen (empfehlenswert).

-e --anonymousonly
-E --noanonymous
-u --minuid <uid-nr>

Filesystem und user:

Option -i verbietet anonymen Usern den Upload (Schreiben) von Dateien (empfehlenswert).
Option -M erlaubt anonymen Usern, neue Verzeichnisse anzulegen (abzuraten).
Option -A beschränkt alle angemeldeten FTP-User (außer root) auf ihr /home/-Verzeichnis.
Option -a wirkt wie -A, jedoch mit Ausnahme der Mitglieder einer 'trusted' Administrations-Gruppe, deren GID-Nr angegeben wird (empfehlenswert).

-i --anonymouscantupload
-M --anonymouscancreatedirs

-A --chrooteveryone
-a --trustedgid <gid-nr>

Zugriffsrechte:

Option -U legt die Zugriffsrechte für neu erstellte Dateien und Verzeichnisse fest. Die Rechte werden als 3stellige Octalzahlen angegeben, z.B. -U177:077
Option -Z verhindert, dass User ihren eigenen Zugriff unterbinden (unbedingt empfehlenswert)
Option -R verhindert, dass User überhaupt Zugriffsrechte verändern.

-U --umask <filemask:dirmask>
-Z --customerproof
-R --nochmod

Löschen, Überschreiben und Umbenennen:

Anonyme User sollten auf LAN-Servern überhaupt keine Schreibrechte haben. In diesem Falle gelten alle rechts gezeigten Optionen nur für angemeldete User, und sind daher nur dann sinnvoll, wenn diese ihr eigenes /home/-Verzeichnis verlassen dürfen (s.o.).
Option -G verbietet das Umbenennen von Dateien und Verzeichnissen.
Option -K verbietet das Löschen oder Umbenennen vorhandener Dateien, jedoch nicht das Überschreiben durch neue Dateien mit gleichen Namen.
Option -r verhindert das Überschreiben von Dateien. Neue Dateien mit gleichen Namen werden zum Upload angenommen, deren Namen werden jedoch mit fortlaufenden Versionsnummern versehen.
Option -0 regelt das Überschreiben von Dateien 'in Verwendung', z.B. durch laufende Webserver. Neue Datei-Versionen werden zum Upload akzeptiert, jedoch erst dann verwendet, wenn sie vollständig geladen sind (empfehlenswert).

-G --norename
-K --keepallfiles
-r --autorename

-0 --notruncate

Dotfiles:

Auf Linux sind die Namen von System-Dateien durch vorangestellte Punkte bezeichnet. Normalerweise ist es sinnvoll, diese Dateien komplett aus dem FTP-Zugriff auszunehmen. Ohne Option haben anonyme User keine Schreib-Rechte auf dotfiles, angemeldete User jedoch vollen Zugriff.
Option -X verhindert jeden Zugriff auf dotfiles.
Option -D zeigt dotfiles immer an.
Option -x verbietet alle Schreib-Rechte für dotfiles.
Option -z erlaubt anonymen Usern das Lesen von dotfiles (unbedingt abzuraten)

-X --prohibitdotfilesread
-D --displaydotfiles
-x --prohibitdotfileswrite
-z --allowdotfiles

Resourcen und User:

Option -c beschränkt die maximale Gesamtzahl gleichzeitiger User. Ohne Angabe gilt -c50 (empfehlenswert).
Option -C beschränkt die maximale Anzahl von Verbindungen zu einem einzelnen User, identifiziert durch seine IP-Adresse (unbedingt empfehlenswert). Mit -C2 darf ein User daher nur 2 Verbindungen zum FTP-Server aufnehmen, unabhängig von der Anzahl aller anderen User.
Option -y beschränkt die Anzahl gleichzeitig namentlich 'angemeldeter' und anonymer User. Mit -y3:100 darf sich ein User nur max. 3mal mit dem gleichen Namen anmelden, während gleichzeitig max. 100 anonyme User zulässig sind.

-c --maxclientsnumber <number>
-C --maxclientsperip <number>
-y --peruserlimits <per user max>:<max anonymous sessions>

Resourcen und Hardware:

Option -k verhindert Uploads, wenn der Speicherplatz knapp wird. -k95% unterbindet Uploads, wenn nur mehr 5% freier Platz ist (unbedingt empfehlenswert)
Option -m verhindert Downloads durch anonyme User, wenn der Prozessor ausgelastet (busy) ist (empfehlenswert)
Option -t beschränkt die Bandbreite für anonyme User. Die Angabe erfolgt in kB/s. -t10:5 erlaubt anonyme Uploads bis zu 10kB/s und anonyme Downloads bis zu 5kB/s.
Option -T wirkt genauso wie -t, jedoch für alle User.

-k --maxdiskusagepct <diskfull%>
-m --maxload <load>
-t --anonymousbandwidth <up:down>
-T --userbandwidth <up:down>

Sonstige Optionen:

Option -L begrenzt unnötig lange directory-Listen. -L500:5 zeigt pro Liste max. 500 Dateien bis zu einer Tiefe von 5 Sub-Verzeichnissen an (empfehlenswert).
Option -s verhindert anonymen Download von nicht-authorisierten Dateien. Anonyme Upload-Dateien (wenn überhaupt zugelassen) gehören zunächst dem user ftp und sind mit dieser Option für den Download gesperrt. Erst wenn (durch AdministratorIn) der Besitzer (owner) geändert wird, ist anonymer Download erlaubt.
Option -Y regelt die Verwendung von SSL zur 'sicheren' Verbindung. -Y0 verbietet SSL, -Y2 erzwingt SSL.

-L --limitrecursion <number:number>

-s --antiwarez

-Y --tls <[0,1,2]>

Muster

Hier werden zwei einfache Muster-Konfigurationen vorgestellt. Alle Hinweise sind unverbindlich, die Verwendung erfolgt auf eigenes Risiko.
Anonyme User ('Gäste') sind bei FTP möglich und üblich: Das kann durch Optionen ermöglicht, erzwungen oder verboten werden. In den hier gezeigten Beispielen sind anonyme user möglich - Bei der Anmeldung wird kein Name (<return>-Taste) eingegeben.
Bekannte User sind solche, die über ein eigenes Konto (account) am Linux-Server verfügen, und damit auch über ein eigenes /home/ -Verzeichnis. In den gezeigten Beispielen sind bekannte user möglich: Sie identifizieren sich mit ihrem Linux-Namen und -Passwort - von jedem beliebigen PC im LAN.
Die Muster-Texte der rechten Seite zeigen den Inhalt der Konfigurations-Datei an:
/etc/pure-ftpd/pure-ftpd.conf

Minimal-Start:

Anonyme User verfügen über Lese- und Schreib-Rechte, dürfen jedoch nichts löschen. Das Start-Verzeichnis für anonyme User ist /srv/ftp/.

Bekannte User melden sich mit ihrem Linux-Namen und -Passwort an und kommen in ihr /home/-Verzeichnis, z.B.
/home/ich/.
Dort verfügen sie über alle Rechte.

Diese Konfiguration eignet sich nur zum Test und Experimentieren, da sie höchst unsicher ist. Unfreundliche User können auf ihrem Server fast beliebig walten !

Mit den rechts gezeigten Optionen wird dieser Befehl erzeugt:
# /usr/sbin/pure-ftpd -B -z -D -fftp -H -lpam -M -U177:077

# Option -B --daemonize
Daemonize yes
# Option -z --allowdotfiles
AllowDotFiles yes
# Option -D --displaydotfiles
DisplayDotFiles yes
# Option -f --syslogfacility
SyslogFacility ftp
# Option -H --dontresolve
DontResolve yes
# Option -lpam --login
PAMAuthentication yes
# Option -M --anonymouscancreatedirs
AnonymousCanCreateDirs yes
# Option -U --umask
Umask 177:077

Kleines LAN:

Anonyme User verfügen ausschließlich über Lese-Rechte. Das Start-Verzeichnis für anonyme User ist /srv/ftp/, sie können dieses Verzeichnis nicht verlassen.

Bekannte User melden sich mit ihrem Linux-Namen und -Passwort an und kommen in ihr /home/-Verzeichnis, z.B. /home/ich/. Dort verfügen sie über alle Rechte.
Um Zugang zum öffentlichen FTP-Verzeichnis zu erhalten, melden sich solche User einfach ohne Name (<return>-Taste) an.

User, welche der Administrations-Gruppe mit GID-Nr 1111 angehören, können sich im gesamten Dateisystem frei bewegen. In ihr /home/-Verzeichnis lässt sich auch ein symbolischer Link ('direkter Zugang') zum FTP-Verzeichnis legen:
# ln -s /srv/ftp/ /home/xxx/ftp

Der SuperUser root darf sich aus Sicherheitsgründen nicht am FTP-Server anmelden.

Diese Konfiguration eignet sich für den internen Gebrauch in kleinen LANs und als 'Denk-Muster' für eigene Konfigurationen.
Der FTP-Server ist bereits etwas abgesichert, das reicht jedoch keinesfalls für den Einsatz im Internet. Sie sollten unbedingt über einen Firewall verfügen, der unerwünschte BesucherInnen von ihrem LAN und natürlich insbesondere vom Server abhält.

Diese Konfiguration führt eine Log-Datei:
/var/log/pureftpd.log
Die Log-Datei kann mit Standard-Programmen ausgewertet werden. Auch andere Log-Formate sind möglich.

Mit den rechts gezeigten Optionen wird dieser Befehl erzeugt:
# /usr/sbin/pure-ftpd -b -c10 -B -C3 -z -D -fftp -H -I10 -lpam -L1000:5 -m4 -p30000:50000 -t6 -U177:077 -u100 -x -X -i -Ow3c:/var/log/pureftpd.log -k95 -Z -0

# Option -0
NoTruncate yes
# Option -a --trustedgid <gid>
TrustedGID 1111
# Option -b --brokenclientscompatibility
BrokenClientsCompatibility yes
# Option -B --daemonize
Daemonize yes
# Option -c --maxclientsnumber <number>
MaxClientsNumber 10
# Option -C --maxclientsperip <number>
MaxClientsPerIP 3
# Option -D --displaydotfiles
DisplayDotFiles yes
# Option -f --syslogfacility <facility>
SyslogFacility ftp
# Option -H --dontresolve
DontResolve yes
# Option -i --anonymouscantupload
AnonymousCantUpload yes
# Option -I --maxidletime <time (min)>
MaxIdleTime 10
# Option -lpam --login <auth> or <auth>:<config file>
PAMAuthentication yes
# option -k --maxdiskusagepct <percentage>
MaxDiskUsage 95
# Option -L --limitrecursion <number:number>
LimitRecursion 1000 5
# Option -m --maxload <load>
MaxLoad 4
# Option -Ow3c -O --altlog <format>:<log file>
AltLog w3c:/var/log/pureftpd.log
# Option -p --passiveportrange <minport:maxport>
PassivePortRange 30000 50000
# Option -t --anonymousbandwidth <bandwidth (KB/s)>
AnonymousBandwidth 6
# Option -u --minuid <uid>
MinUID 100
# Option -U --umask <mask>
Umask 177:077
# option -x --prohibitdotfileswrite
ProhibitDotFilesWrite yes
# Option -X --prohibitdotfilesread
ProhibitDotFilesRead yes
# Option -z --allowdotfiles
AllowDotFiles yes
# option -Z --customerproof
CustomerProof yes


XHTML CSS