Pure-FTP - pureftpd

LPI und MCSA Prüfung
Verfügbare Informationen zu "Pure-FTP - pureftpd"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Drudenfuss
  • Forum: LPI und MCSA Prüfung
  • Forenbeschreibung: Kursteilnehmer für LPI Linux und MSCA/MSCE Prüfung
  • aus dem Unterforum: FTP-Server
  • Antworten: 1
  • Forum gestartet am: Montag 13.11.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Pure-FTP - pureftpd
  • Letzte Antwort: vor 17 Jahren, 4 Monaten, 3 Tagen, 23 Stunden, 13 Minuten
  • Alle Beiträge und Antworten zu "Pure-FTP - pureftpd"

    Re: Pure-FTP - pureftpd

    Drudenfuss - 27.12.2006, 18:40

    Pure-FTP - pureftpd
    ..:: 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.

    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 http://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-language=german

    Alles drin, alles dran was man für den »Beispielserver« (siehe hier) benötigt.



    ..:: 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.




    ..:: Die Schalter ::..

    Konfiguriert wird der pure-ftpd über Schalter beim Aufruf. Wenn man sich die manpage vom pure-ftpd (man pure-ftpd) anschaut, erhält man eine Fülle von Schaltern samt (englischsprachiger) Beschreibung.

    Da ich im Web keine deutschsprachige Seite mit diesen Informationen finden konnte, habe ich einfach die Beschreibungen Schalter für Schalter übersetzt.

    Korrekturen und/oder Verbesserungsvorschläge mir bitte einfach per E-Mail melden.

    Bevor sich jetzt jemand gleich von der Fülle der Informationen erschlagen fühlt: Es müssen nicht alle Schalter auf einmal verwendet werden. Zunächst sollte man sich meine Konfiguration anschauen, welche ich detailiert beschrieben habe. Wer diese dann anpassen bzw. erweitern will, oder die Funktion der Schalter schnell nachschlagen will – dafür ist diese deutsche Übersetzung der Erklärungen zu den Schaltern zu verstehen.

    -1 Fügt die PID der syslog Ausgabe hinzu. Wird ignoriert, wenn -f none gesetzt wurde.

    -4 Nur auf IPv4 Verbindungen reagieren. PFLICHT FÜR IPV NETZWERKE BEI OPENBSD.

    -A Chroot() für alle User – außer für root.

    -a gid Normale User werden via chroot an ihre Home-Directorys gebunden, außer wenn sie zu der angegebenen gid gehören. Zu beachten ist, dass root immer vertraut wird und chroot() ausschließlich für anonymen FTP ohne diese Option gilt.

    -b Aktiviert einige Kompatibilitätsoptionen für »schmutzige« Clients und für nicht korrekt funktionierende Netzfilter-Gateways.

    -B Startet den standalone Server im Hintergrund (daemonize).

    -c clients Gibt die maximale Anzahl der Clients an, die gleichzeitig verbunden sein können. Der Wert muß mindestens »1« betragen und wenn der Schalter -p ebenfalls verwendet wird, wird die Anzahl auf die Hälfte der mit -p angegebenen Ports begrenzt. Wenn mehr Clients verbunden sind, werden neue Clients sofort abgewiesen. Auch Clients, welche Daten hochladen, oder sich als normale User einloggen wollen. Daher wird empfohlen, -m als primärer Schutz vor Überlastung zu verwenden. Der Standardwert ist 50.

    -C max Verbindungen pro IP Begrenzt die Anzahl der Verbindungen, die von der gleichen IP-Adresse kommen. Dies ist noch ein weiterer Weg, sich vor unerwünschten »denial of service«-Attacken und vor einer Verringerung der Bandbreite durch einen einzelnen User zu schützen. Der Schalter funktioniert nur dann, wenn der Server im standalone-Modus gestartet wird (wenn man einen Superserver verwendet, sollte es sich so verhalten). Wenn der Server mit -C 2 gestartet wird, bedeutet dies nicht, dass die Gesamtzahl der zulässigen Verbindungen auf zwei begrenzt wird. Aber der gleiche Client, welcher vom gleichen Rechner (oder zumindest der gleichen IP) zugreifen will, kann nicht mehr als zwei simultane Verbindungen haben. Diese Option benötigt etwas Speicher um die IP-Adressen zu verwalten, aber es wird empfohlen, sie zu verwenden.

    -d Aktiviert das debug logging. Jedes Kommando wird mitgeloggt, außer dem Ändern des Passwortes mit PASS. Wird -d zweimal angegeben, werden die Anworten ebenfalls mitgeloggt.

    -e Erlaubt es Benutzern, sich ausschließlich anonym einzuloggen.

    -E Erlaubt es Benutzern, sich ausschließlich authentifiziert einzuloggen. Die anonyme Anmeldung ist untersagt.

    -F fortunes file Bindet bei der Loginmeldung des FTP-Servers lustige Zufallszitate (random quotes) ein. Diese »Glückskeks-Zitate« werden von einer Textdatei extrahiert, welche dem »standard fortune«-Format entsprechen muß. Wurde auf dem System das fortune-Paket installiert, sollte ein Verzeichnis exisitieren (normalerweise /usr/share/fortune), in dem sich Binärdateien (xxxx.dat) und Textdateien (ohne die .dat-Erweiterung) befinden.

    -f facility Läßt pure-ftpd facility für alle syslog(3)-Messages verwenden. Der Standardwert für die facility lautet auf »ftp«. Die Namen der facilities sind für gewöhnlich in der Datei /usr/include/sys/syslog.h aufgeführt.
    Bitte beachten, dass wenn -f nicht die erste Option beim Aufruf des pure-ftpd ist, einige Meldungen zunächst nach local geloggt werden, bevor die Option -f abgearbeitet wird. Mit -f none wird das Logging deaktiviert.

    -g pidfile Im standalone Modus kann die pid in die mit pidfile angegebene Datei umgeleitet werden. Sie wird dann nicht mehr nach /var/run/pure-ftpd.pid geschrieben.

    -H Hostnamen nicht auflösen (»213.41.14.252« wird mitgeloggt anstatt »www.toolinux.com«). Dadurch können Verbindungen beschleunigt, und die Bandbreitennutzung auf stark genutzten Servern reduziert werden. Sehr für öffentliche FTP-Server zu empfehlen.

    -k percentage Verbietet den Upload, wenn die Partition zu mehr als dem angegebenen Prozentwert belegt ist. Beispiel: -k 95 wird sicherstellen, dass die Partition niemals zu mehr als 95% von FTP-Usern belegt werden kann.

    -K Erlaubt Benutzern, Datentransfers wiederaufzunehmen und Dateien hochzuladen, aber NICHT, sie zu löschen. Verzeichnisse können entfernt werden, aber nur wenn sie leer sind.

    -I timeout Legt die maximale idle-Zeit fest. Die Angabe ist in Minuten, der Standardwert lautet 15.

    -i Verbietet anonymen Benutzern den Upload unabhängig von den gesetzten Rechten des Verzeichnisses. Diese Option ist besonders dann nützlich, wenn man virtual hosting verwendet, um Benutzer vom anlegen von Warez-Archiven in ihrem Account abzuhalten.

    -j Wenn das Home-Verzeichnis eines Benutzers nicht existiert, wird es automatisch angelegt. Neu angelegte Verzeichnisse gehören dem Benutzer und die Rechte werden anhand der verwendeten umask vergeben. Um lokalen Angriffen vorzubeugen, sollte das übergeordnete Verzeichnis niemals einem »nicht-glaubwürdigen« Benutzer gehören.

    -L max files:max depth Man kann »denial of service«-Angriffen dadurch vorbeugen, indem man die Anzahl der angezeigten Dateien bei einem Aufruf von ls und die maximale Tiefe eines rekursiven ls-Aufrufs begrenzt. Standardwerte sind 2000:5 (2000 Dateien werden für einen Aufruf von ls angezeigt und maximal fünf Unterverzeichnisse werden abgearbeitet).

    -l authentification:file Aktiviert eine neue Methode zur Authentifizierung. Es kann sich dabei um eine der folgenden Methoden handeln:
    -l unix Für die normale (/etc/passwd) Authentifzierung.
    -l pam Für PAM Authentifizierung.
    -l ldap:LDAP config file Für LDAP Verzeichnisse.
    -l mysql:MySQL config file Für MySQL Datenbanken.
    -l pgsql:Postgres config file Für Postgres Datenbanken.
    -l puredb:PureDB database file Für PureDB Datenbanken.
    -l extauth:path to pure-authd socket Für externe Authentifizierungsmethoden.
    Unterschiedliche Authentifizierungsmethoden können gemischt werden. So wird zum Beispiel der Server mit dem Aufruf -l puredb:/etc/pwd.pdb -l mysql:/ etc/my.cf -l unix zunächst die Authentifizierung mit einer PureDB-Datenbank versuchen. Schlägt dies fehl, so wird ein MySQL-Server befragt. Wurde das Konto noch immer nicht gefunden, werden die Standard-Unixkonten gescannt. Die Authentifizierungsmethoden werden in der Reihenfolge abgearbeitet, wie sie mit den -l-Optionen angegeben worden sind.
    Um Informationen über den built-in Support von LDAP und SQL Verzeichnissen zu erhalten, sollte man die Dateien README.LDAP und README.MySQL lesen.

    -M Erlaubt anonymen Benutzern, Verzeichnisse anzulegen.

    -m load Verbietet anonymen Benutzern den Zugriff, wenn die Last über dem per load definierten Wert liegt wenn sich der Benutzer verbindet. Uploads und das Anzeigen von Verzeichnisinhalten ist weiterhin erlaubt, sowie Downloads von realen Benutzern. Der Benutzer wird nicht über die Beschränkung informiert bis er versucht, eine Datei herunterzuladen.

    -N NAT Modus. Erzwingt den active mode. Wenn sich der FTP-Server hinter einem NAT-Rechner befindet, welcher nicht das sogenannte »applicative FTP proxying« unterstützt, oder wenn »port redirection« ohne einen transparenten FTP-Proxy verwendet wird, ist diese Einstellung zu wählen.
    Nunja, der Satz ist nicht wirklich leicht verständlich. Daher ein Beispiel: Wenn das Netzwerk folgendermaßen aussieht

    FTP––NAT.gateway/router––Internet

    und Zugriffe aus dem Internet auf den FTP-Server möglich sein sollen, bitte zunächst ohne diese Option wählen. Wenn Netscape-Benutzer ohne Probleme eine Verbindung herstellen können, funktioniert der NAT-Gateway. Sollten Netscape-Benutzer keine Verbindung herstellen können, also keine Verzeichnisinhalte angezeigt bekommen, funktioniert der NAT-Gateway nicht richtig. In diesem Fall sollte man -N als Workaround verwenden.

    -n maxfiles:maxsize Aktiviert virtuelle Quotas. Wenn virtuelle Quotas verwendet werden, werden .ftpquota Dateien angelegt und die Anzahl der Dateien für einen Benutzer wird durch »maxfiles« begrenzt. Die maximale Größe seines Verzeichnisses wird ebenfalls duch »maxsize« begrenzt. Mitglieder einer Gruppe, der vertraut wird, sind von diesen Quotas nicht betroffen.

    -o Aktiviert pure-uploadscript.

    -O format:log file Loggt alle Dateitransfers in der spezifizierte Logdatei in einem alternativen Format mit. Im Augenblick werden drei Formate unterstützt: CLF, Stats und W3C.
    Wird
    -O clf:/var/log/pureftpd.log
    bei den Startoptionen angegeben, loggt der pure-ftpd die Transfers in der Datei /var/log/pureftpd.log in einem Format, welches dem des Apache Webservers in der Standardkonfiguration entspricht.
    Wird
    -O stats:/var/log/pureftpd.log
    bei den Startoptionen angegeben, legt der pure-ftpd akkurate Logdateien an, welche für Traffic-Analyse-Software wie ftpStats ausgelegt ist.
    Wird
    -O w3c:/var/log/pureftpd.log
    bei den Startoptionen angegeben, erzeugt der pure-ftpd W3C-konforme Logdateien an. Aus Sicherheitsgründen muß der Pfad absolut angegeben werden (z.B. /var/log/pureftpd.log und nicht ../log/pureftpd.log).

    -P ip address Zwingt die angegebene IP-Adresse auf ein PASV/EPSV/SPSV-Kommando zu antworten. Wenn sich der Server hinter einem maskierenden (NAT) Rechner befindet, welcher kein sauberes FTP-Masquerading unterstützt, sollte die IP-Adresse dieses NAT-Rechners hier angegeben werden.

    -p first:last Verwendet ausschließlich die Ports des angegebenen Bereichs R inklusive der angegebenen Nummern für Downloads im passive mode. Dies bedeutet, dass Clients nicht versuchen werden, TCP-Ports ausserhalb des angegebenen Bereiches zu verwenden. Dies macht den pure-ftpd kompatibler zu Paketfiltern. Es ist zu beachten, dass die maximale Anzahl der Clients (welche mit -c festgelegt worden sind) auf R ( last +1- first )/2 beschränkt wird wenn die Anzahl der Clients größer als der Standard ist (die Syntax für den Port Bereich ist – praktischerweise – identisch mit der Syntax von iptables).

    -q upload:download Aktiviert einen Upload/Download-Ratio für anonymen Benutzer. Ein Beispiel: -q 1:5 bedeutet, dass 1 MB an Dateien hochgeladen werden muß, um 5 MB herunterladen zu dürfen.

    -Q upload:download Aktiviert Ratios für anonyme und nicht-anonyme Benutzer. Wenn gleichzeitig die Option -a verwendet wird, haben Benutzer aus der vertrauenswürdigen Gruppe keine Ratio-Beschränkung.

    -r Verhindert, dass exisiterende Dateien überschrieben werden. Wird eine Datei hochgeladen deren Name bereits existiert, wird sie automatisch umbenannt. Die Dateien werden dann in xyz.1, xyz.2, xyz.3, etc. umbenannt.

    -R Verbietet Benutzern (auch nicht-anonymen Benutzern) die Verwendung des CHMOD-Kommandos. Dies kann Neulinge vor Fehlern schützen, beispielsweise das Setzen falscher Zugriffsrechte auf ihr Home-Verzeichnis. Ausschließlich der Benutzer root kann das CHMOD-Kommando verwenden, wenn diese Option aktiviert ist.

    -s Verbietet anonymen Benutzern Dateien herunterzuladen, welche dem Benutzer »ftp« gehören (üblicherweise betrifft dies Dateien, welche von anderen anonymen Benutzern hochgeladen worden sind).

    -S [{ip address|hostname}] [,{port|service name}] Diese Option wird nur dann umgesetzt, wenn der Server im standalone-Modus gestartet wird. Es werden von der/den angegebenen IP und dem angegebenen Port akzeptiert. Numerische und fully-qualified Hostnamen werden akzeptiert. Der Name eines Services (vgl. /etc/services) kann anstatt einer Portnummer verwendet werden.

    -t bandwidth oder -t upload bandwidth:download bandwidth Aktiviert die Möglichkeit, die Bandbreite für anoymous Benutzer zu drosseln. Die Verzögerung wird in Kilobyte pro Sekunde angegeben.

    -T bandwidth oder -T upload bandwidth:download bandwidth Aktiviert die Möglichkeit, die Bandbreite für ALLE Benutzer zu drosseln. Der pure-ftpd muß explizit mit dem Support zum Drosseln von Bandbreiten kompiliert worden sein, damit diese Optionen umgesetzt werden.
    Es ist möglich, dass unterschiedliche Bandbreitenlimits für Uploads und Downloads festgelegt werden.
    Die Optionen -t und -T können außerdem um zwei durch einen Doppelpunkt (»:«) abgetrennten Zahlen erweitert werden. Die erste Nummer stellt die Upload-Bandbreite dar, die zweite Nummer betrifft nur die Downloads. Eine von beiden braucht nicht angegeben werden, wobei dies dann »unendlich« bedeutet – die maximale verfügbare Bandbreite eben. Eine einzelne Zahl ohne einen Doppelpunkt bedeutet, dass das angegebene Limit sowohl für den Upload als auch für den Download gelten soll.

    -U umask files:umask dirs Ändert die Mask beim Erstellen von neuen Dateien und Verzeichnissen. Der Standartwert ist 133 (für andere User sind die Dateien lesbar, dürfen aber nicht überschrieben werden) und 022 (das Gleiche für Verzeichnisse, mit gesetzem »ausführen«-Bit). Wenn neue Dateien ausschließlich für den Benutzer lesbar sein sollen, muß 177:077 verwendet werden. Sollen hochgeladene Dateien ausführbar sein, muß 022:022 verwendet werden (die Dateien werden für andere Benutzer lesbar sein) oder 077:077 (die Dateien dürfen nur vom Besitzer gelesen werden).

    -u uid Verbietet Benutzern mit einer uid niedriger als der angegebenen sich einzuloggen (für gewöhnlich sind niedrige uids administrativen Benutzern zugeordnet. -u 100 ist erforderlich, um den Zugriff aller administrativen Benutzer auf vielen Linux Rechnern zu unterbinden, da dort 99 der letzte administrative Benutzer ist. Anonymous FTP wird auch dann zugelassen, wenn die uid des Benutzers ftp kleiner als die angegebene uid ist.
    -u 1 unterbindet den Zugriff lediglich für das »root« Benutzerkonto. Der Standardwert ist, allen Benutzern Zugriff zu gewähren.
    Vorsicht: Nicht bei allen Linux-Distributionen sind die administrativen Konten mit uids unter 100 angelegt.

    -V ip address Erlaubt nicht-anonymen Zugriff ausschließlich auf den spezifizierten lokalen IP-Adressen. Alle anderen IP-Adressen erhalten ausschließlich anonymen Zugriff. Mit dieser Option kann man geroutetete IPs für den öffentlichen Zugang und eine lokale IP (z.B. 10.x.x.x) für administrative Zwecke verwenden. Man kann ebenfalls eine routbare, vertrauenswürdige IP (beispielsweise durch eine Firewall geschützt) verwenden und nur über diese IP kann sich ein nicht-anonymer Benutzer einloggen.

    -w Aktiviert die Unterstützung des FXP Protokolls. Ausschließlich für nicht-anonyme Benutzer.

    -W Aktiviert das FXP Protokoll für alle Benutzer. Vorsicht:FXP ist ein unsicheres Protokoll. Es sollte NIEMALS auf nicht vertrauenswürdigen Netzwerken eingesetzt werden.

    -x Im normalen Modus können authentifizierte Benutzer Dateien, welche mit einem Punkt (».«) beginnen, lesen und schreiben. Anonymous Benutzer dürfen dies aus Sicherheitsgründen nicht (wie etwa Flags bei vergessenen .rhosts zu verändern). Wenn -x verwendet wird, können authentifizierte Benutzer die Punkt-Irgendwas-Dateien herunterladen, aber nicht überschreiben oder anlegen – selbst wenn sie die entsprechenden Rechte haben. So wird verhindert, dass Benutzer mit diesen Dateien Schaden anrichten.

    -X Diese Option ist mit der vorangeganenen identisch (das Schreiben von »Punkt-Irgendwas-Dateien« ist verboten), zusätzlich dürfen Benutzer nicht mal Dateien und Verzeichnisse lesen, wenn deren Name mit einem Punkt (».«) beginnt.

    -z Erlaubt anonymen Benutzern Dateien und Verzeichnisse zu lesen, welche mit einem Punkt (».«) beginnen.

    -Z Aktiviert Sicherheitswächter um oft vorkommende Benutzerfehler auszuschließen (wie etwa chmod 0 auf die eigenen Daten anzuwenden).




    ..:: Virtuelle User ::..

    pure-ftpd unterstützt virtual users. Wem das kein Begriff sein sollte, hier in einem Satz: Virtuelle User sind User, die nur dem Programm bekannt sind und nicht real auf dem System existieren.

    Dies ist aus sicherheitstechnischen Gründen – und wegen der Verwaltung – sehr praktisch.

    Da die virtuellen User kein »richtiges« Benutzerkonto auf dem Rechner haben, können sie sich auch nicht via Telnet oder SSH am Rechner anmelden. Somit schließt man eine nicht notwendige Sicherheitslücke und vereinfacht das Usermanagement auf einen Schlag – auch wenn es zunächst anders aussehen mag.

    Zunächst muß ein »echter« Benutzer angelegt werden. In der Datei README.Virtual-Users ist bereits eine Anleitung enthalten, ich habe sie etwas abgewandelt. Daher entspricht meine Variante nicht dem Vorschlag aus der eben erwähnten Datei.

    Der neue Benutzer wird mit

    useradd -u 7777 -g 65534 -d /dev/null -s /etc ftpuser

    angelegt. Die uid »7777« ist bei mir im System noch nicht belegt gewesen, daher habe ich sie für den neuen Benutzer ftpuser gewählt. Die verwendete gid »65534« entspricht nogroup.

    Da diese Gruppe bereits existiert, konnte ich das in der Readme-Datei angegebene Anlegen einer neuen Gruppe umgehen.

    Anschließend können die virtuellen Benutzerkonten mit dem Befehl pure-pw verwaltet werden. Eine Auswahl der zur Verfügung stehenden Optionen:

    pure-pw useradd
    userdel
    usermod
    passwd
    show
    mkdb

    Nun kann ein virtueller Benutzer hinzugefügt werden:

    pure-pw useradd joe -u ftpuser -g nogroup -d /home/ftp/joe

    Mit diesem Aufruf wird ein virtueller Benutzer »joe« angelegt, welcher die Systemuser-ID »ftpuser« verwendet und der Systemgruppe »nogroup« angehört. Nach der Eingabe des Befehls wird nach einem Passwort für den Benutzer gefragt.

    Sein Home-Verzeichnis /home/ftp/joe wird noch nicht erstellt. Dies kann man mit dem Startparameter -j vom pure-ftpd erledigen lassen. Sobald sich der Benutzer das erste mal anmeldet, wir das Verzeichnis erstellt. Der »echte« Benutzer ftpuser und die Gruppe nogroup werden dabei als Benutzer und Gruppe dem neu angelegten Verzeichnis zugeordnet.

    Noch kann sich der Benutzer aber nicht anmelden, da er nur angelegt, aber noch nicht initialisiert worden ist. Dies bedeutet im Klartext: Es wurde zwar ein Eintrag in der Datei /etc/pure-ftpd.passwd erstellt, auf diesen greift aber der pure-ftpd nicht zu. Es muß erst eine Database im Binärformat erstellt werden:

    pure-pw mkdb

    Die Datei /etc/pureftpd.passwd wird in die Datei /etc/pureftpd.pdb »übersetzt«. Jetzt muß der pure-ftpd allerdings noch per Startparameter die Information erhalten, dass er auch darauf zugreifen soll. Hier ein Beispiel für die Startparameter für den pure-ftpd, damit virtuelle User unterstützt, und deren Verzeichnisse beim ersten Login angelegt werden:

    pure-ftpd -j -l puredb:/etc/pureftpd.pdb

    Natürlich muß der bisher laufende pure-ftpd neu gestartet werden (beim standalone-Modus), oder der inetd neu gestartet werden (kill -i <pid>), damit die Änderungen in der /etc/inetd.conf übernommen werden.

    Sollte danach die folgende Fehlermeldung erscheinen...

    421 Unknown authentication method: puredb:/etc/pureftpd.pdb

    ...wurde pure-ftpd ohne Unterstützung für alternative Authentifizierungsmöglichkeiten kompiliert. Mit der Option --with-everything sollte sie auf alle Fälle unterstützt werden.

    Sollte dies bereits geschehen sein und dennoch diese Fehlermeldung erscheinen, so könnte beim Aufruf des Servers oder aber beim anlegen der pureftpd.pdb ein kleiner Buchstabendreher die Ursache des Problems sein.



    ..:: Benutzereinstellungen anpassen ::..

    Vorneweg ein paar wichtige Informationen: Nach einer Änderung der Daten eines Benutzers oder nach dem Anlegen eines neuen Benutzers muß erneut pure-pw mkdb aufgerufen werden. Die Änderungen/das Anlegen wird nicht sofort in die Datenbank übernommen sondern in einer anderen Datei zwischengespeichert. Erst nach dem Aufruf wird die neue Datenbank erstellt.

    Ein Neustart des Servers ist nicht notwendig, da die Datenbank bei jedem Aufruf abgefragt wird. Es wird schließlich nur der Inhalt der Datenbank verändert, nicht ein Startparameter des Servers.

    Sollte der Server vom inetd aus gestartet werden wird er so oder so bei einer neuen Verbindung neu gestartet. So. Nun aber zum eigentlichen Thema, dem anpassen von Benutzereinstellungen.

    Man kann für jeden virtuellen Benutzer diverse Einstellungen bzw. Beschränkungen einrichten. Die bereits zugeteilten Einstellungen kann man sich mit dem folgenden Befehl anzeigen lassen:

    pure-pw show joe

    Die Ausgabe sieht so (oder so ähnlich) aus:

    Login : joe
    Password : $1$fALoMD40$Wf.UzMQkvyNeYHHGdQjrp1
    UID : 7777 (ftpuser)
    GID : 65534 (nogroup)
    Directory : /home/ftp/joe/./
    Full name :
    Download bandwidth : 0 Kb (unlimited)
    Upload bandwidth : 0 Kb (unlimited)
    Max files : 0 (unlimited)
    Max size : 0 Mb (unlimited)
    Ratio : 0:0 (unlimited:unlimited)
    Allowed local IPs :
    Denied local IPs :
    Allowed client IPs :
    Denied client IPs :
    Time restrictions : 0000-0000 (unlimited)
    Max sim sessions : 0 (unlimited)



    Wie man sehen kann gibt es eine Anzahl von Möglichkeiten, die Benutzer individuell einzurichten. Insbesondere die Ratio-Einstellungen und natürlich auch die Bandbreiten-Kontrolle wären auf LANs interessant. Für den Hosting-Einsatz ist die Beschränkung des Speicherplatzes sehr wichtig. Hierzu gleich ein einfaches Beispiel: Der Speicherplatz des Benutzers joe soll auf 100 MB beschränkt werden:

    pure-pw usermod joe -N 100

    Anschließend wieder mit pure-pw show joe kontrollieren, ob die Änderung wie gewünscht übernommen worden ist:

    Login : joe
    Password : $1$fALoMD40$Wf.UzMQkvyNeYHHGdQjrp1
    UID : 7777 (ftpuser)
    GID : 65534 (nogroup)
    Directory : /home/ftp/joe/./
    Full name :
    Download bandwidth : 0 Kb (unlimited)
    Upload bandwidth : 0 Kb (unlimited)
    Max files : 0 (unlimited)
    Max size : 100 Mb (enabled)
    Ratio : 0:0 (unlimited:unlimited)
    Allowed local IPs :
    Denied local IPs :
    Allowed client IPs :
    Denied client IPs :
    Time restrictions : 0000-0000 (unlimited)
    Max sim sessions : 0 (unlimited)



    Wie man jetzt sehen kann, hat sich die Angabe von (unlimited) in (enabled) geändert worden. Weiterhin sind die 100 MB als Grenze eingetragen worden.

    Die übrigen Einstellungen wie beispielsweise Quotas und die Beschränkungen des Zugriffs von bzw. auf bestimmte IPs werden auf die gleiche Art und Weise dem Benutzer zugeordnet.

    Mir mißfällt zwar die Übersetzung »Heimatverzeichnis« für »home directory«, aber diese wird nunmal oft verwendet und ist somit eindeutig. Dafür habe ich es bei »Ratio« belassen und nicht in »Verhältnis« übersetzt.

    Hier nun der aus der Hilfe zu pure-pw übernommene Teil mit den Optionen vom Aufruf pure-pw usermod:

    pure-pw usermod <Benutzername> -f <Passwortdatei> -u <uid> [-g <gid>]
    -D/-d <Heimatverzeichnis> -[c <gecos>]
    [-t <Download>] [-T <Upload>]
    [-n <maximale>] [-N <max>]
    [-q <Upload>] [-Q <Download>]
    [-r <erlaube>/<mask>]
    [-R <verbiete>/<mask>]
    [-i <erlaube>/<mask>]
    [-I <verbiete>/<mask>]
    [-y <maximale>]
    [-z <hhmm>-<hhmm>] [-m]

    Noch ein paar Hinweise zu den Schaltern:

    -d <heimatverzeichnis> : chroot Benutzer (empfohlen)
    -D <heimatverzeichnis> : kein chroot des Benutzers
    -y 0 : unbegrenzte Anzahl von gleichzeitigen Sitzungen
    -m : anschließend die /etc/pureftpd.pdb Datenbank aktualisieren
    Um einen 1:10 Ratio einzurichten, -q 1 -Q 10 angeben
    Um den Zugriff ausschließlich zwischen 9 Uhr morgens und 6 Uhr abends, -z 0900-1800 angeben

    Und – wie schon geschrieben – nicht vergessen mit pure-pw mkdb die Änderungen in die Datenbank zu übernehmen!



    ..:: anonymous ftp ::..

    Standardmäßig ist beim pure-ftpd ein Zugriff über einen anonymen Benutzer möglich. Sowohl über den Benutzernamen »ftp« als auch über das als Alias verwendete »anonymous« ist die Verbindung als anonymer Benutzer möglich. Allerdings müssen dafür einige Vorraussetzungen erfüllt sein.

    Die Benutzer nobody, ftp und die Gruppen nogroup, ftp müssen vorhanden sein. Dies kann man überprüfen, indem man mit cat /etc/passwd | grep nobody nach dem Benutzer nobody sucht und das Gleiche mit ftp anstatt nobody wiederholt. Bei den Gruppen lautet der Aufruf cat /etc/group | grep nogroup bzw. ftp anstatt von nogroup.

    Sind die Benutzer und die Gruppen angelegt, so sollte anonymes FTP mit dem pure-ftpd möglich sein – sofern er dementsprechend gestartet worden ist.

    Sollte ein Benutzer und/oder eine Gruppe fehlen, dann muss man ihn/sie anlegen. Zunächst muß ein Verzeichnis für den FTP-User angelegt werden (sofern noch nicht vorhanden): mkdir /home/ftp.

    Nun den Benutzer mit Gruppe anlegen. Bei dem von mir verwendeten Debian GNU/Linux darf man ab der uid »1000« neue Benutzer definineren. Bis zur uid »999« sind sie für das System und für die Paketinstallation reserviert. Standardmäßig bekommt der Benutzer ftp bei Debian (laut mehreren Seiten im Web) die uid »101«. Bei anderen Distributionen kann sich dies unterscheiden.


    turanga:~# addgroup ftp
    Adding group ftp (101)...
    Done.



    Nun muß der Benutzer ftp angelegt werden. Er bekommt als gid die »101« von geradeeben mit, sollte sie differieren muß der Aufruf angepasst werden. Vorsicht: Damit der Aufruf nicht die Formatierung sprengt, habe ich einen Zeilenumbruch eingebaut.

    turanga:~# adduser --system --no-create-home --gecos
    "Ftp user" --gid 101 --disabled-password ftp
    Adding system user ftp...
    Adding new user ftp (101) with group ftp.
    Not creating home directory.



    Der Benutzer ftp hat die uid »101« erhalten – zumindest auf meinem System. Nun kann das Home-Verzeichnis vom Benutzer ftp per CHOWN richtig konfiguriert werden:

    chown 101:101 /home/ftp

    Zu beachten sind auch in diesem Fall natürlich die richige uid und gid. Eigentlich sollte nun anonymes FTP problemlos funktionieren. Sowohl der Benutzer ftp als auch der Benutzer anonymous lassen eine Anmeldung als anonymer Benutzer zu.

    Im Zweifelsfall müssen die neu angelegten User/Gruppen dem pure-ftpd erst »bekanntgemacht« werden. Spätestens nach einem Reboot sollte also alles wie gewünscht funktionieren.



    ..:: umask ::..

    Die umask (Schalter -U) gibt an, welche Zugriffsrechte die hochgeladenen Dateien zugewiesen bekommen. Hierzu ein Beispiel: Der Besitzer der Dateien sollen rwx-Zugriffe erhalten, die Gruppe darf lediglich lesen und Others haben keine Zugriffsrechte. Etwas übersichtlicher dargestellt:

    rwx r-- --

    Es würde beim chmod-Befehl dem Wert 740 entsprechen. Der Wert der umask wird anders gebildet. Man nimmt als »Startwert« den Wert 777 und zieht davon den »normalen« Wert des chmod-Befehls Stelle um Stelle ab. Somit ergibt »777« weniger »740« die umask 037.




    ..:: Beispielkonfiguration ::..

    Mein FTP-Server sollte (vorerst) folgende Ansprüche erfüllen:

    kein anonymes FTP
    Unterstützung virtueller Benutzer
    Quota für die virtuellen Benutzer
    »echte« Benutzer sollen keinen Zugriff erhalten
    CHROOT für virtuelle Benutzer
    inetd startet Server
    noch nicht angelegte Verzeichnisse virtueller User sollen automatisch angelegt werden
    Bis maximal 80% des zur Verfügung stehenden Speicherplatzes dürfen FTP-Benutzer Uploads durchführen.
    Wie man den FTP-Server in der /etc/inetd.conf einzutragen hat, ist ja bereits beschrieben worden. Daher schreibe ich hier lediglich die notwendigen Schalter beim Aufruf des Servers hin:

    pure-ftpd -B -A -E -j -k 80 -l puredb:/etc/pureftpd.pdb

    Für was stehen die Schalter im Einzelnen? Damit jetzt nicht immer zwischen den Schaltern und dieser Zeile hin und her gewechselt werden muß, hier eine kurze Zusammenfassung:

    -B = Server soll im Hintergrund gestartet werden
    -A = CHROOT für alle Benutzer. Eigentlich nicht notwendig, da nur authentifizierte Anmeldungen virtueller Benutzer zugelassen werden, aber sicher ist sicher.
    -E = nur authentifizierte Anmeldungen. Es wird also kein anonymous ftp gewährt.
    -j = Benutzerverzeichnisse, welche nicht existieren, werden beim ersten Anmelden des Benutzers angelegt.
    -k 80 = FTP-User können maximal 80% des zur Verfügung stehenden Speicherplatzes belegen.
    -l = der Server greift ausschließlich auf die pureftpd.pdb-Datenbank zurück.
    Die Speicherplatzbegrenzung für die virtuellen Benutzer (Quotas) werden nicht mit den Startparametern eingebunden. Die Benutzer werden einzeln dahingehend konfiguriert, dass die Konten entsprechenden Beschränkungen unterliegen. Eine Anleitung wie man genau diese Einstellung vornimmt war ja auf der vorangegangenen Seite als Beispiel zu finden gewesen.

    Zum Vergleich noch kurz der Aufruf, der mir bei der Installation des .deb vom pure-ftpd automatisch eingerichtet worden ist:

    pure-ftpd -B -A -E -f ftp -l unix -u 100 -g /usr/local/var/pureftpd.pid

    So großartig unterscheiden sich die Aufrufe also garnicht. Das -u 100 würde sich bei meinem FTP-Server aber aus Sicherheitsgründen auch nicht schlecht machen. Wieder eine Lücke weniger, die momentan zwar nicht offen ist (es werden ja keine »echten« Benutzerkonten zugelassen, lediglich die virtuellen Benutzer), aber sicher ist sicher.

    Sollte ich später aus irgendwelchen Gründen doch mal für die normalen Benutzerkonten des Systems einen Zugang brauchen, so bin ich mit dem Aufruf dann gegen Zugriffe mit dem Benutzer root gewappnet.





    ..:: FAQ ::..

    Seitdem ich die Anleitung ins Internet gestellt habe sind viele E-Mails mit einem Danke im Text oder Betreff eingegangen. Jedoch gab es beim einen oder anderen auch kleine Problemchen, welche allerdings sehr schnell behoben werden konnten. Mal lag es am Überlesen von mir angegebenen Schaltern oder ich selbst hatte einen Fehler in meiner Dokumentation übersehen.

    Für jeden Hinweis auf einen vorhandenen Fehler bin sicherlich nicht nur ich dankbar, auch zukünfige Leser dieser Seiten werden es begrüßen, eine fehlerfreie Doku zu haben. Daher bitte ich alle Leser, mich auf Fehler hinzuweisen oder bei kleinen oder größeren Problemen einfach bei mir nachzufragen. Soweit ich helfen kann werde ich dies auch tun.

    Die folgenden Beiträge sind Antworten auf aufgetretene Probleme, welche mit der gegebenen Antwort behoben werden konnten. Die Texte habe ich etwas gekürzt und angepasst soweit es erforderlich war.



    ..:: Mehr als zwei Clients trotz Restriktion ::..

    Chris: Mehr als zwei Clients über eine IP trotz Restriktion.

    Obwohl ich denn Schalter -C 2 benutzt habe können sich mehr als 2 Clients mit der selben IP einloggen. Das versteh ich nicht.

    Antwort: Nur im standalone Modus funktioniert die Begrenzung der User mit dem Schalter -C. Wird der Server vom inetd aus verwaltet, wirkt er nicht. Die Lösung für das Problem ist, den Server mit einem Script beim Systemstart, oder – wenn so gewollt – von Hand an der Konsole zu starten.

    Damit ich mich hier nicht mit fremden Federn schmücke: Chris hat die Lösung für das Problem selbst herausgefunden, mich dann darüber informiert.



    ..:: 553 Disk full - please upload later ::..

    Markus: Meldung »Disk full« obwohl noch massig Platz vorhanden ist.

    Ich kann mich wunderbar einloggen und auch ohne weiteres lesen und Ordner erstellen. Allerdings kann ich keine Dateien hochladen. Es kommt immer schlicht und einfach die Fehlermeldung, dass die Platte voll sei:

    ftp> put /home/zocker/HLDS\ FILES/cs_15_full.tar.gz /upload
    local: /home/zocker/HLDS FILES/cs_15_full.tar.gz remote: /upload
    229 Extended Passive mode OK (|||53489|)
    553 Disk full - please upload later



    Die Platte ist aber definitiv nicht voll. Hab sogar bereits mehrere Dateien gelöscht – ohne Erfolg. Immer noch diese Fehlermeldung, auch bei mehreren Versuchen von mehreren verschiedenen Betriebsystemen und FTP-Clients aus.

    Antwort:

    Die Angabe "-k 80" bewirkt, dass von FTP-Usern nichts mehr hochgeladen werden kann wenn die Platte bis zu 80% belegt ist.

    Wie sie im Nachhinein tatsächlich herausgestellt hat war die Platte bereits zu 91% belegt gewesen.

    Man kann an der Konsole herausfinden, wieviel Prozent der einzelnen gemounteten Partitionen belegt sind. Einfach den Befehl df -h aufrufen und die Ausgabe anschauen. Bei einem meiner Rechner sah die Ausgabe so aus:

    [thomas@fishbone thomas]$ df -h
    Dateisystem Größe Benut Verf Ben% Eingehängt auf
    /dev/sda3 881M 741M 95M 89% /
    /dev/sda1 854M 462M 393M 55% /mnt/windows



    Da auf der Systempartition bereits 89% belegt sind könnte kein FTP-User was hochladen.

    Je größer die Partitionen sind desto mehr Platz wird natürlich »verschenkt« wenn es sich um die letzten 20% handelt. Bei 100 Gig wären es 20 Gigabyte freier Platz und trotzdem gibt der FTP-Client die Meldung vom pure-ftpd weiter und meldet, dass die Platte voll sei.



    ..:: Server bleibt beim Starten hängen ::..

    Enni: Der Server bleibt beim Starten hängen.

    Ich habe als Newbie nach deiner Anleitung pure-ftpd installiert. Nur das pure-ftp schon in der SuSE-Distribution 8.1 enthalten war. Nun bin ich an dem Punkt angelangt an dem ich den Befehl pure-ftpd -j -l puredb:/etc/pureftpd.pdb eingegeben hatte.

    Nun mein Problem: Rr bleibt da hängen, und ich kann die Aktion nur mit STRG+C abbrechen. Was mache ich falsch?

    Antwort:

    Er bleibt nicht »hängen«, sondern du hast den Server mit dem Aufruf an der Konsole gestartet. Da du ihm nicht mitgeteilt hast, dass er im Hintergrund starten soll, blockiert er jetzt die Konsole.

    Die Lösung ist folgendes:

    pure-ftpd -j -l puredb:/etc/pureftpd.pdb & Dann läuft der Server wegen dem & im Hintergrund und nicht »auf der Konsole«. Dieser Tipp greift auch bei anderen Programmen unter Linux.

    Der pure-ftpd hat allerdings einen Schalter für sowas. Der korrekte Aufruf würde daher lauten:

    pure-ftpd -B -j -l puredb:/etc/pureftpd.pdb Wie man der Liste der Schalter entnehmen kann wird durch den Schalter -B der Server im standalone Modus im Hintergrund (daemonized) gestartet.



    ..:: Symlinks folgen trotz chroot ::..

    Holger: Wie stell ich es am bloedsten an, dass mehrere virtuelle Benutzer auf ein und das selbe Verzeichnis außerhalb ihres Verzeichnisses zugreifen können?
    Beispiel: /home/ftp/a und /home/ftp/b sollen auf /home/shared/ zugreifen können. Symbolische Links sind keine Lösung da dann die Meldung file/directory not found erscheint. Der Readme folgend habe ich pure-ftpd mit --with-virtualchroot kompiliert, nun erscheint die Meldung permission denied.

    Antwort:

    Da die Benutzer chrooted sind unterbindet der Server die Funktionalität des symbolischen Links. Es ist nur das erreichbar, was sich nicht außerhabl des base directorys (dem home directory des Benutzers) befindet. Auch nicht mittels einem symbolischen Link.

    Aber alle modernen Betriebssysteme können lokale Verzeichnisse an mehreren Orten mounten. Dadurch erhält man eine exakte Kopie des Verzeichnisses im Benutzerverzeichnis. Hier die Befehlsaufrufe für die unterschiedlichen Betriebssysteme (entnommen der originalen PureFTPd-FAQ:

    * Linux : mount --bind /var/incoming /home/john/incoming
    mount --bind /var/incoming /home/joe/incoming

    * Solaris : mount -F lofs /var/incoming /home/john/incoming
    mount -F lofs /var/incoming /home/joe/incoming

    * BSD : mount_null /var/incoming /home/john/incoming
    mount_null /var/incoming /home/joe/incoming

    Anmerkung: In den FAQ der offiziellen Homepage wird die Option --with-virtualchroot ebenfalls als Lösung angeboten, dies scheint aber nicht 100%ig zu funktionieren. Die Lösung für das Problem hat Holger selbst herausgefunden, ich habe sie ledliglich hier reingestellt.



    ..:: Kein Upload mehr obwohl alles frei (.ftpquota) ::..

    Michael: Ich habe auf meinen FTP-Server Daten hochladen lassen. Diese habe ich anschließend lokal auf dem Rechner in ein anderes Verzeichnis verschoben so das wieder das Verzeichnis des Users frei war. Nun kann er zwar Dateien hochladen, die sind dann aber nach dem Upload gleich wieder verschwunden. Er hat sich schon ausgeloggt gehabt, inzwischen wurde der FTP-Server auch schon mehrfach neu gestartet. Was ist da los?

    Antwort:

    Wenn für den Benutzer eine Quota (Beschränkung des Speicherplatzes) eingerichtet worden ist, so werden die Informationen über den Up- und Download in der Datei .ftpquota in seinem home directory gespeichert. Wenn die Daten lokal verschoben werden bekommt das der FTP-Server nicht mit und ändert natürlich auch nicht die Informationen in der .ftpquota. Daher immer die Loginnachricht beachten:

    230-Benutzer zauder hat Gruppenzugang zu: 65534
    230-OK. Aktuelles Verzeichnis ist /.
    230 7553 Kilobyte benutzt (73%) - erlaubt: 10240 Kb.

    Obwohl das Benutzerverzeichnis leer ist glaubt der FTP-Server, es seien 73% vom für den Benutzer verfügbaren Speicherplatz belegt. Nachdem man die .ftpquota gelöscht hat steht wieder der volle Speicherplatz zur Verfügung.



    ..:: SuSE Konfigurationsdatei ::..

    Da ich als Distribution Debian GNU/Linux verwende, kann ich herzlich wenig über die Konfigurationsdatei von SuSE schreiben. Aber es gibt eine Lösung: Auf Olaf Stumm's Homepage wird diese Konfigurationsdatei behandelt.

    Bei der Navigation den Pure-FTPd auswählen und die auf deutsch übersetzte Konfigurationsdatei anschauen. Sie sollte eigentlich alle Fragen beantworten können – sofern es um Konfigurationsparameter geht.



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum LPI und MCSA Prüfung

    ATI Treiber installieren unter SuSE wegen XGL ... - gepostet von MehlZoerwer am Dienstag 09.01.2007
    Umkreisnetzwerk -> DMZ - gepostet von mcsalinux am Donnerstag 31.05.2007
    Firewallarten - gepostet von mcsalinux am Dienstag 20.03.2007
    Hurra endlich bestanden - gepostet von necati09 am Montag 16.07.2007
    Sicher und anonym im Internet mit Proxys - gepostet von mcsalinux am Montag 12.02.2007
    72-290 Gelsenkirchen bestanden - gepostet von necati09 am Mittwoch 16.05.2007
    ISA - Server - gepostet von MehlZoerwer am Montag 18.06.2007



    Ähnliche Beiträge wie "Pure-FTP - pureftpd"

    FTP Zugangsdaten - StormRaven (Samstag 09.07.2005)
    Pure Potter Alchemist - Cpt. Chaos (Donnerstag 20.12.2007)
    Kaufe 1k Pure Ess 110k - sternchen (Sonntag 21.01.2007)
    anonym ftp - Cakir_89 (Donnerstag 15.06.2006)
    17.06.'06 Tripple X im Pure, Bad Kreuznach - RedEye (Dienstag 30.05.2006)
    FTP Daten - chris19 (Freitag 16.07.2004)
    23.09.2006 Red Eye @ Pure Bad Kreuznach - Anonymous (Donnerstag 17.08.2006)
    FTP Server 24/7 - Status - frenzy (Montag 08.05.2006)
    **FTP Program ** - islamboard (Dienstag 10.01.2006)
    FTP-Server vs. YouSendIt und ähnliche - Rossano (Sonntag 08.01.2006)