ProFTPD Direktiven

 
 Name <Anonymous> Editieren
 Syntax<Anonymous root-directory>
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 Standard
 Ab Version0.99.0
 BeschreibungDer "Anonymous" Block in der Konfiguration wird benutzt, um einen anonymen FTP Zugang einzurichten. Er wird mit </Anonymous> beendet.
Das übergebene Root Directory gibt an, in welches Verzeichnis der PROFTPD-Dämon zuerst wechseln - und unmittelbar nach dem Login "chrooten" wird. Nachdem die Chroot-Operation erfolgreich beendet ist, sind höhere Verzeichnisebenen für den Benutzer nicht mehr sichtbar. Standardmäßig vermutet PROFTPD einen anonymen Login, wenn der Benutzer versucht sich mit demselben Benutzernamen anzumelden, unter dem der Server läuft. (außer root, hier ist ein anonymer Zugang nicht erlaubt). Um PROFTPD zu zwingen, den anonymen Zugang einem anderen Benutzer zuzuordnen, siehe Dir bitte die "USER" & "GROUP" Anweisung an. Sollte im anonymen Konfigurationsblock eine "USER" oder "GROUP" Anweisung stehen, wird der Dämon auf diesen Werte wechseln, bevor er den "Chroot" Vorgang ausführt. Normalerweise wird beim anonymen Zugang kein Passwort benötigt. Vielmehr wird erwartet, dass eine gültige Email-Adresse statt eines Passwortes angegeben wird (diese wird auch protokolliert). Wenn dieses Verhalten nicht gewünscht ist, kann dies im <Anonymous>-Konfigurationsblock durch die Anweisung "AnonRequirePassword" geändert werden.

Anmerkung: "Chrooted" Anonyme Verzeichnisse benötigen keine gesonderten Systemfiles bzw. irgendeine Verzeichnisstruktur. Dieses liegt daran, dass PROFTPD so programmiert wurde, die nötigen Systeminformationen vor dem Chroot anzufragen und diese Dateien offen zu lassen.
 Beispiel 1<Anonymous /home/ftp> 
 User  ftp               # After anonymous login, daemon runs as user ftp 
 Group ftp               # After anonymous login, daemon runs as group ftp
 UserAlias anonymous ftp # Client login as 'anonymous' is aliased to 'ftp'

 <Directory *>
  <Limit WRITE>    # Alle Schreibzugriffe unter dem root-Verzeichnis verbieten
   DenyAll         # Standard ist "erlauben", daher brauchen wir kein
  </Limit>         # <Limit> für Lesezugriffe erlauben
 </Directory>

 <Directory incoming>     
  <Limit READ WRITE>   # Nur das Hochladen von Dateien in das
   DenyAll             # Verzeichnis incoming erlauben
  </Limit>
  <Limit STOR>
   AllowAll
  </Limit>
 </Directory>
</Anonymous>
 Beispiel 2
06.00.2003 23:00
Zum Seitenanfang
 
 Name <Directory> Editieren
 Syntax<Directory pathname>
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab Version0.99.0
 BeschreibungDiese Anweisung erstellt einen Block von Anweisungen, die ein spezielles Verzeichnis und seine Unterverzeichnisse betreffen. Der Block endet mit </Directory>. Jede <Directory> Anweisung wird zur Laufzeit ausgewertet und die Verzeichnisangabe, die am ehesten passt, wird verwendet. Das bedeutet, dass jede <Directory> Angabe die Unterverzeichnisse mit einschließt, bis ggf. eine weitere <Directory> Anweisung ein Unterverzeichnis näher definiert. Anmerkung: dieses trifft nicht auf <LIMIT> <LIMIT> Block zu, die durch alle Unterverzeichnisse vereerbt werden, solange kein <LIMIT> Block gefunden wird, der besser passt.

Ein Schrägstrich und ein Wildcard ("/*") können dem Verzeichnis angehangen werden und geben an, dass der Konfigurationsblock nur auf den Inhalt dieses Verzeichnisses und seine Unterverzeichnisse zutrifft, nicht aber auf das Verzeichnis selbst. Solche Wildcard-<Directory>-Blöcke haben eine höhere Priorität als normale <Directory>-Konfigurationsblöcke.
<Directory>-Blöcke können nicht ??nested?? werden (sie werden automatisch während der Laufzeit ??nested?? die auf ihren Namen basiert). Die Namen müssen immer absolut sein (ausgenommen sind Angaben innerhalb eines <Anonymous>-Block) und sollten sich nicht auf symbolische Links beziehen. Namen innerhalb eines <Anonymous>-Blockes können im Verhältnis zu der Wurzel des PROFTPD-Servers sein.
Anmerkungen für ProFTPD 1.1.3 und höher: Pfadangaben, die mit dem Sonderzeichen '~' beginnen und unmittelbar danach keinen Benutzernamen enthalten, werden in einen speziellen zurückgestellten Modus gesetzt. Wenn sich ein Benutzer anmeldet, wird das ~ durch sein Heimatverzeichnis ersetzt. Dieses ermöglicht einen globalen <Directory>-Block, der auf die Heimatverzeichnisse oder Unterverzeichnisse aller Benutzer zutrifft.
 Beispiel 1<Directory /users/anybody/private>
  HideNoAccess
</Directory>
 Beispiel 2<Directory ~/anon-ftp>
  <Limit WRITE>
   DenyAll
  </Limit>
</Directory>
06.00.2003 20:02
Zum Seitenanfang
 
 Name Allow Editieren
 SyntaxAllow ["from"] "all" | "none" | host | network
 Kontext<Limit>
 Modulmod_core 
 Standardallow all
 Ab Version0.99.0pl6
 BeschreibungDie Allow Anweisung wird innerhalb der "<Limit>" Anweisung benutzt, um ausdrücklich einem Rechner oder einem Netzwerk das Ausführen von gewissen Befehlen zu erlauben. "Allow" wird üblicherweise in Verbindung mit "Order" und "Deny" verwendet, um anspruchsvolle (oder auch nicht) Zugriffskontrollen zu ermöglichen. Das Argument "from" in Verbindung mit "Allow" ist nur kosmetischer Natur. Die weiteren Argumente müssen eine Liste von Computern und/oder Netzwerken sein, denen ausdrücklich Zugang gewährt werden soll.
Das Schlüsselwort "all" gibt an, das allen Rechnern Zugang gewährt werden soll (wie die "AllowAll" Anweisung, jedoch mit geringerer Priorität).
Das Schlüsselwort "none" gibt an, das keinem Rechner Zugang gewährt werden soll. Dieses verhindert jedoch nicht, daß Rechnern ausdrücklich Zugriff gegeben werden kann. Wenn "all" oder "none" benutzt werden, darf kein weiterer Rechner/Netzwerk angegeben werden.
Rechner/Netzwerke können entweder numerisch oder mit Namen angegeben werden. Aus Sicherheitsgründen ist die Angabe von IP-Nummern dringenst empfohlen, DNS Server gehackt werden können.
Numerische Adressen, die ein gesamtes Netzwerk beschreiben, sollten mit "." enden (z.B. "192.168.0." für das gesamte 192.168.0 Subnetz). DNS Namen für Netzwerke sollten mit einem "." beginnen, also z.B. ".proftpd.org" für das gesamte proftpd.org Netzwerk.
Die Auswahl kann negiert werden durch die "!" Anweisung, so daß grosse Blöcke selectiert werden können, einzelne Rechner jedoch ausgeschlossen werden können.
 Beispiel 1<Limit Login> 
  Order Allow, Deny 
  Allow from 128.44.26., myhost.mydomain.edu. 
  Allow from 10.2.0.0/22 
  Deny from all 
</Limit>
06.00.2003 20:02
Zum Seitenanfang
 
 Name <Global> Editieren
 Syntax<Global>
 KontextServer config <VirtualHost>
 Modulmod_core 
 Ab Version1.1.6
 BeschreibungDer <Global>-Konfigurationsblock beinhaltet die Anweisungen, die sowohl für den Hauptserver, als auch für alle <VirtualHost>-Server gilt. Die meisten Anweisungen, jedoch nicht alle, können innerhalb des <Global>-Konfigurationsblockes verwendet werden.
Es können in einer Konfiguration mehrere <Global>-Blöcke enthalten sein. Diese werden beim Start des Servers zu einem Block zusammengefügt.
Der <Global>-Konfigurationsblock wird mit <Global> begonnen und muss mit </Global> geschlossen werden.
06.00.2003 20:02
Zum Seitenanfang
 
 Name <Limit> Editieren
 Syntax<Limit command|command-group [command2 ..]>
 KontextServer config <Global> <VirtualHost> <Anonymous> .ftpaccess <Directory>
 Modulmod_core 
 Ab Version0.99.0
 BeschreibungDie <Limit>-Anweisung wird benutzt, um FTP Befehle zu erlauben oder zu verbieten. Die <Limit> Blöcke gelten für alle <Directory> und <Anonymous> Blöcke innerhalb einer Konfiguration, bis sie durch eine weitere <Limit> Anweisung aufgehoben wird. Der übergebende Befehl kann grundsätzlich jedes gültige FTP Kommando sein - im Regelfall jedoch einer der folgende Befehle:
CWD (Verzeichnis Wechseln)
MKD (Verzeichnis erstellen)
RTFR (Umbenennen von)
RNTO (Umbennen in)
DELE (Datei löschen)
RMD (Verzeichnis löschen)
RETR (Client empfängt Datei vom Server)
STOR (Client sendet Datei zum Server)
SITE_CHMOD (ändert die Rechte einer Datei auf dem Server)

Außerdem sind folgende Befehlsgruppen möglich. Sie haben eine niedrigere Priorität als "richtige" Befehle, was bedeutet, dass "richtige" Befehle im Zweifelsfall Vorrang haben.

READ (alle lesenden Befehle, jedoch NICHT das Verzeichnis auflisten z.B. RETR, STAT)
WRITE (alle schreibenden Befehle, wie löschen, erstellen, umbenennen)
DIRS (alle Befehle, die mit dem auflisten eines Verzeichnisses zu tun haben, z.B. LIST, NLST)
ALL (alle FTP Befehle, identisch mit READ WRITE DIR. Diese Gruppe hat die niedrigste Priorität)

Das spezielle Kommando LOGIN ist außerdem erlaubt und kann zur Zugangskontrolle verwandt werden.
Es betrifft Verbindungen oder Anmeldungen an den Server. Wenn ein <Limit> mit diesem virtuellen Kommando verwendet wird, kann es verwendet werden, um die Anmeldung zu erlauben oder zu verbieten. Es hat keine Wirkung und wird ignoriert, wenn es außerhalb der Server Konfiguration (<VirtualHost>, <Anonymous>) benutzt wird. Das bedeutet, dass es in einem <Directory>-Block bedeutungslos ist.

<Limit> command restrictions should not be confused with file/directory access permission. While limits can be used to restrict a command on a certain directory, they cannot be used to override the file permissions inherent to the base operating/file system.
Siehe auch: IgnoreHidden
06.00.2003 20:02
Zum Seitenanfang
 
 Name <VirtualHost> Editieren
 Syntax<VirtualHost address>
 KontextServer config
 Modulmod_core 
 Ab Version0.99.0
 BeschreibungDer "VirtualHost" Block in der Konfiguration wird benutzt, um eine unabhängige Konfiguration für eine spezielle IP bzw. für einen speziellen Hostnamen zu erstellen. Es wird oft benutzt in Verbindung mit System basierten IP Aliasing oder Dummy Netzwerk Schnittstellen, um einen oder mehrere "virtuelle" Server auf einem Server laufen zu lassen. Mittels der "Port" Anweisung innerhalb eines "VirtualHost" Blockes kann man mehrere virtuelle Server unter einer IP auf einem Server laufen lassen, die durch verschiedene Ports angesprochen werden. Dieses ist jedoch nur im Standalone Modus möglich !
Ein "VirtualHost" Block beginnt mit "<VirtualHost>" und wird mittels " </VirtualHost>" beendet.

06.00.2003 20:02
Zum Seitenanfang
 
 Name AccessDenyMsg Editieren
 SyntaxAccessDenyMsg "Nachricht"
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 StandardHängt vom Login Typ ab
 Ab Version1.2.2
 BeschreibungNormalerweise wird eine Antwortnachricht (Code "530") direkt nach einem fehlerhaften Versuch geschickt, mit dem Hinweis auf den Fehlergrund. Im Falle eines falschen Passwortes ist dieses üblicherweise "Login incorrect".
Diese Nachricht kann mit der AccessDenyMsg Anweisen angepasst werden. In der Mitteilung ist "%u" der Platzhalter für den beim login übermittelten Usernamen.

 Beispiel 1AccessDenyMsg "Zugriff für %u ist verweigert worden"
06.00.2003 20:02
Zum Seitenanfang
 
 Name AccessGrantMsg Editieren
 SyntaxAccessGrantMsg "Nachricht"
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 StandardHängt vom Login Typ ab
 Ab Version0.99.0pl5
 BeschreibungNormalerweise, eine Bestätigungsnachricht (Code "230") wird an den FTP Client direkt nach dem einloggen geschickt, um dem Benutzer zu signalisieren, daß er entwerder eingeloggt ist oder das anonymer Zugang gewährt wurde.
Diese Nachricht kann mit der AccessGrantMsg Anweisung angepaßt werden. In der Nachricht kann mit dem Platzhalter "%u" der Usernamen übergeben werden, der beim Einloggen übermittelt wurden
 Beispiel 1AccessGrantMsg "Zugriff gewährt für %u"
06.00.2003 20:02
Zum Seitenanfang
 
 Name AllowAll Editieren
 SyntaxAllowAll
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_core 
 StandardDefault is to implicitly AllowAll, but not explicit
 Ab Version0.99.0
 BeschreibungDie "AllowAll" Richtlinie gibt explizit (wenn alle impliziten Regeln versagen) Zugriff zu folgenden Blöcken: "<Directory>", "<Anonymous>", "<Limit>".
Obwohl das Standardverhalten von proftpd der teilweise Zugriff auf Objekte durch die "Allow" Anweisung ist, ist dieses implicit. "AllowAll" erzeugt einen explizites Zugriff, der alle anderen Anweisungen überschreibt.
06.00.2003 20:02
Zum Seitenanfang
 
 Name AllowFilter Editieren
 SyntaxAllowFilter regular-expression
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab Version1.2.0pre7
 Beschreibung"AllowFilter" erlaubt die erstellung regulärer Ausdrücke, die allen übermittelten Kommandos an proftpd entsprechen müssen. Dieses ist sehr sinnvoll, um zu verhindern, daß mittels übermittelter Zeichenfolgen eventuelle Angriffe gegen PROFTPD geführt werden. Der reguläre Ausdruck wird gegen dan gesamten übermittelten Befehl ausgeführt, daher sollte man bei der Erstellung des Ausdrucker sehr sorgfältig sein.
Sollte der übermittelte Befehl den Test nicht bestehem, so wird dem Client ein "Forbidden Command" übersendet.
Die übermittlung von Passwörtern (PASS Befehl) wird NICHT geprüft !
Sollte der reguläre Audruck Leerzeichen enthalten, so sind diese in Anführungszeichen zu setzen.
 Beispiel 1# erlaubt nur Befehle mit Alphanumerischen Zeichen und Leerzeichen 
AllowFilter "^[a-zA-Z0-9 ,]*$"    
06.00.2003 20:02
Zum Seitenanfang
 
 Name AllowForeignAddress Editieren
 SyntaxAllowForeignAddress on|off
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Standardoff
 Ab Version1.1.7
 BeschreibungNormalerweise, erlaubt PROFTPD nicht, daß Clients in Verbindung mit dem "PORT" Befehl eine andere als deren eigene Adresse (die Source Adresse von der FTP Controll Verbindung) verwendet. Außerdem werden keine priviligierten Ports erlaubt. Dem Client ein "Invalid Port" Fehler übermittelt und eine Meldung wird mittels "syslog" protokolliert (entweder "Adress Mismatch" oder "Bounce Attack").
Wird diese Anweisung freigegeben, erlaubt PROFTPD Datenadressen, die nicht mit der Client Adresse übereinstimmt. Dieses erlaubt u.a. FXP Filetransfer, die es erlaubt zwischen zwei FTP Servern Daten zu übertragen, ohne direkt in den Transfer involviert zu sein.
Aus Sicherheitsgründen ist dieses jedoch nicht zu empfehlen.
06.00.2003 20:02
Zum Seitenanfang
 
 Name AllowGroup Editieren
 SyntaxAllowGroup group-expression
 Kontext<Limit>
 Modulmod_core 
 Standard
 Ab Version1.1.1, geändert in 1.2.10 RC1
 Beschreibung"AllowGroup" gibt einen Gruppen Ausdruck an, die speziell zugelassen sind im <LIMIT> Block. Das Format ist das gleiche wie bei "DefaultRoot". Die zugelassenden Gruppen bzw. nicht zugelassenden Gruppen (durch ein vorgestelltes "!") sind durch ein Komma (",") getrennt.
Der gesamte Ausdruck wird als logisches "UND" betrachtet, d.h. das alle Ausdrücke zutreffen müssen.

Ab ProFTPD 1.2.10RC1 gibt es noch folgende Ergänzungen:

Dem Befehl können nun noch drei Optionen hinzugefügt werden: "regex", "AND" and "OR". Je nach Option werden die Grippen dann als regulärer Ausdruck, als "UND" Verknüpfung oder als "ODER" Verknüpfung interpretiert.

z.B.
AllowUser regex ^ftp
DenyUser AND dave,bob
AllowGroup OR web,doc
 Beispiel 1
 Beispiel 2
05.00.2004 02:01
Zum Seitenanfang
 
 Name AllowLogSymlinks Editieren
 SyntaxAllowLogSymlinks on|off
 KontextServer config <Global> <VirtualHost>
 Modulmod_log 
 Standardoff
 Ab Version1.2.2rc2
 BeschreibungStandardmaessig ueberprueft der ProFPD Server, ob das Verzeichnis in das gelogt werden ein symbolischer Link ist. Ist das der Fall, verweigert der Server das loggen sofern dieses durch diese Direktive nicht ausdruecklich erlaubt ist.

Anmerkung zur Sicherheit: Dieser Verhalten sollte aus Sicherheitsgruenden nicht erlaubt werden. Wenn man dem Server erlaubt symbolische Links mit Root Privilegien zu oeffen, risikert man ggf. symlink Attacken, wo der Server ausgetrickt wird und ggf. wichtige Systemfiles ueberschreibt. Sei also gewarnt.
 Beispiel 1AllowLogSymlinks on
 Beispiel 2
01.-1.2003 22:01
Zum Seitenanfang
 
 Name AllowOverwrite Editieren
 SyntaxAllowOverwrite on | off
 KontextServer config <Global> <VirtualHost> <Anonymous> .ftpaccess <Directory>
 Modulmod_core 
 Standardoff
 Ab Version0.99.0
 BeschreibungDie AllowOverwrite Anweisung erlaubt neu übertragende Files bereits existierende zu überschreiben.
Standardmäßig ist es FTP Clients nicht erlaubt existierende Dateien zu überschreiben
06.00.2003 20:02
Zum Seitenanfang
 
 Name AllowRetrieveRestart Editieren
 SyntaxAllowRetrieveRestart on|off
 KontextServer config <Global> <VirtualHost> <Anonymous> .ftpaccess <Directory>
 Modulmod_core 
 Standardon
 Ab Version0.99.0
 BeschreibungDie "AllowRetrieveRestart" Anweisung erlaubt bzw. verbietet es FTP clients einen abgebrochenden FTP download mittels dem "FTP REST" Befehl wieder aufzunehmen.
Sandardmäßig ist es den Clients erlaubt, abgebrochende Downloads wieder aufzunehmen.
06.00.2003 20:02
Zum Seitenanfang
 
 Name AllowStoreRestart Editieren
 SyntaxAllowStoreRestart on | off
 KontextServer config <Global> <VirtualHost> <Anonymous> .ftpaccess <Directory>
 Modulmod_core 
 Standardoff
 Ab Version0.99.0
 BeschreibungDie "AllowStoreRestart" Anweisung erlaubt bzw. verneint das wieder aufnehmen von abgebrochenen Uploads (mittels der "REST" Anweidung. Standardmäßig ist dieses nicht erlaubt.
Speziell bei anonymen FTP muß man aufpassen, da hier ggf. Clients erlaubt wird, bestehende Files zu vergrössern und sie somit zu zerstören.
06.00.2003 20:02
Zum Seitenanfang
 
 Name AllowUser Editieren
 SyntaxAllowUser user-expression
 Kontext<Limit>
 Modulmod_core 
 Standard
 Ab Version1.1.7, geändert in 1.2.10RC1
 Beschreibung"AllowUser" gibt einen User Ausdruck an, die speziell zugelassen sind im <LIMIT> Block. Das Format ist das gleiche wie bei "AllowGroup". Die zugelassenden User bzw. nicht zugelassenden User (durch ein vorgestelltes "!") sind durch ein Komma (",") getrennt.
Der gesamte Ausdruck wird als logisches "UND" betrachtet, d.h. das alle Ausdrücke zutreffen müssen.

Ab ProFTPD 1.2.10RC1 gibt es noch folgende Ergänzungen:

Dem Befehl können nun noch drei Optionen hinzugefügt werden: "regex", "AND" and "OR". Je nach Option werden die User dann als regulärer Ausdruck, als "UND" Verknüpfung oder als "ODER" Verknüpfung interpretiert.

z.B.
AllowUser regex ^ftp
DenyUser AND dave,bob
AllowGroup OR web,doc
 Beispiel 1
 Beispiel 2
05.00.2004 02:01
Zum Seitenanfang
 
 Name AnonRatio Editieren
 SyntaxAnonRatio foo1 foo2 foo3
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_ratio 
 StandardNone
 Ab Version1.2.0
 BeschreibungThe AnonRatio directive .... INCOMPLETE

Sorry, aber die englische Original Anleitung ist hier nicht vollständig
 Beispiel 1AnonRatio 
06.00.2003 20:02
Zum Seitenanfang
 
 Name AnonRequirePassword Editieren
 SyntaxAnonRequirePassword on|off
 Kontext<Anonymous>
 Modulmod_core 
 Standardoff
 Ab Version0.99.0
 BeschreibungNormalerweise ist bei anonymen Zugriff keine Authenfizierung durch den Client notwendig. Stattdessen wird bei anonymen Zugang erwartet, daß der User seine Email Adresse als Passwort eingibt.
Mit dieser Anweisung hingegen, wird auch bei anonymen FTP ein gültiges Passwort erwartet, was dem Passwort des User entspricht, unter dem der FTP Server läuft. Jedoch mit der "AuthUsingAlias" Authenfizierung kann das Passwort gegen den Login Usernamen überprüft werden. Dieses kann man benutzen, um "Gast" Zugänge zu erzeugen, die sich wie ein funktionierender anonymer Zugang verhalten (und so ein "chrooted" geschütztes File System), jedoch Passwort geschützt sind.
 Beispiel 1<Anonymous ~roger> 
  User    roger 
  Group  other 
  UserAlias proftpd roger 
  AnonRequirePassword on 

# Deny write operations to all directories, underneath root-dir 
# Default is to allow, so we don't need a <Limit> for read operations. 
 <Directory *> 
  <Limit WRITE> 
    DenyAll 
  </Limit> 
 </Directory> 

# Deny all read/write operations in incoming. Because these are command-group 
# limits, we can explicitly permit certain operations which will take precedence 
# over our group limit. 
 <Directory incoming> 
  <Limit READ WRITE>  
   DenyAll 
  </Limit> 

# The only command allowed in incoming is STOR 
# (transfer file from client to server) 
  <Limit STOR>  
   AllowAll 
  </Limit> 
 </Directory> 
</Anonymous>
06.00.2003 20:02
Zum Seitenanfang
 
 Name AnonymousGroup Editieren
 SyntaxAnonymousGroup group-expression
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 Ab Version1.1.3
 BeschreibungDie "AnonymousGroup" gibt einen Gruppen Ausdruck an, in denen alle betreffenden User anonymer Zugang gewährt wird. Der Gruppenausdruck wird als logisches "UND" betrachtet, in denen der User Mitglied sein muss (oder eben kein Mitglied, wenn die Gruppe eine vorgestelltes "!" hat).
Wenn der User dem Ausdruck entspricht, ist kein gültiges Passwort notwenig und eine spezielle anonyme configuration wird erstellt, mit dem Heimatverzeichnis der Users als standard Root Verzeichnis. Sollte zusätzlich eine "DefaultRoot" Anweisung für den User vorhanden sein, wird dieses Verzeichnis stattdessen genommen.
ACHTUNG: eine falsche Configuration kann alle Heimatverzeichnisse für die Welt da draussen bereitstellen !!!
06.00.2003 20:02
Zum Seitenanfang
 
 Name AuthAliasOnly Editieren
 SyntaxAuthAliasOnly on|off
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Standardoff
 Ab Version1.1.3
 BeschreibungDie Anweisung "AuthAliasOnly" beschränkt den Zugang auf mit einem Alias versehende User. Das bedeutet, daß der Usernamen mein Login ist auf einen realen Usernamen gemappt. Dieses geschieht durch die "UserAlias" Anweisungen.
Alle nicht zugewiesenden User werden abgelehnt !
06.00.2003 20:02
Zum Seitenanfang
 
 Name AuthGroupFile Editieren
 SyntaxAuthGroupFile path
 KontextServer config <Global> <VirtualHost>
 Modulmod_unixpw 
 Ab Version1.1.1
 BeschreibungDie "AuthGroupFile" gibt eine alternative "Group" Datei an, die das gleiche Format wie die Standard "/etc/group" Datei hat. Diese Datei wird zur Authentisierung und Gruppenabfrage für Verzeichniss- und Zugangskontrolle verwendet. Die Pfad Angabe sollte den kompletten Pfad enthalten.
Die "AuthGroupFile" kann auch in pro VirtualHost angegeben werden, so daß jeder virtueller FTP Server seine eigene Benutzerdatenbank hat (in Verbindung mit "AuthUserFile".
Die Datei muss NICHT innerhalb eines chroot(ed) Verzeichnisse liegem, da die Datei bereits beim Verbindungsaufbau geöffnet wird.
06.00.2003 20:02
Zum Seitenanfang
 
 Name AuthPAM Editieren
 SyntaxAuthPAM on|off
 KontextServer config <Global> <VirtualHost>
 Modulmod_pam 
 Standardon
 Ab Version1.2.0rc1
 BeschreibungDiese Richtlinie stellt fest, ob PAM als Authentisierungsmethode von ProFTPD verwendet wird. Die Authorisierung durch PAM ist bei proftpd standard als primärer Authentisierungs Mechanismus.
PAM ist unter Linux die Standard Authentisierung
06.00.2003 20:02
Zum Seitenanfang
 
 Name AuthPAMConfig Editieren
 SyntaxAuthPAMConfig service
 KontextServer config <Global> <VirtualHost>
 Modulmod_pam 
 Standardftp
 Ab Version0.99.0
 Beschreibunghis directive allows you to specify the PAM service name used in authentication. PAM allows you to specify a service name to use when authenticating. This allows you to configure different PAM service names to be used for different virtual hosts.
The directive was renamed from PAMConfig post 1.2.0 pre10
 Beispiel 1# Virtual host foobar authenticates differently than the rest

AuthPAMConfig foobar

# This assumes, that you have a PAM service named foobar
# configured in your /etc/pam.conf file or /etc/pam.d directory. 
06.00.2003 20:02
Zum Seitenanfang
 
 Name AuthUserFile Editieren
 SyntaxAuthUserFile path
 KontextServer config <Global> <VirtualHost>
 Modulmod_unixpw 
 Standard
 Ab Version1.1.1
 Beschreibung"AuthUserFile" definiert eine alternatives "passwd" Datei, die das gleiche Format wie das normale "/etc/passwd" file hat. Diese Datei kann dann zur Authentifizierung der User herangezogeb werden. "AuthUserFile" kann pe virtuellen Host angegeben werden, so dass fuer jeden viruellen Host eine Users Verwaltung moeglich ist. Ausserdem kann so die Userverwaltung fuer FTP relativ einfach von den normalen Systemusern getrennt werden.

Das File muss NICHT innerhalb der chroot()ed directory Verzeichnisstruktur liegen, da es waehrend der gesamten Verbindungszeit offen bliebt.
 Beispiel 1
 Beispiel 2
02.00.2004 03:01
Zum Seitenanfang
 
 Name AuthUsingAlias Editieren
 SyntaxAuthUsingAlias on|off
 Kontext<Anonymous>
 Modulmod_core 
 Standardoff
 Ab Version1.2.0pre9
 BeschreibungNormalerweise wird, wenn die "AnonRequirePassword" Anweisung verwendet wird, wird die Authentisierung mit dem Passwort vollzogen, unter dem der Server läuft. Unter gewissen umständen kann es jedoch notwendig sein, die Authentisierung mit dem Login Usernamen und Passwort durchzuführen.
 Beispiel 1Ein Beispiel für einen anonymen Zugang mit AuthUsingAlias 

# Standard "NUR LESEN" Konfiguration 
<Anonymous /home/ftp> 
  UserAlias anonymous nobody 
  UserAlias ftp nobody 
  AuthAliasOnly on 
  <Limit WRITE> 
   DenyAll 
  </Limit> 
</Anonymous> 

# Voller "Lesen/Schreiben" Zugriff für bestimte User 
<Anonymous /home/ftp> 
  AnonRequirePassword on 
  AuthAliasOnly on 
  AuthUsingAlias on 
# Die Liste aller authentisierten Benutzer 
# User/Passwort Abfrage ist für jeden User, nicht für die Passwort der Uid, 
# unter dem der Server läuft ('nobody' in diesem Beispiel) 
  UserAlias fred nobody 
  UserAlias joe nobody 
  <Limit ALL> 
   AllowAll 
  </Limit> 
</Anonymous>
06.00.2003 20:02
Zum Seitenanfang
 
 Name Bind Editieren
 SyntaxBind address
 KontextServer config <VirtualHost>
 Modulmod_core 
 Ab Version1.1.6
 BeschreibungMit der "Bind" Anweisung können zusätzliche IP Adressen an einem Haupt- oder Virtuellen Server angebunden werden. Bei mehreren IP Adressen können auch mehrere "Bind" Anweisungen verwendet werden. Die Adresse muss entweder ein vollständiger DNS Name oder eine gültige IP4 Adresse sein.
Eingehende Verbindung werden dann von dem Server, in dessen Abschnitt die Bind Anweisung verwendet wurde, beantwortet.
Außerdem, wenn "SocketBindTight" ist auf "on", dann wird eine zusätzliche "Listening" Verbindung für jede Adresse erstellt
06.00.2003 20:02
Zum Seitenanfang
 
 Name ByteRatioErrMsg Editieren
 SyntaxByteRatioErrMsg foo1 foo2 foo3
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_ratio 
 Ab Version1.2.0
 BeschreibungThe ByteRatioErrMsg directive .... INCOMPLETE

Sorry, aber die englische Original Anleitung ist hier nicht vollständig

 Beispiel 1ByteRatioErrMsg 
06.00.2003 20:02
Zum Seitenanfang
 
 Name CDPath Editieren
 SyntaxCDPath directory
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab Version1.2.0pre2
 BeschreibungHiermit werden Such-Verzeichnisse bestimmt, in denen proftpd nachschaut, wenn man Verzeichnisse wechselt.
 Beispiel 1CDPath /net/mp3/musik 
CDPath /var/ 
# Angenommen in /net/mp3/musik liegt ein Verzeichnis "/U2", 
# dann kann der User mittels "cd U2" direkt in das Verzeichnis 
# wechseln  (vorausgesetzt die Rechte stimmen), egal wo im 
# Verzeichnisbaum er sich gerade befindet. Quasi als Abkürzung...
06.00.2003 20:02
Zum Seitenanfang
 
 Name Class Editieren
 SyntaxClass "name" limit|regex|ip value
 KontextServer config <VirtualHost>
 Modulmod_core 
 Ab Version1.2.0pre9
 BeschreibungHiermit werden die sogeannten Klassen kontrolliert. Dieses erlaubt IP Adressen einer bestimmte Klasse zuzuweisen. Jede Klasse hat eine maximale Anzahl von Verbindungen.
Die Angabe "limit" setzt die maximale Anzahl von Verbindungen für eine Klasse.
Mit der Angabe "regex" kann ein Domain angegeben werden, mit der Angabe IP kann eine IP/Netmaske angegeben werden.
Die Standard Klasse ist als "default" bezeichnet.
 Beispiel 1Classes on 
Class local limit 100 
Class default limit 10 
Class local regex .*foo.com 
Class local ip 172.16.1.0/24 
# Dieses erstellt zwei Klassen (local & default), wobei "local" die IP's # von 
#"*.foo.com" und "172.16.1.*" beinhaltet. Für "default" stehen maximal 
#10 gleichzeitige Verbingen bereit, für "local" 100.
06.00.2003 20:02
Zum Seitenanfang
 
 Name Classes Editieren
 SyntaxClasses on | off
 KontextServer config <VirtualHost>
 Modulmod_core 
 Standardoff
 Ab Version1.2.0pre9
 BeschreibungAktiviert den Klassen basierten Zugang
06.00.2003 20:02
Zum Seitenanfang
 
 Name CommandBufferSize Editieren
 SyntaxCommandBufferSize size
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 Ab Version1.2.0pre7
 BeschreibungDie "CommandBufferSize" Anweisung kontrolliert die maximale Befehlslänge, die zum Server gesendet werde kann. Durch diese Kontrolle können u.a. verschiede Denial of Service (DOS) Attacken verhindert werden
Anmerkung: in den 1.2.x Versionen ist außerdem die maximale Befehlslänge im Quellcode auf 1 KB limitiert. Dieses entspricht nicht den RFC's, wirft jedoch im normalen Gebrauch kein Problem auf. Dieses wird erst in der 1.3.x Reihe beseitigt.
06.00.2003 20:02
Zum Seitenanfang
 
 Name CwdRatioMsg Editieren
 SyntaxCwdRatioMsg foo1 foo2 foo3
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_ratio 
 Ab Version1.2.0
 BeschreibungThe CwdRatioMsg directive .... INCOMPLETE

Sorry, aber die englische Original Anleitung ist hier nicht vollständig
 Beispiel 1CwdRatioMsg 
06.00.2003 20:02
Zum Seitenanfang
 
 Name DefaultChdir Editieren
 SyntaxDefaultChdir directory [group-expression]
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_auth 
 Standard~
 Ab Version1.2.0pre2
 BeschreibungGibt an, in welchem Verzeichnis sich der User nach dem Login befindet. Standardmäßig ist es das Heimatverzeichnis des Users. Das angebene Verhältnis kann relativ zum Userverzeichnis angegeben werden.
Anmerkung: Wenn das angebene Verzeichnis nicht verfügbar ist, kann der User sich nicht einloggen.
06.00.2003 20:02
Zum Seitenanfang
 
 Name DefaultRoot Editieren
 SyntaxDefaultRoot directory [group-expression]
 KontextServer config <Global> <VirtualHost>
 Modulmod_auth 
 Standard/
 Ab Version0.99.0pl7
 BeschreibungDie "DefaultRoot" Anweisung bestimmt das standard Root Verzeichnis für einen User bei dem Login. Wenn "Default Root" auf ein anderes Verzeichnis als "/" verweist, wird unmittelbar nach dem erfolgten Einloogen ein "chroot" durchgeführt. So kann ein Benutzer vom übrigen Dateisystem isoliert werden.
Das genannte Verzeichnis muß mit "/" beginnen oder kann den Platzhalter "~" enthalten, der für das Heimatverzeichnis des Users steht. Dieses kann auch ein weiteres Unterverzeichnis enthalten, wie z.B. "~/html".
Sollte das "DefaultRoot" Verzeichnis auf ein Verzeichnis verweisen, daß für den User nicht zugänglich ist, wird er auf das aktuelle Arbeitsverzeichnis gesetzt und nicht auf das normale Homeverzeichnis.
"DefaultRoot" kann nicht im Anonymen Anweisungsblock verwendet werden, da er hierfür eine spezielle Anweisung gibt.
Die optionale Gruppenangabe kann dazu benutzt werden, "DefaultRoot" auf eine oder mehrere Gruppen zu beschränken. Der Ausdruck hat folgendes Format: [!]group-name1[,[!]group- name2[,...]]. Der Ausdruck wird als logische "UND"-Verknüpfung abgearbeitet, so jeder Ausdruck muss WAHR ergeben, um die "DefaultRoot" Anweisung zu gestatten. Die Vorzeichen "!" negiert die Gruppenzugehörigkeit. Achtung: Grundsätzlich ist dieses keine 100% Sicherheit, da es Wege geben kann, als User aus diesem "root" auszubrechen.
 Beispiel 1ServerName "A test ProFTPD Server" 
ServerType inetd 
User ftp 
Group ftp 
# Hiermit wird nun der User direkt in sein Heimatverzeichnis "gesperrt" 
# Anschliessend kann der User keine höheren Verzeichnisse sehen 
# Aufgrund der Gruppenangabe, nur Benutzer der Gruppe "user", jedoch 
# nicht User der Gruppe "staff" werden in das Heimatverzeichnis gesperrt 
DefaultRoot ~ users,!staff
06.00.2003 20:02
Zum Seitenanfang
 
 Name DefaultServer Editieren
 SyntaxDefaultServer on|off
 KontextServer config <VirtualHost>
 Modulmod_core 
 Standardoff
 Ab Version0.99.0pl6
 BeschreibungDie "DefaultServer" Anweisung gibt an, welche Server Konfiguration verwendet wird, wenn eine ankommende Verbindung für eine IP Adresse bestimmt ist, die weder die Primäre IP Adresse vom Rechner ist, noch in einem <VirtualHost> Block angegeben ist.
Normalerweise wird solchen unbekannten Verbindungen eine "no server available to service your request" Nachricht geschickt und die Verbindung unterbrochen.
Wenn "DefaultServer" gesetzt ist (sei es in der normalen Server konfiguration oder in einem virtuellen Server), so werden alle unbekannten Verbindung von diesem Standard Server bearbeitet. Es kann nur ein Server als Default gesetzt werden
06.00.2003 20:02
Zum Seitenanfang
 
 Name DefaultTransferMode Editieren
 SyntaxDefaultTransferMode ascii|binary
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 Standardascii
 Ab Version1.2.0pre9
 BeschreibungDie "DefaultTransferMode" Anweisung stellt die Art des Standardübertragung vom Server ein. Standardmäßig wid CR/LF (also ASCII) benutzt.
06.00.2003 20:02
Zum Seitenanfang
 
 Name DeferWelcome Editieren
 SyntaxDeferWelcome on|off
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 Standardoff
 Ab Version0.99.0
 BeschreibungDie "DeferWelcome" Direktive verzögert für einen Master oder Virtuellen Server die Übermittlung vom Server Namen und Adressen, bis der Client sich erfolgreich angemeldet hat. Ist diese Direktive aktiv, wird die anfämgliche Willkommensnachricht keine Informationen über Server etc. preisgeben.
 Beispiel 1
 Beispiel 2
01.00.2004 23:01
Zum Seitenanfang
 
 Name DeleteAbortedStores Editieren
 SyntaxDeleteAbortedStores on|off
 KontextServer config <Global> <VirtualHost> <Anonymous> .ftpaccess <Directory>
 Modulmod_core 
 Standardoff
 Ab Version1.2.0rc3
 BeschreibungDie "DeleteAbortedStores" Anweisung stellt ein, ob PROFTPD abgebrochende Uploads wieder löschen soll
06.00.2003 20:02
Zum Seitenanfang
 
 Name Deny Editieren
 SyntaxDeny [ Deny ["from"] "all"|"none"|host|network[,host|network[,...]]]
 Kontext<Limit>
 Modulmod_core 
 Standard
 Ab Version0.99.0pl6
 BeschreibungDie "DENY" Anweidung wird benutzt, um Server bzw. Netzwerke ausdruecklich den Zugang innerhalb einem bestimmten <LIMIT> Block zu verweigern. Ausserdem gibt es die Schlüsselwörter "all" oder "none", die entweder ALLE oder KEINE Hosts sperren. Für mehr Informationen über die Syntax, siehe bitte "Allow" und "Order". Durch Angabe von "!" kann die Angabe negiert werden, so kann man z.B. einen grossen Bereich von IPs sperren, einen einzelnen Host z.B. erlauben.
 Beispiel 1Zugang nur von gewissen IPs erlauben

<Limit LOGIN>
Order allow,deny
Allow from 128.44.26.,128.44.26.,myhost.mydomain.edu,.trusted-domain.org
Deny from all
</Limit>
 Beispiel 2
02.00.2004 04:01
Zum Seitenanfang
 
 Name DenyAll Editieren
 SyntaxDenyAll
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_core 
 Standard
 Ab Version0.99.0
 BeschreibungDie "DenyAll" Anweisung ist analog zu der Kombination:

order deny,allow
deny from all

mit der Ausnahme, das "DenyAll" eine höhere Prioriät besitzt. "DenyAll" bietet eine einfache und zuverlässige Methode den gesamten Zugang zu einem bestimmten Verzeichnis, anonymen FTP oder einem LIMIT Block zu verweigern. Aufgrund der unterschiedlichen Prioritäten sollte diese Anweisung jedoch nicht mit den normalen "Order"/"Deny" Befehlen verwendet werden. Die "DenyAll" Anweisung kann jedoch zu einem nachgeordneten Verzeichnis durch "AllowAll" wieder aufgehoben werden.
 Beispiel 1
 Beispiel 2
02.00.2004 04:01
Zum Seitenanfang
 
 Name DenyFilter Editieren
 SyntaxDenyFilter regular-expression
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab Version1.2.0pre7
 BeschreibungÄhnlich wie die Anweisung "AllowFilter", gibt "DenyFiler" eine regulären Ausdruck an, der nicht als Kommando gesendet werden darf. Wird der reguläre Ausdruck gefunden, so wird ein "Forbidden Command" an den Client gesendet. Dieses ist u.a. sinnvoll um gewisse Befehlskombinationen zu verbieten.
 Beispiel 1# keine Befehle mit % erlauben 
DenyFilter "%"
06.00.2003 20:02
Zum Seitenanfang
 
 Name DenyGroup Editieren
 SyntaxDenyGroup group-expression
 Kontext<Limit>
 Modulmod_core 
 Standard
 Ab Version1.1.1, geändert in 1.2.10 RC1
 BeschreibungDie "DenyGroup" Anweisung definiert einen Gruppen Ausdruck, dessen Gruppe innerhalb einer <LIMIT> Anweisung die Ausfuehrung gewisser FTP Befehle verboten wird. Der Gruppen Ausdruck hat das gleiche Format wie in der DefaultRoot Anweisung, d.h. das eine Liste von Gruppen per KOMMA getrennt uebergeben werden kann (bzw. mit vorangestellten "!" das diese Gruppe nicht enthalten sein darf). Diese Liste wird als logisches UND betrachtet, das heisst ALLE Gruppenangaben muessen erfuellt sein. Um eine "ODER " Funktion zu erreichen koennen einfach mehrere "DenyGroup" Anweisungen uebergeben werden.

See Also: AllowGroup, AllowUser, DenyUser


Ab ProFTPD 1.2.10RC1 gibt es noch folgende Ergänzungen:

Dem Befehl können nun noch drei Optionen hinzugefügt werden: "regex", "AND" and "OR". Je nach Option werden die Gruppen dann als regulärer Ausdruck, als "UND" Verknüpfung oder als "ODER" Verknüpfung interpretiert.

z.B.
AllowUser regex ^ftp
DenyUser AND dave,bob
AllowGroup OR web,doc



 Beispiel 1
 Beispiel 2
05.00.2004 02:01
Zum Seitenanfang
 
 Name DenyUser Editieren
 SyntaxDenyUser user-expression
 Kontext<Limit>
 Modulmod_core 
 Standard
 Ab Version1.1.7a, geändert in 1.2.10 RC1
 BeschreibungDie "DenyUser Anweisung definiert einen User Ausdruck, dessen User innerhalb einer <LIMIT> Anweisung die Ausfuehrung gewisser FTP Befehle verboten wird. Es koennen mehrer User per Komma getrennt übergeben werden. Diese Liste wird als logisches ODER betrachtet, das heisst das jeder Username dieser Liste reicht zum verneinen.

See Also: AllowUser, DenyGroup, AllowGroup

Ab ProFTPD 1.2.10RC1 gibt es noch folgende Ergänzungen:

Dem Befehl können nun noch drei Optionen hinzugefügt werden: "regex", "AND" and "OR". Je nach Option werden die User dann als regulärer Ausdruck, als "UND" Verknüpfung oder als "ODER" Verknüpfung interpretiert.

z.B.
AllowUser regex ^ftp
DenyUser AND dave,bob
AllowGroup OR web,doc
 Beispiel 1
 Beispiel 2
05.00.2004 02:01
Zum Seitenanfang
 
 Name DirFakeGroup Editieren
 SyntaxDirFakeGroup On|Off [groupname]
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_ls 
 Standardoff
 Ab Version1.1.5
 Beschreibung"DirFakeGroup" und die dazugehörene Anweisung "DirFakeUser" können dazu benutzt werden, die waren Owner (Benutzer und Grupper) einer Datei zu verstecken. Wenn kein weiteres Parameter übergeben wird, dann ist die Gruppe bzw. der Benutzer "ftp". Alternativ kann ein Gruppenname bzw. Benutzername übergeben werden. Dieser ist rein kosmetisch und muss nicht im System existieren.
Die wahren Zugriffsrechte im System werden nicht nicht beeinflusst.
06.00.2003 20:02
Zum Seitenanfang
 
 Name DirFakeMode Editieren
 SyntaxDirFakeMode octal-mode
 KontextServer config <Global> <VirtualHost> <Anonymous> <Directory>
 Modulmod_ls 
 Ab Version1.1.6
 BeschreibungDie "DirFakeMode" Anweisung bestimmt, mit welchen Rechte alle Dateien und Verzeichnisse angezeigt werden. Für jeden Teil der Zugriffsreche (Benutzer, Gruppe, Andere) kann ein Dummy angeben werden. Die Ausführungsberechtigung für Verzeichnisse wird gesetzt, sofern die Leseberechtigung mit dieser Anweisung übergeben wird.
Auch diese Anweisung ist wie die anderen Fake Anweisungen rein kosmetisch. Die wahren Zugangsbeschränkungen werden hiervon nicht berührt.
 Beispiel 1 DirFakeMode 0640

Will result in:

  -rw-r----- ... arbitrary.file
  drwxr-x--- ... arbitrary.directory
06.00.2003 20:02
Zum Seitenanfang
 
 Name DirFakeUser Editieren
 SyntaxDirFakeUser On|Off [username]
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_ls 
 Standardoff
 Ab Version1.1.5
 Beschreibung"DirFakeGroup" und die dazugehörene Anweisung "DirFakeUser" können dazu benutzt werden, die waren Owner (Benutzer und Grupper) einer Datei zu verstecken. Wenn kein weiteres Parameter übergeben wird, dann ist die Gruppe bzw. der Benutzer "ftp". Alternativ kann ein Gruppenname bzw. Benutzername übergeben werden. Dieser ist rein kosmetisch und muss nicht im System existieren.
Die wahren Zugriffsrechte im System werden nicht nicht beeinflusst.
06.00.2003 20:02
Zum Seitenanfang
 
 Name DisplayConnect Editieren
 SyntaxDisplayConnect filename
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 Ab Version1.2.0pre2
 BeschreibungDie "DisplayConnect" Anweisung bestimmt ein ASCII Text File, daß dem User angzeigt wird, nachdem er zum Server connected hat, jedoch bevor er einloggt.
Der Filenamen kann entweder relativ oder absolut angeben werden. Im Falle einer relativen Angabe, wird die Datei zuerst im Homeverzeichnis der Benutzer gesucht, der der Owner vom PROFTPD Server ist. Da dieses zu Unklarheiten führen kann, wird empfohlen mit absoluten Pfadangaben zu arbeiten.
Sollte das File nicht gefunden wird, wird kein Fehler angezeigt und auch kein Fehler protokolliert !
06.00.2003 20:02
Zum Seitenanfang
 
 Name DisplayFirstChdir Editieren
 SyntaxDisplayFirstChdir filename
 KontextServer config <Global> <VirtualHost> <Anonymous> <Directory>
 Modulmod_core 
 Ab Version0.99.0pl10
 BeschreibungDie "DisplayFirstChdir" Anweisung gibt eine ASCII Text Datei an, die dem User beim ersten Wechsel in ein Verzeichnis (mit CDW) per FTP Verbindung angezeigt wird. Die Datei wird außerdem angezeigt, wenn PROFTPD erkennt, daß das Verzeichnis seit dem letzten Besuch geändert wurde.
Wenn der Filenamen relativ angeben wurde, wird zuerst das Verzeichnis durchsucht, in das der User wechselt.
Bei anonymen Zugang, muß das Text File innerhalb der chroot(ed) Umgebung sein.
Wenn das File nicht gefunden wird, wird keine Fehlermeldung ausgeben bzw. protokolliert.

"DisplayFirstChdir", "DisplayConnect", "DisplayLogin", "DisplayQuit" unterstützen folgende Platzhalter ("Magic cookies"), die während der Anzeige angepaßt werden:

%T aktuelle Zeit
%F verfügbarer Platz auf dem Dateisystem
%C aktuelles Verzeichnis
%R Remote Rechner Name
%L Lokaler Rechner Name
%u Benutzername, der vom ident Protokoll übergeben wurde
%U Benutzername, der beim Login übergeben wurde
%M maximale Anzahl von Verbindungen
%N aktuelle Anzahl von Verbindungen
%E Email Adresse vom Admin
%x der Name der Benutzer Klasse
%y aktuelle Anzahl der Verbindung in der Klasse des Users
%z maximale Anzahl der Verbindung in der Klasse des Users

Nicht alle Platzhalter sind unbedingt sinnvoll. Z.B. %u, wenn ident Auflösungen ausgeschaltet sind
06.00.2003 20:02
Zum Seitenanfang
 
 Name DisplayGoAway Editieren
 SyntaxDisplayGoAway filename
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab Version1.2.0pre8
 BeschreibungDie "DisplayGoAway" Anweisung gibt eine ASCII Text Datei an, die dem User angezeigt wird, wenn von seiner Klasse zu viele Benutzer eingeloggt sind und sein Login abgelehnt wird.

"DisplayGoAway" unterstützt die gleichen Platzhalter ("Magic Cookies") wie die "DisplayFirstChdir" Anweisung.

%T aktuelle Zeit
%F verfügbarer Platz auf dem Dateisystem
%C aktuelles Verzeichnis
%R Remote Rechner Name
%L Lokaler Rechner Name
%u Benutzername, der vom ident Protokoll übergeben wurde
%U Benutzername, der beim Login übergeben wurde
%M maximale Anzahl von Verbindungen
%N aktuelle Anzahl von Verbindungen
%E Email Adresse vom Admin
%x der Name der Benutzer Klasse
%y aktuelle Anzahl der Verbindung in der Klasse des Users
%z maximale Anzahl der Verbindung in der Klasse des Users

Nicht alle Platzhalter sind unbedingt sinnvoll. Z.B. %u, wenn ident Auflösungen ausgeschaltet sind
06.00.2003 20:02
Zum Seitenanfang
 
 Name DisplayLogin Editieren
 SyntaxDisplayLogin filename
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab Version0.99.0
 BeschreibungDie "DisplayLogin" Richtlinie benennt ein ASCII-Text File, das der Benutzer sofort nach seinem Login angezeigt bekommt. Der Filenamen kann entwerder absolut oder relativ angegeben werden.
Im Falle eines relativen Filenamen wird das erste Verzeichnis durchsucht, in dem sich der Benutzer nach dem Login befindet. Dieses ist überlicherweise das Home Verzeichnis für User oder das Anonyme Root für anonymen Login.

ACHTUNG: bei chroot(ed) Verzeichnissen, bei denen also der User in ein Verzeichnis eingesperrt ist, muss das Textfile innerhalb dieses Verzeichnis erreichbar sein. Bei unterschiedlichen Verzeichnisse (z.B. User in /home, Gast in /net) muß man ggf. mit Links arbeiten.

Wenn das File nicht gefunden wird, dann wird nichts anzeigt, auch keine Fehlermeldung wird geloggt.

"DisplayLogin" unterstützt die gleichen Platzhalter ("magic cookies") wie die "DisplayFirstChDir" Anweisung.

%F verfügbarer Platz auf dem Dateisystem
%C aktuelles Verzeichnis
%R Remote Rechner Name
%L Lokaler Rechner Name
%u Benutzername, der vom ident Protokoll übergeben wurde
%U Benutzername, der beim Login übergeben wurde
%M maximale Anzahl von Verbindungen
%N aktuelle Anzahl von Verbindungen
%E Email Adresse vom Admin
%x der Name der Benutzer Klasse
%y aktuelle Anzahl der Verbindung in der Klasse des Users
%z maximale Anzahl der Verbindung in der Klasse des Users

Nicht alle Platzhalter sind unbedingt sinnvoll. Z.B. %u, wenn ident Auflösungen ausgeschaltet sind
06.00.2003 20:02
Zum Seitenanfang
 
 Name DisplayQuit Editieren
 SyntaxDisplayQuit filename
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab Version1.2.0pre8
 BeschreibungDie "DisplayQuitConfigures" gibt ein ASCII Text File an, das dem Benutzer angezeigt wird, wenn sie die Verbindung beenden. Die Angabe kann wie immer relativ oder absolut erfolgen. Bei relativer Angabe wird die Datei im Verzeichnis gesucht, in dem sich der User gerade befindet. Daher sind absolute Pfadangaben im Normalfall zu bevorzugen. Für Chroot(ed) Systeme, muß eine absolute Pfadanangabe innerhalb der erreichbaren Systems sein. Sollte die Datei nicht zugegriffen werden können, wird keine Fehlermeldung angezeigt oder Protokolliert. %T aktuelle Zeit %F verfügbarer Platz auf dem Dateisystem %C aktuelles Verzeichnis %R Remote Rechner Name %L Lokaler Rechner Name %u Benutzername, der vom ident Protokoll übergeben wurde %U Benutzername, der beim Login übergeben wurde %M maximale Anzahl von Verbindungen %N aktuelle Anzahl von Verbindungen %E Email Adresse vom Admin %x der Name der Benutzer Klasse %y aktuelle Anzahl der Verbindung in der Klasse des Users %z maximale Anzahl der Verbindung in der Klasse des Users nicht alle Platzhalter sind unbedingt sinnvoll. Z.B. %u, wenn ident Auflösungen ausgeschaltet sind
06.00.2003 20:02
Zum Seitenanfang
 
 Name DisplayReadme Editieren
 SyntaxDisplayReadme filename or pattern
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_readme 
 Standard
 Ab Version1.2.0pre8
 BeschreibungDie "DisplayReadme" Anweisung unterrichtet den User von der letzten Änderung einer (oder mehrerer) Dateien.
Pro Konfiguration darf nur eine "DisplayReadme" Anweisung benutzt werden.
 Beispiel 1DisplayReadme README 

ergibt: 
Please read the File README it was kast modified on SUN Oct 17 10:36:14 1999 - 0 days ago 
 Beispiel 2DisplayReadmePattern README* 

ergibt: 
Please read the file README it was last modified on Tue Jan 25 04:47:48 2000 - 0 days ago 
Please read the file README.first it was last modified on Tue Jan 25 04:48:04 2000 - 0 days ago
07.00.2003 19:02
Zum Seitenanfang
 
 Name ExtendedLog Editieren
 SyntaxExtendedLog [ filename [[command-classes] format-nickname]]
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_log 
 Ab Version1.1.6pl1
 BeschreibungDie "ExtendedLog" Anweisung erlaubt die Erstellung von individuellen Logfiles, entweder Global oder per Virtuellen Host.
Der Dateiname muss einen absoluten Pfad enthalten, an dem proftpd die Logs anhängt bzw. erstellt.

Es können mehrere Logfiles (sinnvollerweise mit anderen Anweisungen) erstellt werden. Außerdem, kann mittels des "command-classes" Arguments angegeben werden, welche Art von Befehlen mit geloggt werden. Wenn keine Befehls Klasse angegeben ist, werden standardmäßig alle Befehle geloggt (Passwörter sind versteckt). Die Befehls Klassen werden durch Komma (kein (!!) Leerzeichen) getrennt.

Folgende Befehls Klassen sind zulässig:
NONE - keine Befehle
AUTH - Authenfizierungs Befehle (USER, PASS)
INFO - Informelle Befehle (PWD, SYST, usw.)
DIRS - Verzeichnis Befehle (LIST, CWD, MKD, usw.)
READ - Lesen (RETR)
WRITE - Schreiben (erstellen,löschen,schreiben von Verzeichnisse und Dateien)
MISC - Verschiedene Befehle (SITE, usw)
ALL - Alle Befehle (STANDARD !)

Wenn eine Format Beschreibung übergeben wird, wird dieses vordefiniertes Format übernommen (erstellt durch LogFormat). Ansonsten wird das Standard Format von "%h %l %u %t %r %s %b" benutzt.
siehe Außerdem: LogFormat, TransferLog
 Beispiel 1# alle Lesende und Schreibende Zugriffe zu /var/log/ftp.log
ExtendedLog /var/log/ftp.log read,write 
06.00.2003 20:02
Zum Seitenanfang
 
 Name FileRatioErrMsg Editieren
 SyntaxFileRatioErrMsg foo1 foo2 foo3
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_ratio 
 Ab Version1.2.0
 BeschreibungThe FileRatioErrMsg directive .... INCOMPLETE
 Beispiel 1FileRatioErrMsg
06.00.2003 20:02
Zum Seitenanfang
 
 Name FooBarDirective Editieren
 SyntaxFooBarDirective thingy
 KontextServer config <Anonymous> <Limit>
 Modulmod_sample 
 Ab Version1.2.0
 BeschreibungDie "FooBarDirective" hat keine Aufgabe und ist nur als Programmierbeispiel gedacht
06.00.2003 20:02
Zum Seitenanfang
 
 Name Group Editieren
 SyntaxGroup groupid
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab Version0.99.0
 BeschreibungDie "Group" Anweisung gibt an, in welcher gruppe der "PROFTPD" Server läuft. Siehe USER für mehr Details
06.00.2003 20:02
Zum Seitenanfang
 
 Name GroupOwner Editieren
 SyntaxGroupOwner groupname
 Kontext<Anonymous> .ftpaccess <Directory>
 Modulmod_core 
 Ab Version0.99.0
 BeschreibungThe GroupOwner directive configures which group all newly created directories and files will be owned by, within the context that GroupOwner is applied to. The group ID of groupname cannot be 0. Note that GroupOwner cannot be used to override the host OS/file system user/group paradigm. If the current user is not a member of the specified group, new files and directories will not be able to be chown()ed to the GroupOwner group. If this happens, file STOR (send file from client to server) and MKD (mkdir) operations will succeed normally, however the new directory entries will be owned by the current user's default group (a warning message is also logged) instead of by the desired group. If you also use UserOwner in the same context, this restriction is lifted.
06.00.2003 20:02
Zum Seitenanfang
 
 Name GroupPassword Editieren
 SyntaxGroupPassword groupid hashed-password
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab Version0.99.0pl5
 BeschreibungThe GroupPassword directive creates a special "group" password which allows all users in the specified group to authenticate using a single password. The group/password supplied is only effective inside the context to which GroupPassword is applied. The hashed-password argument is a standard cleartext password which has been passed through the standard unix crypt() library function. Extreme care should be taken when using GroupPassword, as serious security problems may arise if group membership is not carefully controlled.
See Also: UserPassword
06.00.2003 20:02
Zum Seitenanfang
 
 Name GroupRatio Editieren
 SyntaxGroupRatio foo1 foo2 foo3
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_ratio 
 Ab Version1.2.0
 BeschreibungThe GroupRatio directive .... INCOMPLETE
06.00.2003 20:02
Zum Seitenanfang
 
 Name HideGroup Editieren
 SyntaxHideGroup groupid
 Kontext<Anonymous> <Directory>
 Modulmod_core 
 Ab Version0.99.0
 BeschreibungDie "HideGroup" Anweisung gibt innerhalb eines <Directory> oder <Anonymous> Block an, daß alle Verzeichnis Einträge der angegebenen Gruppe versteckt werden sollen, außer daß der aktuell einloggte User selbst zu der Gruppe gehört. Außerdem: Es werden zwar versteckte Dateien per "List" oder "Nlst" nicht angezeigt, können jedoch mittels anderer FTP Befehle (CWD, DELE, RETR, usw.) bearbeitet werden. Dieses Verhalten kann mittels der "IgnoreHidden" Anweisung geändert werden. Siehe: HideGroup, HideNoAccess, IgnoreHidden
06.00.2003 20:02
Zum Seitenanfang
 
 Name HideNoAccess Editieren
 SyntaxHideNoAccess on|off
 Kontext<Anonymous> <Directory>
 Modulmod_core 
 Ab Version0.99.0
 BeschreibungDie "HideNoAccess" Anweisung stellt innerhalb eines <Directory> oder <Anonymous> Blocks ein, daß alle eine Einträge in einem Verzeichnis nicht gelistet werden (per LIST oder NLST FTP Befehl), zu denen der aktuell eingeloggte User keinen Zugang hat. Die normalen Unix Zugangsbeschränkungen greifen weiterhin, sollte der User auf eine nicht angezeigten Eintrag blind zugreifen, würde er eine "Permission Denied" Fehlermeldung erhallten. In Verbindung mit der "IgnoreHidden" Anweisung können die Einträge vollständig unsichtbar für alle FTP Befehle gemacht werden. Außerdem: HideUser, HideGroup, IgnoreHidden
06.00.2003 20:02
Zum Seitenanfang
 
 Name HideUser Editieren
 SyntaxHideUser userid
 Kontext<Anonymous> <Directory>
 Modulmod_core 
 Ab Version0.99.0
 BeschreibungDie "HideUser" Anweisung gibt innerhalb eines <Directory> oder <Anonymous> Block an, daß alle Verzeichnis Einträge des angegebenen Users versteckt werden sollen, außer daß der User selbst eingeloggt ist. Außerdem: Es werden zwar versteckte Dateien per "List" oder "Nlst" nicht angezeigt, können jedoch mittels anderer FTP Befehle (CWD, DELE, RETR, usw.) bearbeitet werden. Dieses Verhalten kann mittels der "IgnoreHidden" Anweisung geändert werden. Siehe: HideGroup, HideNoAccess, IgnoreHidden
06.00.2003 20:02
Zum Seitenanfang
 
 Name HostRatio Editieren
 SyntaxHostRatio foo1 foo2 foo3
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_ratio 
 Ab Version0.99.0
 BeschreibungThe HostRatio directive .... INCOMPLETE
06.00.2003 20:02
Zum Seitenanfang
 
 Name HostsAllowSyslogLevel Editieren
 SyntaxHostsAllowSyslogLevel facility-level
 KontextServer config <VirtualHost> <Anonymous>
 Modulmod_wrap 
 Ab Version1.2.0
 BeschreibungProftpd can log when a connection is allowed as the result of a rule in the file specified in UseHostsAllowFile to the Unix syslog mechanism. A discussion on the facility levels which can be used is given in the SyslogFacility directive.
See Also: HostsDenySyslogLevel
 Beispiel 1HostsAllowSyslogLevel local3
06.00.2003 20:02
Zum Seitenanfang
 
 Name HostsDenySyslogLevel Editieren
 SyntaxHostsDenySyslogLevel facility-level
 KontextServer config <VirtualHost> <Anonymous>
 Modulmod_wrap 
 Ab Version1.2.0
 BeschreibungProftpd can log when a connection is rejected as the result of a rule in the file specified in UseHostsAllowFile to the Unix syslog mechanism. A discussion on the facility levels which can be used is given in the SyslogFacility directive
06.00.2003 20:02
Zum Seitenanfang
 
 Name IdentLookups Editieren
 SyntaxIdentLookups on|off
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 Standardon
 Ab Version1.1.5
 BeschreibungNormally, when a client initially connects to proftpd, the ident protocol (RFC1413) is used to attempt to identify the remote username. This can be controlled via the IdentLookups directive.
06.00.2003 20:02
Zum Seitenanfang
 
 Name IgnoreHidden Editieren
 SyntaxIgnoreHidden on|off
 Kontext<Limit>
 Modulmod_core 
 Standardoff
 Ab Version0.99.0
 BeschreibungNormalerweise, können mittels den Anweisungen "HideNoAccess", "HideUser" oder "HideGroup" versteckte Dateien durch alle FTP Befehle angesprochen werden. Auch wenn auf die Dateien nicht zugegriffen werden kann, so erhält der Benutzer doch eine "Permission Denied" Meldung, die anzeigt, daß die Datei tatsächlich existiert. Gibt man nun die "IgnoreHidden" Anweisung in einem <Limit> Block an, so werden versteckte Dateien (und Verzeichnisse) komplett für FTP Befehle ignoriert. Greift man nun auf eine versteckte Datei zu, so bekommt man die Fehlermeldung "No Such File Or Directory".
06.00.2003 20:02
Zum Seitenanfang
 
 Name Include Editieren
 SyntaxInclude file
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit> <Directory>
 Modulmod_core 
 Ab Version1.2.0
 BeschreibungDiese Anweisung erlaubt das Einbinden anderer Konfigurations Dateien in die eigentliche Config Datei
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPAuthBinds Editieren
 SyntaxLDAPAuthBinds on|off
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 StandardLDAPAuthBinds off in mod_ldap <= 2.7.6, LDAPAuthBinds on in mod_ldap >= 2.8
 Ab Versionmod_ldap v2.5
 BeschreibungSpecifies whether to use authenticated binds. Normally, a privileged LDAP DN will be used to bind to the LDAP server to obtain user information, including the userPassword attribute. If LDAPAuthBinds is set to on, the DN specified by LDAPDNInfo will be used to fetch all user information except the userPassword attribute. Then, mod_ldap will bind to the LDAP server as the user who is logging in via FTP with the user-supplied password. If this bind succeeds, the user is considered authenticated and is allowed to log in. This method of LDAP authentication has the added benefit of supporting any password encryption scheme that your LDAP server supports
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPDefaultAuthScheme Editieren
 SyntaxLDAPDefaultAuthScheme crypt|clear
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 Standardcrypt
 Ab Versionmod_ldap v2.0
 BeschreibungSpecifies the authentication scheme used for passwords with no in the LDAP database. For example, if you are using something like userPassword: mypass in your LDAP database, you would want to set LDAPDefaultAuthScheme to clear
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPDefaultGID Editieren
 SyntaxLDAPDefaultGID default-gid
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 Ab Versionmod_ldap v2.0
 BeschreibungThis directive is useful primarily in virtual-user environments common in large-scale ISPs and hosting organizations. If a user does not have a LDAP gidNumber attribute, the LDAPDefaultGID is used. This allows one to have a large number of users in an LDAP database without gidNumber attributes; setting this configuration directive will automatically assign those users a single GID.
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPDefaultUID Editieren
 SyntaxLDAPDefaultUID default-uid
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 Ab Versionmod_ldap v2.0
 BeschreibungThis directive is useful primarily in virtual-user environments common in large-scale ISPs and hosting organizations. If a user does not have a LDAP uidNumber attribute, the LDAPDefaultUID is used. This allows one to have a large number of users in an LDAP database without uidNumber attributes; setting this configuration directive will automatically assign those users a single UID.
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPDNInfo Editieren
 SyntaxLDAPDNInfo "ldap-dn" "dn-password"
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 Standard" " (anonymous bind)
 Ab Versionmod_ldap v2.0
 BeschreibungThis directive specifies the LDAP DN and password to use when binding to the LDAP server. If this configuration directive is not specified, anonymous binds are used.
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPDoAuth Editieren
 Syntax?
 Kontext
 Modul
 Ab Version0.99.0
 BeschreibungNoch kein Eintrag
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPDoGIDLookups Editieren
 Syntax?
 Kontext
 Modul
 Ab Version0.99.0
 BeschreibungNoch kein Eintrag
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPDoUIDLookups Editieren
 Syntax?
 Kontext
 Modul
 Ab Version0.99.0
 BeschreibungNoch kein Eintrag

06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPForceDefaultGID Editieren
 Syntax?
 Kontext
 Modul
 Ab Version0.99.0
 BeschreibungNoch kein Eintrag

06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPForceDefaultUID Editieren
 Syntax?
 Kontext
 Modul
 Ab Version0.99.0
 BeschreibungNoch kein Eintrag

06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPHomedirOnDemand Editieren
 SyntaxLDAPHomedirOnDemand on|off directory-mode
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 Standard
 Ab Versionmod_ldap v2.0
 BeschreibungLDAPHomedirOnDemand activates on-demand home directory creation. If a user logs in and does not yet have a home directory, a home directory is created automatically. The home directory will be owned by the same user and group that ProFTPD is running as (see the User and Group configuration directives). The second argument allows you to specify the mode (default permissions) to use when creating home directories on demand. If no directory mode is specified, the default of 0755 is used. Directory mode setting is only supported in mod_ldap v2.7 or later.
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPHomedirOnDemandPrefix Editieren
 Syntax??
 Kontext
 Modul
 Standard??
 Ab Version0.99.0
 BeschreibungNoch kein Eintrag
 Beispiel 1
 Beispiel 2
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPHomedirOnDemandPrefixNoUsername Editieren
 Syntax?
 Kontext
 Modul
 Ab Version0.99.0
 BeschreibungNoch kein Eintrag
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPHomedirOnDemandSuffix Editieren
 SyntaxLDAPHomedirOnDemandSuffix "additional-directory"
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 Standard""
 Ab Versionmod_ldap v2.6
 BeschreibungLDAPHomedirOnDemandSuffix allows you to specify an additional directory to be created within a user's home directory when it is created on demand. For example, if a user's home directory is "/home/user", setting this configuration directive to "public_html" will also create "/home/user/public_html" on demand. To use this feature, you must also activate LDAPHomedirOnDemand in your configuration.
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPNegativeCache Editieren
 SyntaxLDAPNegativeCache on|off
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 Standardoff
 Ab Versionmod_ldap v1.1
 BeschreibungLDAPNegativeCache specifies whether or not to cache negative responses from the LDAP server when using LDAP for UID/GID lookups. This option is useful if you also use/are in transition from another authentication system; if there are many users in your old authentication system that aren't in the LDAP database, there can be a significant delay when a directory listing is performed as the UIDs not in the LDAP database are repeatedly looked up in an attempt to present usernames instead of UIDs in directory listings. With LDAPNegativeCache set to on, negative ("not found") responses from the LDAP server will be cached and speed will improve on directory listings that contain many users not present in the LDAP database.
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPQueryTimeout Editieren
 SyntaxLDAPQueryTimeout timeout-seconds
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 Standarddefault-api-timeout
 Ab Versionmod_ldap v2.0
 BeschreibungSets the timeout used for LDAP directory queries. The default is the default timeout used by your LDAP API
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPSearchScope Editieren
 SyntaxLDAPSearchScope onelevel|subtree
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 Standardsubtree
 Ab Versionmod_ldap v2.6
 BeschreibungSet the scope used for LDAP searches. The default setting, subtree, searches for all entries in the tree from the current level down. Setting this directive to onelevel searches only one level deep in the LDAP tree.
06.00.2003 20:02
Zum Seitenanfang
 
 Name LDAPServer Editieren
 SyntaxLDAPServer "hostname1:port hostname2:port ..."
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 Standardlocalhost
 Ab Versionmod_ldap v1.0
 BeschreibungLDAPServer allows you to to specify the hostname(s) and port(s) of the LDAP server(s) to use for LDAP authentication. If no LDAPServer configuration directive is present, the default LDAP servers specified by your LDAP API will be used
06.00.2003 20:02
Zum Seitenanfang
 
 Name LeechRatioMsg Editieren
 SyntaxLeechRatioMsg foo1 foo2 foo3
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_ratio 
 Ab Version1.2.0
 BeschreibungDiese Anweisung ist verhaltet, bitte benutzt "SQLConnectInfo" stattdessen Hiermit wird der mySQL Datenbanktreiber konfiguriert. Eine Verbindung zur Datenbank wird erst dann aufgebaut, wenn ein SQL Kommando es verlangt. Danach kann sie während der FTP Session aktiv sein, falls es das SQL Kommando verlant. Soll kein Passwort verwenden werden, so ist "" zu übergeben
06.00.2003 20:02
Zum Seitenanfang
 
 Name LogFormat Editieren
 SyntaxLogFormat nickname "format-string"
 KontextServer config
 Modulmod_log 
 Standarddefault "%h %l %u %t %r %s %b"
 Ab Version1.1.6pl1
 BeschreibungDie "LogFormat" Anweisung kann benutzt werden, um spezielle Logs zu erstellen. Jedes definierte Log kann einen Namen erhalten, welcher dann spaeter dazu benutzt werden kann, welches dann später in Verbindung mit "Extended" Log fas eigentlich Loggen durchführt.

Im "Logformat" sind die einzelnen Werte durch Platzhalter anzugeben:

%A : Anonymous username (password given), or UNKNOWN if non- anonymous
%b : Bytes sent for request
%f : Filename stored or retrieved, absolute path (not chrooted)
%F : Filename stored or retrieved, as the client sees it
%e : Contents of environment variable FOOBAR. Note that the server does not set any environment variables itself.
%h : Remote host name
%a : Remote IP address
%l : Remote username (from ident), or UNKNOWN if ident lookup failed
%m : Command (method) name received from client, e.g., RETR
%p : Local server port number
%v : Local server name
%P : Local server process id (pid)
%r : Full command line received from client
%t : Current local time
%t : Current local time formatted (strftime(3) format)
%T : Time taken to transmit/ receive file, in seconds
%s : Numeric FTP response code (status)
%u : Local authenticated userid


Aussserdem: http://www.proftpd.de/26.0.html, ExtendedLog, TransferLog
 Beispiel 1# Some logging formats
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"
LogFormat write "%h %l %u %t \"%r\" %s %b"

# Log file/dir access
ExtendedLog /var/log/proftpd.access_log WRITE,READ write

# Record all logins
ExtendedLog /var/log/proftpd.auth_log AUTH auth

# Paranoia logging level....
ExtendedLog /var/log/proftpd.paranoid_log ALL default 
 Beispiel 2
02.00.2004 05:01
Zum Seitenanfang
 
 Name LoginPasswordPrompt Editieren
 SyntaxLoginPasswordPrompt on|off
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_auth 
 Standardon
 Ab Version1.2.0pre1
 BeschreibungWenn auf "off" gesetzt überspringt ProFTPD die Password Abfrage, falls der Login sowieso (auch bei richtigem Password) verweigert wird. Dieses kann z.B. passieren, wenn durch <Limit Login> die Anmeldung untersagt ist.
 Beispiel 1
 Beispiel 2
02.00.2004 04:01
Zum Seitenanfang
 
 Name MasqueradeAddress Editieren
 SyntaxMasqueradeAddress ip-address|dns-hostname
 KontextServer config <VirtualHost>
 Modulmod_core 
 Standard
 Ab Version1.2.2
 BeschreibungDie "MasqueradeAddress" Anweisung ist sehr wichtig, wenn man seinen FTP Server hinter einem Router betreibt. Die bei passiven Transfer erzeugten Port Kommandos werden naemlich aufgrund der IP des Rechners erzeugt. Befindet sich der FTP Server nun nur im lokalen Netz, werden die PORT Befehle eine IP ala "192.168.43.44" enthalten, die natuerlich vom Client Rechner nicht verstanden werden kann. Mit "MasqueradeAddress" kann man nun eine alternative Adresse angeben, die stattdessen benutzt wird.
Die Angabe kann auch als FQDN angegeben werden, dann ist jedoch zu beachten, dass diese nur einmal beim start von ProFTPD aufgeschluesselt wird. Bei dynamischen IPs kann man den Server per INETD betreiben, so dass beim jedem Start einer Verbindung die IP aufgeloest wird.

 Beispiel 1MasqueradeAddress natbox.example.com
 Beispiel 2MasqueradeAddress 213.133.103.252
02.00.2004 03:01
Zum Seitenanfang
 
 Name MaxClients Editieren
 SyntaxMaxClients number | none [message]
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab Version0.99.0
 BeschreibungMit der "MaxClients" Anweiseung wird die maximale Anzahl der angemeldeten Clients (inklusive anonymen Zugang) beim Server angegeben. Ist dieses Limit erreicht, werden neuen Verbindungen beim Anmelden unterbrochen. Die spezielle Angabe "none" entfernt alle Verbindungsbeschränkungen. Es kann eine optionale Nachricht übergeben werden, die dem Client unmittelbar vor dem Abbruch der Verbindung angezeigt wird, falls der Maximalwert erreicht wird. Als Platzhalter kann "%m" in der Nachricht übergeben werden, die die maximale Anzahl enthält. Wirdd keine Nachricht übergeben, so wird die Standard Meldung benutzt. Beispiel: MaxClients 5 "Sorry, es sind bereits %m User Verbunden" Results in: 530 Sorry, es sind bereits 5 User Verbunden
06.00.2003 20:02
Zum Seitenanfang
 
 Name MaxClientsPerHost Editieren
 SyntaxMaxClientsPerHost number|none [message]
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Standard
 Ab Version1.1.7
 BeschreibungDie "MaxClientsPerHost" Anweisung konfiguriert die Maximale Anzahl von Clients, die sich von einem Rechner einloggen können. Optional kann angegeben werden, welche Nachricht dem Client geschickt werden soll, falls die maximale Anzahl erreicht ist. Wenn keine Nachricht angegeben wird, wird die Systemweite Standardnachricht benutzt.
 Beispiel 1Beispiel: 
MaxClientsPerHost 1 "Bitte nicht öfters als 1x verbinden" 

Ergebnis: 530 Bitte nicht öfters als 1x verbinden
 Beispiel 2
02.00.2004 05:01
Zum Seitenanfang
 
 Name MaxHostsPerUser Editieren
 SyntaxMaxHostsPerUser number|none [message]
 Kontext<Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Standard
 Ab Version1.2.4
 BeschreibungDurch die "MaxHostsPerUser" kann man angeben, von wie vielen unterschiedlichen Rechnern sind ein Username gleichzeitig einloggen kann. Optional kann noch eine Fehlermeldung angegeben werden, die der Client im Fehlerfall angezeigt bekommst. Wird diese nicht angegeben, dann wird die Standard Meldung angeziegt: "Sorry, the maximum number of hosts (%m) for this user already connected."
 Beispiel 1
 Beispiel 2
02.00.2004 05:01
Zum Seitenanfang
 
 Name MaxInstances Editieren
 SyntaxMaxInstances number
 KontextServer config
 Modulmod_core 
 Ab Version1.1.6pl1
 BeschreibungDie "MaxInstances" Anrweisung gibt an, wie viele Child Prozesse vom Haupt PROFTPD Prozess im Standalone Modus erzeugt werden können. Diese Anweisen hat keine Auswirkung, wenn man den Server im Inetd Modus betreibt. Da jeder Tochterprozess auch eine einzelne Verbindung mit einem Client darstellt, kontrolliert diese Anweisung auch die maximale Anzahl gleichzeitiger Verbindungen. Über diese Anzahl hinausgehende Verbindungen werden mit syslogd protokolliert und ohne Meldung beendet. Diese Anweisung kann dazu verwendet werden, Denial-Of-Service Attacken zu verhindern, die durch unmengen von Verbindungsaufrufen eine "Fork-Bomb" erzeugen wollen.
06.00.2003 20:02
Zum Seitenanfang
 
 Name MaxLoginAttempts Editieren
 SyntaxMaxLoginAttempts number
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 Standard3
 Ab Version0.99.0
 BeschreibungDie "MaxLoginAttempts" Anweisen gibt an, wie ein Benutzer versuchen kann sich anzumelden. Nachdem die Anzahl (erfolglos) erreicht ist, wird der Benutzer getreennt und eine Mitteilung wird mittels syslog protokolliert.
06.00.2003 20:02
Zum Seitenanfang
 
 Name MultilineRFC2228 Editieren
 SyntaxMultilineRFC2228 on|off
 KontextServer config
 Modulmod_core 
 Standardoff
 Ab Version1.2.0pre3
 BeschreibungNormalerweise, sendet PROFTPD mehrzeilige Antworten im per RFC 959 festgelegten Format. Beispiel: 200-erste Zeile weitere Zeilen 200-letzte Zeile In der RFC 2228 wird festgelegt, daß "6xx" Antworten wie folgt gesendet werden: Beispiel: 600-erste Zeile 600-weitere Zeilen 600-letzte Zeile Die RFC 2228 legt normalerweise nur fest, daß nur Antworten beginnend mit "6" so abgewickelt werden. Ist diese Anweisung aktiv, werden alle Antworten in diesem Format gesendet, was kompatibler mit einigen Browsern und FTP Clients ist. Diese Anweisung entspricht NICHT den wu-ftpd's mehrzeiligen Antworten, die keiner RFC entsprechen. Diese Methode von PROFTPD scheint mit allen Clients zu funktionieren, da sie jedoch nicht 100% RFC konform ist, ist die per Standard nicht aktiviert.
06.00.2003 20:02
Zum Seitenanfang
 
 Name Order Editieren
 SyntaxOrder allow,deny|deny,allow
 Kontext<Limit>
 Modulmod_core 
 Standardallow,deny
 Ab Version0.99.0pl6
 BeschreibungThe Order directive configures the order in which Allow and Deny directives are checked inside of a <Limit> block. Because Allow directives are permissive, and Deny directives restrictive, the order in which they are examined cans ignificantly alter the way security functions.
If the default setting of allow,deny is used, "allowed" access permissions are checked first. If an Allow directive explicitly allows access to the <Limit> context, access is granted and any Deny directives are never checked.
If Allow did not explicitly permit access, Deny directives are checked. If any Deny directive applies, access is explicitlyd enied. Otherwise, access is granted.

When deny,allow is used, "deny" access restrictions are checked first. If any restriction applies, access is denied immediately. If nothing is denied, Allow permissions are checked. If an Allow explicitly permits access, access to the entire context is permitted; otherwise access is implicitly denied. For clarification, the following illustrates the steps used when checking

Allow/Deny access:
Order allow,deny
Check Allow directives. If one or more apply, exit with result: ALLOW
Check Deny directives. If one or more apply, exit with result: DENY
Exit with default implicit ALLOW

Order deny,allow
Check Deny directives. If one or more apply, exit with result: DENY
Check Allow directives. If one or more apply, exit with result: ALLOW
Exit with default implicit: DENY
06.00.2003 20:02
Zum Seitenanfang
 
 Name PassivePorts Editieren
 SyntaxPassivePorts min-pasv-port max-pasv-port
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 Ab Version1.2.0rc3
 BeschreibungPassivePorts restricts the range of ports from which the server will select when sent the PASV command from a client. The server will randomly choose a number from within the specified range until an open port is found. Should no open ports be found within the given range, the server will default to a normal kernel-assigned port, and a message logged.
The port range selected must be in the non-privileged range (eg greater than or equal to 1024); it is STRONGLY RECOMMENDED that the chosen range be large enough to handle many simultaneous passive connections (for example, 49152-65534, the IANA- registered ephemeral port range).
06.00.2003 20:02
Zum Seitenanfang
 
 Name PathAllowFilter Editieren
 SyntaxPathAllowFilter regular-expression
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Standard
 Ab Version1.1.7
 BeschreibungDie "PathAllowFilter" Anweisung erlaubt das Überprüfen des Namen vor dem uploaden mit Hilfe regulärer Ausdrücke. Der reguläre Ausdruck wird gegen der gesamten, vom Client übermittelten Angabe geprüft. Angaben die dem regulären Ausdruck NICHT entsprechen werden durch "Forbidden filename" an den Client angelehnt. Sollte der reguläre Ausdruck SPACE " " enthalten, so muss dieses in Anführungszeichen gesetzt werden.
 Beispiel 1# Only allow filenames containing alphanumeric characters 
PathAllowFilter ".*/[a-zA-Z0-9]+$"
 Beispiel 2
02.00.2004 03:01
Zum Seitenanfang
 
 Name PathDenyFilter Editieren
 SyntaxPathDenyFilter regular-expression
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Standard
 Ab Version1.1.7
 BeschreibungÄhnlich der "PathAllowFilter" Anweisung, verbietet die "PathDenyFilter" Anweisung einen Namen. Sollte der reguläre Ausdruck zutreffen, so wird "Forbidden filename" an den Client gesendet. Dieses kann z.B. genutzt werden, um .ftpaccess oder .htaccess Files zu verhindern.
 Beispiel 1# Verhindert Files mit ausfuehrbaren Dateiendungen
PathDenyFilter "\.(js|vbs|shs|scr|exe)$" 

# Verhindert alle Files mit führendem Punkt oder Strich
PathDenyFilter "(^|/)[-.]" 

# Verhindert alle beiden Möglichkeiten
PathDenyFilter "((^|/)[-.])| (\.(js|vbs|shs|scr|exe)$)" 
 Beispiel 2
02.00.2004 03:01
Zum Seitenanfang
 
 Name PersistentPasswd Editieren
 SyntaxPersistentPasswd on|off
 KontextServer config
 Modulmod_unixpw 
 StandardPlatform dependent
 Ab Version1.1.5
 BeschreibungThe PersistentPasswd directive controls how proftpd handles authentication, user/group lookups, and user/group to name mapping. If set to On, proftpd will attempt to open the system-wide /etc/passwd, /etc/group (and /etc/shadow, potentially) files itself, holding them open even during a chroot()ed login (note that /etc/shadow is never held open, for security reasons). On some platforms, you must turn this option on, as the libc functions are incapable of accessing these databases from inside of a chroot(). At configure- time, the configuration script will attempt to detect whether or not you need this support, and make it the default. However, such "guessing" may fail, and you will have to manually enable or disable the feature. If you cannot see user or group names when performing a directory listing inside an anonymous chrooted login, this indicates you must enable the directive. Use of the AuthUserFile or AuthGroupFile directives will force partial support for persistent user or group database files; regardless of PersistentPasswd's setting.
Note: NIS or NIS+ users will most likely want to disable this feature, regardless of proftpd's detected configuration defaults. Failure to disable this will make your NIS/NIS+ maps not work!
06.00.2003 20:02
Zum Seitenanfang
 
 Name PidFile Editieren
 SyntaxPidFile filename
 KontextServer config <Global>
 Modulmod_core 
 Ab Version1.2.0rc2
 BeschreibungDie "PidFile" Anweisung übergibt die Datei, in die der Server die Prozess ID vom PROFTPD Dämon schreibt. Der Filenamen muss relativ zum Root Verzeichnis angegeben werden, z.B: /var/log/proftpd/pidfile. Das PidFile Wird nur im Standalone Modus verwendet. Machmal ist es sinnvoll, dem Server eine Nachricht zu senden, daß er die Logs schliessen und wieder öffnen soll, bzw. die Konfigurationsdatei neu einzulesen. Dieses wird durch ein SIGHUP (kill -1) Signal an die Prozess ID vom Master Dämon in dem PidFile bewerkstelligt.
06.00.2003 20:02
Zum Seitenanfang
 
 Name Port Editieren
 SyntaxPort port-number
 KontextServer config <VirtualHost>
 Modulmod_core 
 Standard21
 Ab Version0.99.0
 BeschreibungDie "Port"-Anweisung gibt an, auf welchen Port der Server im Standalone auf ankommende Verbindung lauscht. Die Anweisung hat keine Funktion im inetd Modus. Diese Anweisung kann auch in Verbindung mit <VirtualHost> benutzt werden, um verschiedene FTP Server auf einer IP, jedoch auf verschiedene Ports, zu betreiben.
06.00.2003 20:02
Zum Seitenanfang
 
 Name RatioFile Editieren
 SyntaxRatioFile foo1 foo2 foo3
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_ratio 
 Ab Version1.2.0
 BeschreibungThe RatioFile directive .... INCOMPLETE
06.00.2003 20:02
Zum Seitenanfang
 
 Name Ratios Editieren
 SyntaxRatios foo1 foo2 foo3
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_ratio 
 Ab Version1.2.0
 BeschreibungThe Ratios directive .... INCOMPLETE
06.00.2003 20:02
Zum Seitenanfang
 
 Name RatioTempFile Editieren
 SyntaxRatioTempFile foo1 foo2 foo3
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_ratio 
 Ab Version1.2.0
 BeschreibungINCOMPLETE
06.00.2003 20:02
Zum Seitenanfang
 
 Name RequireValidShell Editieren
 SyntaxRequireValidShell on|off
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Standardon
 Ab Version0.99.0
 BeschreibungThe RequireValidShell directive configures the server, virtual host or anonymous login to allow or deny logins which do not have a shell binary listed in /etc/shells. By default, proftpd disallows logins if the user's default shell is not listed in /etc/shells. If /etc/shells cannot be found, all default shells are assumed to be valid.
06.00.2003 20:02
Zum Seitenanfang
 
 Name RLimitCPU Editieren
 SyntaxRLimitCPU soft-limit|"max" [hard-limit|"max"]
 KontextServer config
 Modulmod_core 
 Ab Version1.2.2
 BeschreibungRLimitCPU takes 1 or 2 parameters. The first parameter sets the soft resource limit for all proftpd processes. The optional second parameter sets the maximum resource limit. Either parameter can be a number, or max to indicate to the server that the limit should be set to the maximum allowed by the operating system configuration.
06.00.2003 20:02
Zum Seitenanfang
 
 Name RLimitMemory Editieren
 SyntaxRLimitMemory [ RLimitMemory ["daemon"|"session"|"none"] soft-limit[units]|"max" [hard-limit[units]|"max"]]
 KontextServer config
 Modulmod_core 
 Ab Version1.2.2
 BeschreibungRLimitMemory takes 1 or 2 parameters. The first parameter sets the soft resource limit for all proftpd processes. The optional second parameter sets the maximum resource limit. Either parameter can be a number, or max to indicate to the server that the limit should be set to the maximum allowed by the operating system configuration. Memory resource limits are expressed in bytes per process. An optional case-insensitive units specifier may follow the number of bytes given: G (Gigabytes), M (Megabytes), K (Kilobytes), or B (bytes). If the units specifier is used, the given number of bytes is multiplied by the appropriate factor.
06.00.2003 20:02
Zum Seitenanfang
 
 Name RLimitOpenFiles Editieren
 SyntaxRLimitOpenFiles soft-limit|"max"
 KontextServer config
 Modulmod_core 
 Ab Version1.2.2
 BeschreibungRLimitOpenFiles takes 1 or 2 parameters. The first parameter sets the soft resource limit for all proftpd processes. The optional second parameter sets the maximum resource limit. Either parameter can be a number, or max to indicate to the server that the limit should be set to the maximum allowed by the operating system configuration.
06.00.2003 20:02
Zum Seitenanfang
 
 Name RootLogin Editieren
 SyntaxRootLogin on|off
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_auth 
 Standardoff
 Ab Version1.1.5
 BeschreibungNormalerweise erlaubt ProFTPD keine Anmeldung als Root. Sollte ein Client dieses Versuchen und dabei das richtige Password benutzen, wird per syslog eine Meldung verschickt, die Anmeldung aber (natuerlich) verweigert. Mit dieser Anweisung kann man nun root erlauben, sich ebenfalls per FTP anzumelden.

Anmerkung: Bei FTP wird das Passwort unverschluesselt uebertragen. Wer dieses ernsthaft bei einem Server erlaubt, kann genauso gut wieder auf Windows 98 umsteigen und alle Verzeichnisse freigeben.
 Beispiel 1
 Beispiel 2
01.-1.2003 22:01
Zum Seitenanfang
 
 Name SaveRatios Editieren
 SyntaxSaveRatios foo1 foo2 foo3
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_ratio 
 Ab Version1.2.0
 BeschreibungINCOMPLETE
06.00.2003 20:02
Zum Seitenanfang
 
 Name ServerAdmin Editieren
 SyntaxServerAdmin "admin-email-address"
 KontextServer config <VirtualHost>
 Modulmod_core 
 Standardroot@[ServerName]
 Ab Version0.99.0pl10
 BeschreibungThe ServerAdmin directive sets the email address of the administrator for the server or virtualhost. This address is displayed in magic cookie replacements (see DisplayLogin and DisplayFirstChdir).
06.00.2003 20:02
Zum Seitenanfang
 
 Name ServerIdent Editieren
 SyntaxServerIdent off|on [identification string]
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 StandardProFTPD [version] Server (server name) [hostname]
 Ab Version1.2.0pre2
 BeschreibungThe ServerIdent directive sets the default message displayed when a new client connects. Setting this to off displays "[hostname] FTP server ready." If set to on, the directive can take an optional string argument, which will be displayed instead of the default text. Sites desiring to give out minimal information will probably want a setting like ServerIdent on "FTP Server ready.", which won't even reveal the hostname.
06.00.2003 20:02
Zum Seitenanfang
 
 Name ServerName Editieren
 SyntaxServerName "name"
 KontextServer config <VirtualHost>
 Modulmod_core 
 StandardProFTPD Server [version]
 Ab Version0.99.0
 BeschreibungThe ServerName directive configures the string that will be displayed to a user connecting to the server (or virtual server if the directive is located in a <VirtualHost> block).
See Also: <VirtualHost>

06.00.2003 20:02
Zum Seitenanfang
 
 Name ServerType Editieren
 SyntaxServerType type-identifier
 KontextServer config
 Modulmod_core 
 Standardstandalone
 Ab Version0.99.0
 BeschreibungThe ServerType directive configures the server daemon's operating mode. The type-identifier can be one of two values:

inetd
The daemon will expect to be run from the inetd "super server." New connections are passed from inetd to proftpd and serviced immediately.

standalone
The daemon starts and begins listening to the configured port for incoming connections. New connections result in spawned child processes dedicated to servicing all requests from the newly connected client.
06.00.2003 20:02
Zum Seitenanfang
 
 Name ShowSymlinks Editieren
 SyntaxShowSymlinks on|off
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Standardon
 Ab Version0.99.0pl6
 BeschreibungSymbolic links (if supported on the host OS and filesystem) can be either shown in directory listings (including the target of the link) or can be "hidden" (proftpd dereferences symlinks and reports the target's permissions and ownership). The default behavior is to show all symbolic links when normal users are logged in, and hide them for anonymous sessions. If a symbolic link cannot be dereferenced for any reason (permissions, target does not exist, etc) and ShowSymlinks is off, proftpd displays the link as a directory entry of type 'l' (link) with the ownership and permissions of the actual link. Under ProFTPD versions 1.1.5 and higher, the default behavior in regard to ShowSymlinks has been changed so that symbolic links are always displayed as such (in all cases), unless ShowSymlinks off is explicitly set.
06.00.2003 20:02
Zum Seitenanfang
 
 Name SocketBindTight Editieren
 SyntaxSocketBindTight on|off
 KontextServer config
 Modulmod_core 
 Standardoff
 Ab Version0.99.0pl6
 BeschreibungThe SocketBindTight directive controls how proftpd creates and binds its initial tcp listen sockets in standalone mode (see ServerType). The directive has no effect upon servers running in inetd mode, because listen sockets are not needed or created. When SocketBindTight is set to off (the default), a single listening socket is created for each port that the server must listen on, regardless of the number of IP addresses being used by <VirtualHost> configurations. This has the benefit of typically requiring a relatively small number of file descriptors for the master daemon process, even if a large number of virtual servers are configured. If SocketBindTight is set to on, a listen socket is created and bound to a specific IP address for the master server and all configured virtual servers. This allows for situations where an administrator may wish to have a particular port be used by both proftpd (on one IP address) and another daemon (on a different IP address). The drawback is that considerably more file descriptors will be required if a large number of virtual servers must be supported.
 Beispiel 1#Two servers have been configured (one master and one virtual), 
#with the IP addresses 10.0.0.1 and 10.0.0.2, respectively. 
#The 10.0.0.1 server runs on port 21, while 10.0.0.2 runs on port 2001. 
SocketBindTight off
# default proftpd creates two sockets, both bound to ALL available addresses. 
# one socket listens on port 21, the other on 2001. 
# Because each socket is bound to all available addresses, 
#no other daemon or user process will be  
# allowed to bind to ports 21 or 2001. 

SocketBindTight on 
# proftpd creates two sockets again, however one is bound to 10.0.0.1, port 21 
# and the other to 10.0.0.2, port 2001. Because these sockets are "tightly" 
# bound to IP addresses, port 21 can be reused on any address OTHER than 
# 10.0.0.1, and visa-versa with 10.0.0.2, port 2001. 

#One side-effect of setting SocketBindTight to on is that connections to 
# non-bound addresses will result in a "connection refused" message
#rather than the typical 
# "500 Sorry, no server available to handle request on xxx.xxx.xxx.xxx.", 
#due to the fact that no listen socket has been bound to the particular 
# address/port pair. This may or may not be aesthetically desirable, 
# depending on your circumstances.
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLAuthenticate Editieren
 SyntaxSQLAuthenticate on|off oder SQLAuthenticate [ users [*] ] [ group [*] ] [ userset [fast] ] [ groupset [fast] ]
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Standardon
 Ab Versionmod_sql 4.x
 BeschreibungSQLAuthenticate" kontrolliert das Verhalten von mod_sql. Die Anweisunggibt an, was authentifiziert werden soll (User und/oder Gruppen) und wie diese authentifiziert werden soll. Die Argumente können in jeder Reihenfolge übergeben werden.

Folgende Möglichkeiten:

on: Kurzfassung für 'SQLAuthenticate users groups userset groupset'

off: Schaltet die mod_sql Abfragen aus.

users[*]: Wenn angegeben, wird mod_sql User Abfragen durchführungen. Wenn ein Sternchen "*" [Users*] angehängt wird, dann wird mod_sql die exklusiveBenutzer Abfrage. Keine andere Authentifizierungs Maánahme (z.B. PAM) wird durchgeführt.Falls nicht vorhanden, wird mod_sql überhaupt keine User Abfragendurchführen, inklusive den "pwent" Aufrufen (siehe unten).

groups[*]: Wenn angegeben, wird mod_sql Gruppen durchführen. Wenn einSternchen "*" angehängt wird, dann wird mod_sql die exklusive GruppenAbfrage.Falls nicht vorhanden, wird mod_sql überhaupt keine Gruppen Abfragedurchführen, inklusive den "grent" Aufrufen (siehe unten)

userset[fast]: Wenn angegeben, mod_sql wird den eventuell aufwendigen "pwent" Aufruf durchführen. Falls nicht vorhanden, wird mod_sql dieseAbfragen nicht durchführen. Wird der Suffix "fast" angegeben, wird die Abfrage einmal für alle User durchgeführt, anstatt eine Abfrage pro User.Dieses verringert sie Anzahl der Abfragen deutlich, kostet jedoch Speicher. Dieses Argument hat keine Auswirkung, falls "users" nichtdefiniert wurde.

groupset[fast] : Wenn angegeben, mod_sql wird den eventuell aufwendigen "grent" Aufruf durchführen. Falls nicht vorhanden, wird mod_sql dieseAbfragen nicht durchführen. Wird der Suffix "fast" angegeben, wird die Abfrage einmal für alle Gruppen durchgeführt, anstatt eine Abfrage pro Gruppe. Dieses verringert sie Anzahl der Abfragen deutlich, kostet jedoch Speicher. Dieses Argument hat keine Auswirkung, falls "groups" nicht definiert wurde.

Anmerkung: Die 'SQLLog' und 'SQLShowInfo' Anweisungen werden immer von mod_sql abgearbeitet. Die 'SQLAuthenticate' Anweisung betrifft nur die Abfragen von "User" und "Group" durch das Modul. Durch abstellen (bzw. nicht einbinden) der User oder Gruppen abfragen, wird die Funktionalität von mod_sql beeinträchtigt. Hierdurch wird ggf. dieMöglichkeit der Zugriffskontrolle aufgrund von Gruppenzugehörigkeitverhindert. Dies ist jedoch Abhängig von anderen Möglichkeiten derAuthentifizierung. Jedoch nimmt die Geschwindigkeit der Authentifizerung deutlich zu, diese Abfragen nicht durchführt. Die "fast" Option ist nicht für jede Seite angebracht. Normalerweise, mod_sql empfängt eine Liste von Usern und Gruppen und bekommt die Informationen aus der Datenbank pro User oder pro Gruppe. Diese ist sehr Abfragen aufwendig - es benötigt (n+1) Abfragen, wobei "n" die Anzahlder User oder Gruppen ist. Wenn man die "Fast" Abfragen wählt, wird miteiner einzelnen SELECT Anfrage die Informationen aus der Datenbank geholt. Man erreicht zwar so eine dramatische Reduzierung der Abfragen, jedoch einendeutlich erhöhten Speicherbedarf, da alle User und Gruppen informationen aufeinmal gelesen werden, statt in kleinen Portionen. GROUP TABLE STRUKTUR Normalerweise mod_sql erlaubt mehrere Gruppen per Zeile undmehrere Zeilen pro Gruppe. Bei Verwendung der Fast Option fürGroupset, DARF es nur eine Zeile pro Gruppe geben.
 Beispiel 1Normalerweise behandelt mod_sql alle drei Tabellenxakt gleich. 

|-----------------------------------------------| 
| GROUPNAME | GID  | MEMBERS                    | 
|-----------------------------------------------| 
| Gruppe1   | 1000 | Stonki                     | 
| Gruppe2   | 1000 | Paul                       | 
| Gruppe3   | 1000 | Weller                     | 
|-----------------------------------------------| 
|-----------------------------------------------| 
| GROUPNAME | GID  | MEMBERS                    | 
|-----------------------------------------------| 
| Gruppe1   | 1000 | Stonki, Paul               | 
| Gruppe2   | 1000 | Weller                     | 
|-----------------------------------------------| 
|-----------------------------------------------| 
| GROUPNAME | GID  | MEMBERS                    | 
|-----------------------------------------------| 
| Gruppe1   | 1000 | Stonki, Paul, Weller       | 
|-----------------------------------------------| 

Falls Du die "fast" Option benutzt, geht mod_sql davon aus, 
dass alle Einträge wie im letzten Bespiel strukturiert sind.
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLAuthTypes Editieren
 SyntaxSQLAuthTypes OpenSSL|Crypt|Backend|Plaintext|Empty
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Ab Version1.2.0, mod_sql 3.x und 4.x
 BeschreibungDiese Anweisung ersetzt: 'SQLEmptyPasswords', 'SQLScrambledPasswords', 'SQLSSLHashedPasswords', 'SQLPlaintextPasswords', 'SQLEncryptedPasswords'.

Gibt die erlaubten Authentisierung Typen an und die Reihenfolge der überprüfung.
Beachte: DU MUSST MINDESTENS EINE AUTHENTISIERUNGS METHODE ANGEBEN !

Falls keine Methode angegeben wird, werden mod_sql keine User authentisiert.

Zum Beispiel: SQLAuthTypes Crypt Empty
Überprüfe ob das Passwort in der Datenbank im UNIX crypt() Format gültig ist; wenn diese Abfrage nicht stimmt, überprüfe ob das Passwort in der Datenbank leer ist (ALLE Passwörter sind gültig); wenn dieses auch nicht simmt
lehnt mod_sql die Authentisierung ab.

Aktuelle Typen:
1) Plaintext: erlaubt Passwörter in der Datenbank als Klartext
2) OpenSSH: erlaubt Passwörter in der Datenbank in der Form "hashedvalue". Dieser Art der Authentisierung ist nur verfügbar, wenn ProFTPD mit dem Parameter 'HAVE_OPENSSL' compiliert wurde und mit der OpenSSL 'crypto' library gelinkt wurde.
3) Crypt: erlaubt Passwörter in in der Datenbank im UNIX crypt() Format
4) Backend: dieses ist eine Datenbank spezifische Lösung. Nicht alle Backends unterstützen dieses. Speziell die MySQL Datenbank benutzt diesen Typ um MySQL 'PASSWORD()' verschlüsselte Passwörter zu Authentisieren. Unter Progess passiert nichts. ACHTUNG: Wenn Dein MySQL Log lesbar ist, sind User Passwörter sichtbar !
5) Empty: dieses erlaubt leere Passwörter in der Datenbank, die mit jedem Passwort übereinstimmen. Das Feldi n der Datenbank muss wirklich einen leeren String enthalten, NULL Werte werden nicht akzeptiert. SEI HIERMIT SEHR VORSICHTIG !
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLConnectInfo Editieren
 SyntaxSQLConnectInfo connection-info [username] [password]
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Ab Version1.2.0, mod_sql 4.x
 BeschreibungDiese Anweisung ersetzt 'MySQLInfo', 'PostgresInfo', 'PostgresPort'

Gibt die Verbindungsinformationen an. Die Verbindungsinformationen geben die Datenbank, Host, port und andere Backend-spezifische Angaben. "Username" und "Password" geben den User an, mit dem an die Datenbank angemeldet werden soll. Die Standard Werte sind NULL, die das Backend in einer Backend spezifische Weise behandeln wird. Falls Du ein Passwort angibst, MUSST Du einen Usernamen angeben. Falls keine "SQLConnectInfo" Anweisung im Konfigurationsfile definiert ist, wird mod_sql sich selbst abschalten und niemand im Weg sein. Man hat dennoch natürlich keine Datenbank Unterstützung mehr. Jedes Backend hat die Möglichkeit (aber NICHT die Verpflichtung) beim Start von ProFTPD nach Syntax Fehlern bei den Verbindungsinformationen zu suchen. Du solltest aber nicht die Erkennung logische Fehler erwarten, bis mod_sql versucht sich mit dem Server zu verbinden.

Eine Datenbank Verbindung wird beherscht von einer Methode, wann die Datenbankverbindungen geöffnet und geschlossen werden soll. Es gibt drei Möglichkeiten:

PERSESSION : öffne die Datenbankverbindung beim Start der Session und schliesse die Verbindung am Ende der Verbindung.
PERCALL : öffne die Datenbankverbindung für jede Abfrage und schliesse sie danach wieder.
# (TIMED) : Zeitabhängige Verbindung, die sich nach # Sekunden inaktivität wieder schliesst.

Die MySQL und Progess Backend Verbindung Info wird im folgenden Format erwartet: database[@hostname][:port]

Der Hostname ist Standardmässig abhängig vom Datenbank Backend und ist bei MySQL und Progres jeweils "localhost". Der Port ist ebenfalls Backend Abhängig und ist bei MySQL: 3306 und bei Postgres: 5432.
 Beispiel 1#Versuche mit den Datanbank "ftpuser" zu verbinden 
#am server "foo.com" auf dem Standard Port. 
#Benutze als Usernamen und Passwort NULL. 
#Benutze die PERSESSION Methode. 
SQLConnectInfo ftpusers@foo.com 

# Versuche mit der Datenbank "ftpuser" am Server 
#"localhost" auf dem Port 3000 zu verbinden. 
#Benutze den Usernamen "admin" und 
#als Passwort NULL. 
#Benutze die PERSESSION Methode. 
SQLConnectInfo ftpusers:3000 admin 

#Versuche mit der Datenbank "ftpuser" auf dem 
#Server "foo.com", Port 3000 zu verbinden. 
#Benutze dafür den Usernamen "admin" und das 
# Passwort "mypassword". Benutze die PERCALL Methode. 
SQLConnectInfo ftpusers@foo.com:3000 admin mypassword PERCALL 

#Versuche mit der Datenbank "ftpuser" auf dem 
#Server "foo.com", Port 3000 zu verbinden. 
#Benutze dafür den Usernamen "admin" und 
#das Passwort "mypassword". Begrenze die inaktive Zeit auf 30 sekunden
SQLConnectInfo ftpusers@foo.com:3000 admin mypassword 30 
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLDefaultGID Editieren
 SyntaxSQLDefaultGID number
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Standard65533
 Ab Version1.2.0, mod_sql 3.x und 4.x
 BeschreibungSetzte die Standard GID. Muss grösser sein als SQLMinID
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLDefaultHomedir Editieren
 SyntaxSQLDefaultHomedir /pfad/zum/home/dir
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Ab Versionmod_sql 4.x
 BeschreibungGibt ein Standard Heimatverzeichniss für alle Benutzer an, die mit dem mod_sql Modul authentisiert werden, hautptsächlich jede "SQLHomedirField" Anweisung. Falls kein Heimatverzeichnis mit diesen Anweisungen gesetzt wird, scheitert die Anmeldung. Diese Anweisung ändert nicht ein ggf. in der Datenbank angegebenes Heimatverzeichnis. Wenn Du ein Feld für das Heimatverzeichnis in der SQLUserInfo angibst, werden diese Daten genommen, gleichgültig ob diese Daten ein gültiges Verzeichnis, eine leeren String oder NULL enthalten.
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLDefaultUID Editieren
 SyntaxSQLDefaultUID number
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Standard65533
 Ab Version1.2.0, mod_sql 3.x und 4.x
 BeschreibungSetzt die Standard UID für User. Muss grösser als SQLMinUserUID sein
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLGroupInfo Editieren
 SyntaxSQLGroupInfo grouptable groupname gid members
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Standardgroups groupname gid members
 Ab Versionmod_sql 4.x
 BeschreibungDefiniert die Gruppentabelle und die Feldnamen. grouptable: Gibt den Namen der Tabelle an, die die Gruppeninformatationen enthält.

groupname : Gibt das Feld an, daß den Gruppennamen enthält
gid : Gibt das Feld an, daß den Gruppen ID (GID)
members : Gibt das Feld an, daß die Gruppenmitglieder enthält. Solltest Du ein Feld umbenennen, so musst Du ALLE Felder angegeben
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLGroupWhereClause Editieren
 SyntaxSQLGroupWhereClause whereclause
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Ab Versionmod_sql 4.x
 BeschreibungGibt eine Abfrage an, die an jede Gruppen Abfrage angehängt wird. Die Abfrage muss alle relevanten Zeichen enthalten, jedoch KEIN führendes "and". Um eine Verwendung einmal zu demonstrieren, stelle Dir eine Gruppen Tabelle mit einem "zugang_ok" Feld vor:

SQLUserWhereClause "zugang_ok= 'true'" würde an jede Gruppen relevante Abfragen folgenden String anhängen: " WHERE (zugang_ok = 'true')"
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLHomedirOnDemand Editieren
 SyntaxSQLHomedirOnDemand on|off
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Standardoff
 Ab Version1.2.0, mod_sql 3.x und 4.x
 BeschreibungGibt an, ob automatisch ein Heimatverzeichnis für einen User angelegt werden soll, falls es beim Login noch nicht existiert.
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLLog Editieren
 SyntaxSQLLog cmd-set query-name [IGNORE_ERRORS]
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Ab Versionmod_sql 4.x
 BeschreibungSchreibt Informationen in eine Tabelle. Mehrere SQLLog Anweisungen können für jeden Befehl zuständig sein. z.B. ein User ändert ein Verzeichnis kann mehrere Log Aktionen starten. Das erste Parameter für SQLLOG, das Befehlsset, ist eine Liste von FTP Befehlen (per Komma getrennt, keine Leerzeichen), die ein Loggen starten. Die Liste der Befehle ist zu lang, um hier komplett aufgelistet zu werden und beinhaltet u.a. die wichtigen Befehle CWD, DELE, HELP, LIST, MKD, MODE, NLST, PASS, PASV, PORT und viele andere.
Für eine komplette Liste schaü bitte in der RFC von FTP. (http://www.proftpd.org/docs/rfc.html)

Normalerweise wird mod_sql Aktionen loggen, nachdem sie erfolgreich beendet sind. Im Falle des "QUIT" Befehles jedoch, loggt mod_sql dieses bevor der Befehl von ProFTPD aufgeführt wird. Logeinträge werden nur ausgeführt, wenn die FTP Befehle erfolgreich beendet wurden. Ein vorgestelltes "ERR_" erlaubt das loggen, wenn der ausgeführte Befehl nicht erfolgreich beendet wurde.

Um beide Möglichkeiten (also erfolgreiche und unerfolgreiche Aktion) zu loggen, müssen beide Möglichkeiten genannt werden. Die Angabe '*' bezeichnet alle FTP Befehle, während 'ERR_*' alle Fehler bezeichnet. Das zweite Argument ist der Name eine Abfrage, definiert durch die 'SQLNamedQuery' Anweisung. Die Abfrage muss vom Typ eine UPDATE, INSERT oder FREEFORM Abfrage sein - SELECT Abfragen werden nicht abgearbeitet. Das dritte Argument ist optional. Wenn man ein 'IGNORE_ERRORS' anfügt, wird SQLLOG während der Ausführung der Abfrage keine Fehlerüberprüfung vornehmen.
Jedes andere Argument als 'IGNORE_ERRORS' wird ohne Fehlermeldung ignoriert. Normalerweise werden Fehler in einer SQLLOG Anweisungen sehr ernst genommen und mod_sql wird die Verbindung beenden. Verweise auf nicht existierende Abfragen werden NICHT die Verbindung beenden, können jedoch fehlende Datenbank Einträge erzeugen.
Prüfe Deine Anweisungen!!
 Beispiel 1#Dieses ersetzt die alte 'SQLLoginCountField count' Anweisung und zählt bei 
#jedem Einloggen den Wert des Feldes count in der Tabelle users einen höher. 
#Ist der aktuelle User 'joe', so würde dieses übersetzt werden in: 
#"update users set count=count+1 where userid='joe'" 
#Diese Abfrage würde immer gestartet werden, wenn ein User sich angemeldet hat. 

SQLLog PASS updatecount 
SQLNamedQuery updatecount UPDATE "count=count+1 WHERE userid='%u'" users 

#Dieses ersetzt die alte 'SQLLogDirs cwd' Anweisung und schreibt jedes 
#Verzeichnis in das der User wechselt in die Datenbank, Tabelle "users". 
#Ist aktuelle User 'joe' und das aktuelle Verzeichnis '/tmp', 
#wird dieses übersetzt in: 
#"update users set cwd='/tmp' where userid='joe'". 
#Diese Anfrage wird immer gestartet, wenn ein User ein Verzeichnis wechselt. 

SQLLog CWD updatedir 
SQLNamedQuery updatedir UPDATE "cwd='%d' where userid='%u'" users 

#Dieses schreibt bei jedem (erfolgreich) senden oder empfangen einer Datei 
#den Namen, die Grösse in Bytes, den User und Host sowie die aktülle Zeit 
# (zumindest unter MySQL) in die Tabelle filehistory. Dieses würde übersetzt 
# werden Abfrage ähnlich: 
#"insert into filehistory values
# ('somefile', 12345, 'joe@joe.org', '21-05-2001 20:01:00')" 

SQLLog RETR,STOR insertfileinfo 
SQLNamedQuery insertfileinfo INSERT "'%f', %b, '%u@%v', now()" filehistory 
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLMinID Editieren
 SyntaxSQLMinID minumumid
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Standard999
 Ab Version1.2.0, mod_sql 3.x und 4.x
 BeschreibungSQLMinID ist ein schneller Weg um je SQLMinUserGID und SQLMinUserUID zu setzen. Diese Werte werden immer überprüft, wenn eine UID oder GID vom User empfangen wird. Siehe auch die 'SQLMinUserGID' und 'SQLMinUserUID' Anweisung
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLMinUserGID Editieren
 SyntaxSQLMinUserGID number
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Standard999
 Ab Versionmod_sql 4.x
 BeschreibungSQLMinUserGID wird immer überprüft wenn eine User GID empfangen wird. Ist der empfangene Wert kleiner dem Wert von SQLMinUserGID, wird die GID mit dem minimalen Wert angegeben.
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLMinUserUID Editieren
 SyntaxSQLMinUserUID number
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Standard999
 Ab Versionmod_sql 4.x
 BeschreibungSQLMinUserUID wird immer überprüft wenn eine User UID empfangen wird. Ist der empfangene Wert kleiner dem Wert von SQLMinUserUID, wird die UID mit dem minimalen Wert angegeben.
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLNamedQuery Editieren
 SyntaxSQLNamedQuery name type query-string [table]
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Ab Versionmod_sql 4.x
 BeschreibungSQLNamedQuery definiert eine Abfrage und ein Namen für die spätere Benutzung durch 'SQLShowInfo' und 'SQLLog'. Es wird SEHR empfohlen, dass Du die Dokumentation zu den ProFTPD Anweisungen 'LogFormat' und 'ExtendedLog' liest, da die Abläufe bei 'SQLNamedQuery' zum grössten Teil identisch sind.

Das erste Argument ist der Name, der für alle Abfragen eindeutig ein muss und keine Leerzeichen enthalten darf. Das Ergebnis bei Benutzer identischer Namen ist nicht definiert.
Das zweite Argument "type" ist der Typ der Abfrage, entweder 'SELECT', 'UPDATE', 'INSERT' oder 'FREEFORM'. Bitte beachte die Anmerkungen untern über die FREEFORM Abfragen.
Das dritte Argument ist die eigentlich Abfrage selbst und muss dem Typ (zweites Argument) entsprechen. Die Parameter hier sind identisch zur 'LogFormat' Anweisungen.

Folgende Anweisungen sind jedoch NICHT ERLAUBT:

%e: für 'LogFormat', diese logt den Inhalt der Umgebungsvariable "FOOBAR". Dies ist NICHT in mod_sql möglich.
%t: (und %t): Diese beiden Angaben loggen die lokale Serverzeit. Beide sind unter mod_sql NICHT verfügbar. Die Datenbank bietet jedoch andere Möglichkeiten die lokale Zeit zu loggen, z.B. die Funktion now() in MySQL.

Folgende Parameter bietet mod_sql zusätzlich zu der normalen 'LogFormat' Anweisung:

%d : das aktuelle Arbeitsverzeichnis oder "-" falls nicht gegeben.
% : Dieses Parameter wird intern von mod_sql und anderen Modulen benutzt um Informationen an die Datenbank weiter zu leiten. Dieses Parameter ist nur Zulässig bei einer INSERT oder UPDATE Abfrage und führt sonst zu einer Fehlermeldung. Ausserdem ist der Aufruf nur von einem Modul zulässig.

Die korrekte Form einer Abfrage wird aus den Angaben zur Anweisung gebildet, mit Ausnahme der FREEFORM Abfragen, die direkt zum Server geschickt werden.

Folgende Beispiele sollen zeigen, die mod_sql die Anweisungen in eine Abfrage umbaut. Das vierte Argumnt 'table' ist zwingend Notwendig bei 'UPDATE' oder 'INSERT' Abfragen. Note: FREEFORM Abfragen sind ein nötiges übel. Die einfache Syntax der UPDATE, INSERT und SELECT Abfragen nutzen nicht die Möglichkeiten moderner Datenbanksysteme. Auf der anderen Seite, macht es die Verwendung von FREEFORM Abfragen mod_mysql unmöglich den Sinn von Abfragen zu überprüfen, z.B. die Verwendung einer SELECT Anweisung in einer SQLLOG Anweisung. Daher sollte man wenn möglich die normalen Abfrage Typen benutzen.
 Beispiel 1#Erstellt eine Abfrage mit dem Namen 'count', die einem User mittels SQLShowInfo 
#während dessen Login angezeigt wird. Die eigentliche Abfrage wäre ähnlich: 
#"SELECT count from users where userid='matilda'" for user 'matilda'. 

SQLNamedQuery count SELECT "count from users where userid='%u'" 

#Erstellt eine Abfrage mit dem Namen 'updatecount', die mittels SQLLOG dazu 
#benutzt wird einen Login Zähler in der Tabelle 'users' zu erhöhen. Die eigentlich 
# Abfrage für den User 'stonki' wäre ähnlich: 
#"UPDATE users SET count=count+1 WHERE userid='stonki'" 

SQLNamedQuery updatecount UPDATE "count=count+1 WHERE userid='%u'" users 
 Beispiel 2#Erstellt eine Abfrage mit den Namen 'accesslog', die mittels 
#SQLLOG zum loggen der Onlinezeiten benutzt werden kann. 
# Die eigentlich Abfrage wäre für den User 'paul' ähnlich: 
#"INSERT INTO accesslog valueS (now(), 'paul')" 

SQLNamedQuery accesslog INSERT "now(), '%u'" accesslog 

#Diese Tabellenstruktur mag für den täglich Gebrauch zu einfach sein, 
#da die meisten Datenbanken die Daten für JEDE Feld benötigen. 
#Falls man nur eine Felder ändern will, ist ggf. die 
#FREEFORM Abfrage besser geeignet: 

#Erstellt eine Abfrage mit dem Namen 'accesslog', 
#die mittels SQLLOG zum loggen der Onlinezeiten benutzt werden kann. 
#Die eigentlich Abfrage wäre für den User 'weller' ähnlich: 
#"INSERT INTO acclog(date, user) valueS (now(), 'weller')" 

SQLNamedquery acclog FREEFORM "INSERT INTO acclog(date, user) values (now(), '%u')" 
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLProcessPwEnt Editieren
 SyntaxSQLProcessPwEnt "name" limit|regex|ip value
 Kontext
 Modul
 Ab Version0.99.0
 BeschreibungDiese Anweisung ist veraltet. Bitte "SQLAuthenticate" benutzen !
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLRatios Editieren
 SyntaxSQLRatios "name" limit|regex|ip value
 Kontext<Global> <VirtualHost>
 Modulmod_ratio mod_sql 
 Ab Version1.2.0, mod_sql 4.x
 BeschreibungAktiviert mod_ratio und das schreiben von Benutzerabhängigen Ratio Daten. Siehe auch die "mod_ratio" Dokumentation für mehr Informationen über diese Felder und deren Bedeutung. Diese Anweisung benötigt weitere Felder in der User Tabelle:

Feld TYP Welche Daten
------ ---- -----------
frate num
fcred num
brate num
bcred num

Die Feldbezeichnungen sind die Standard Werte, die SQLRatio benutzt, wenn es aktiviert wird.
Diese Anweisung wird einzig und allein von mod_ratio benutzt. Ohne mod_ratio hat diese Anweisungen keinen Effekt
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLRatioStats Editieren
 SyntaxSQLRatioStats "name" limit|regex|ip value
 KontextServer config <Global> <VirtualHost> <Limit>
 Modulmod_ratio mod_sql 
 Standardoff
 Ab Versionmod_sql 4.x
 BeschreibungBei Verwendung von mod_ratio wird die Anzahl der gesendeten und empfangen Files, sowie das gesendete und empfangene Datenvolumen in Bytes pro User geloggt. Siehe auch die Dokumentation von mod_ratio um mehr Informationen über diese Felder und deren Bedeutung zu erfahren.

Diese Anweisung benötigt einige weitere Felder in der User Tabelle:

Feld Typ Welchen Inhalt
------ ---- -----------
fstor num Anzahl der geschriebenen Dateien
fretr num Anzahl der empfangenen Dateien
bstor num Geschriebenes Datenvolumen in Bytes
bretr num Empfangenes Datenvolumen in Bytes

Die genannten Feldbezeichnungen sind die Standardwerte und werden benutzt, wenn SQLRatioStats aktiviert wird. Anmerkungen: Die Felder "bstor" und "bretr" sollten Werte grösser 32 Bit enthalten, da sonst bei ca. 4 GB nicht weitergezählt werden kann. Diese Anweisung wird einzig und allein von mod_ratio benutzt. Ohne mod_ratio hat
diese Anweisungen keinen Effekt.

06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLShowInfo Editieren
 SyntaxSQLShowInfo cmd-set numeric query-string
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Ab Versionmod_sql 4.x
 BeschreibungErzeugt eine Nachricht, die an den User nach einem erfolgreichen Befehl gesendet wird. Das erste Parameter, das Befehlsset, ist eine Liste von FTP Befehlen (per Komma getrennt, keine Leerzeichen), die ein Loggen starten. Die Liste der Befehle ist zu lang, um hier komplett aufgelistet zu werden und beinhaltet u.a. die wichtigen Befehle CWD, DELE, HELP, LIST, MKD, MODE, NLST, PASS, PASV, PORT und viele andere.
(Für eine komplette Liste schaue bitte in der RFC von FTP. http://www.proftpd.org/docs/rfc.html)

Logeinträge werden nur ausgeführt, wenn die FTP Befehle erfolgreich beendet wurden. Ein vorgestelltes "ERR_" erlaubt das loggen, wenn der ausgeführte Befehl nicht erfolgreich beendet wurde. Um beide Möglichkeiten (also erfolgreiche und unerfolgreiche Aktion) zu loggen, müssen beide Möglichkeiten genannt werden. Die Angabe '*' bezeichnet alle FTP Befehle, während 'ERR_*' alle Fehler bezeichnet.
Das zweite Argument 'numeric' gibt den numersichen Wert an, mit dem die Nachricht, an den FTP Client gesendet wird. Wähle diese Nummern NICHT zufällig aus, sie könnte vom Client weiterverarbeitet werden. In den meisten Fällen sollte man "214" für die Hilfsnachricht benutzen. Das gibt an, dass die Nachricht für den USer bestimmt ist.
Das dritte Argument, der 'query-string', ist identisch mit dem 'query-string' Argument dr 'SQLLog' Anweisung, mit einer Ergnzung: % : Der _erste_ Rückgabewert von SQLNamedQuery angegeben per Name.

Es gibt derzeit keinen Weg, um mehr als einen Rückgabewert pro Abfrage zu erfragen.

Alle Verweise auf nicht existierende Abfragen, nicht SELECT oder FREEFORM Abfragen, oder verweise auf Abfrage, die einen NULL Wert zürst zurückgeben, werden mit einem String "" ersetzt.
 Beispiel 1SQLNamedQuery count SELECT "count from users where userid='%u'" 
SQLShowInfo PASS "230" "You've logged on % times, %u" 

#Angenommen die Informationen existieren in der Datenbank, geben diese 
#beiden Anweisungen an, dass der User nach einem erfolgreichen Login mit 
#seinem Login Counter begrüsst wird. Beachte die Verwendung des "230" 
#Codes. Diese ist in der RFC für FTP definiert als "230 User logged in, proceed",
#was soviel bedeutet, daß alles ok ist. Dieser Code ist hier angebracht, da die 
#Nachricht unmittelbar nach Akzeptieren des Passwortes geschickt wird und 
#die Verbindung gestartet ist. (siehe auch http://www.rfc-editor.org/rfc/rfc959.txt)
06.00.2003 20:02
Zum Seitenanfang
 
 Name SQLUserWhereClause Editieren
 SyntaxSQLUserWhereClause whereclause
 KontextServer config <Global> <VirtualHost>
 Modulmod_sql 
 Ab Versionmod_sql 4.x
 BeschreibungGibt eine Abfrage an, die an jede User Abfrage angehängt wird. Die Abfrage muss alle relevanten Zeichen enthalten, jedoch KEIN führendes "and".

Um eine Verwendung einmal zu demonstrieren, stelle Dir eine User Tabelle mit einem "zugang_ok" Feld vor: SQLUserWhereClause "zugang_ok= 'true'" würde an jede User relevante Abfragen folgenden String anhängen: " WHERE (zugang_ok = 'true')"
06.00.2003 20:02
Zum Seitenanfang
 
 Name SyslogFacility Editieren
 SyntaxSyslogFacility facility-level
 KontextServer config
 Modulmod_core 
 Ab Version1.1.6
 BeschreibungProFTPD loggt seine Aktivitäten mit der Unix Syslog Methode, die verschiedene Klassifizierung von Log Mitteilungen erlaubt, hier als "facilities" bezeichnet.
Normalerweise, alle Anmelde relevanten Nachrichten werden mit der AUTHPRIV (oder AUTH) facility geloggt (als sichere Methode), während normale Log Mitteilung mit der DAEMON facility geloggt werden.

Die "SyslogFacility" Anweisung erlaubt es ALLEN Log Mitteilung mit einer anderen facility als Standard bearbeitet zu werden. Wenn diese Anweisung benutzt wird, werden ALLE Mitteilung durch die angegeben Methode geloggt, auch die Anmelde Log Nachrichten.

Der "facility level" muss wie folgt angeben werden:

AUTH (or AUTHPRIV)
CRON
DAEMON
KERN
LPR
MAIL,
NEWS
USER
UUCP
LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6 or LOCAL7.

Siehe auch: SystemLog
06.00.2003 20:02
Zum Seitenanfang
 
 Name SyslogLevel Editieren
 SyntaxSyslogLevel level
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab VersionPost 1.2.0rc2 CVS
 BeschreibungSyntax: SyslogLevel emerg|alert|crit|error|warn|notice|info|debug

Die "SyslogLevel" Anweisung stellt die Empfindlichkeit der Mitteilungen in den Fehlerlogs ein. Die folgendes Levels sind verfügbar, aufsteigend sortiert:

Level Description
emerg Notfall - System ist unbrauchbar
alert Alarm - Es muss sofort eingegriffen werden
crit Kritischer Zustand
error Fehlerzustand
warn Achtung !
Notice Normal, jedoch ungewöhnlicher Zustand
info Informational
debug Debug-level Nachrichten

Wenn eine bestimmte Level angegeben, alle Nachrichten von höherwertigen Levels werden ebenfalls geloggt. Z.B. wenn ein Sysloglevel "INFO" angegeben wird, dann werden auch die Meldungen von "Notice" und Warn" geloggt.

Hinweis: Mindestens "CRIT" ist empfohlen
06.00.2003 20:02
Zum Seitenanfang
 
 Name SystemLog Editieren
 SyntaxSystemLog filename
 KontextServer config
 Modulmod_log 
 Ab Version1.1.6pl1
 BeschreibungDie "SystemLog" Anweisung deaktiviert das Standardverhalten von ProFTPD den Syslog Mechanismus zu benutzen und gibt statt dessen die Logs auf den angegeben Dateinamen aus. Der Dateiname sollte einen kompletten Pfad enthalten. Wird diese Anweisung benutzt, so werden alle Syslog Anweisungen überschrieben. Außerdem kann mit dem Schlüsselwort "NONE" das gesamte Mitloggen deaktiviert werden.
06.00.2003 20:02
Zum Seitenanfang
 
 Name TCPAccessFiles Editieren
 SyntaxTCPAccessFiles allow-filename deny-filename
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_wrap 
 Ab Version1.2.1
 BeschreibungTCPAccessFiles specifies two files, an allow and a deny file, each of which contain the IP addresses, networks or name-based masks to be allowed or denied connections to the server. The files have the same format as the standard tcpwrappers hosts.allow/deny files.
Both file names are required. Also, the paths to both files must be the full path, with two exceptions: if the path starts with ~/, the check of that path will be delayed until a user requests a connection, at which time the path will be resolved to that user's home directory; or if the path starts with ~user/, where user is some system user. In this latter case, mod_wrap will attempt to resolve and verify the given user's home directory on start-up.
The service name for which mod_wrap will look in the indicated access files is proftpd by default; this can be configured via the TCPServiceName directive. There is a built-in precedence to the TCPAccessFiles, TCPGroupAccessFiles, and TCPUserAccessFiles directives, if all are used. mod_wrap will look for applicable TCPUserAccessFiles for the connecting user first. If no applicable TCPUserAccessFiles is found, mod_wrap will search for TCPGroupAccessFiles which pertain to the connecting user. If not found, mod_wrap will then look for the server-wide TCPAccessFiles directive. This allows for access control to be set on a per-server basis, and allow for per-user or per-group access control to be handled without interfering with the server access rules.
06.00.2003 20:02
Zum Seitenanfang
 
 Name TCPAccessSyslogLevels Editieren
 SyntaxTCPAccessSyslogLevels <match>; <remote-server>
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_wrap 
 StandardTCPAccessSyslogLevels info warn
 Ab Version1.2.1
 BeschreibungProFTPD can log when a connection is allowed, or denied, as the result of rules in the files specified in TCPAccessFiles, to the Unix syslog mechanism. A discussion on the syslog levels which can be used is given in the SyslogLevel directive
06.00.2003 20:02
Zum Seitenanfang
 
 Name tcpBackLog Editieren
 SyntaxtcpBackLog backlog-size
 KontextServer config
 Modulmod_core 
 Standard5
 Ab Version0.99.0
 BeschreibungThe tcpBackLog directive controls the tcp "backlog queue" when listening for connections in standalone mode (see ServerType). It has no affect upon servers in inetd mode. When a tcp connection is established by the tcp/ip stack inside the kernel, there is a short period of time between the actual establishment of the connection and the acceptance of the connection by a user-space program. The duration of this latency period is widely variable, and can depend upon several factors (hardware, system load, etc). During this period tcp connections cannot be accepted, as the port that was previously "listening" has become filled with the new connection. Under heavy connection load this can result in occasional (or even frequent!) "connection refused" messages returned to the incoming client, even when there is a service available to handle requests. To eliminate this problem, most modern tcp/ip stacks implement a "backlog queue" which is simply a pre-allocation of resources necessary to handle backlog-size connections during the latency period. The larger the backlog queue, the more connections can be established in a very short time period. The trade-off, of course, is kernel memory and/or other kernel resources. Generally it is not necessary to use a tcpBackLog directive, unless you intend to service a large number of virtual hosts (see <VirtualHost>), or have a consistently heavy system load. If you begin to notice or hear of "connection refused" messages from remote clients, try setting a slightly higher value to this directive.
06.00.2003 20:02
Zum Seitenanfang
 
 Name TCPGroupAccessFiles Editieren
 SyntaxTCPGroupAccessFiles group-expression allow-filename deny-filename
 Kontext
 Modul
 Ab Version0.99.0
 BeschreibungNoch kein Eintrag
06.00.2003 20:02
Zum Seitenanfang
 
 Name tcpNoDelay Editieren
 SyntaxtcpNoDelay on|off
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 Standardon
 Ab Version1.2.0pre3a
 BeschreibungThe tcpNoDelay directive controls the use of the TCP_NODELAY socket option (which disables the Nagle algorithm). ProFTPd uses TCP_NODELAY by default, which usually is a benefit but this can occasionally lead to problems with some clients, so tcpNoDelay is provided as a way to disable this option. You will not normally need to use this directive but if you have clients reporting unusually slow connections, try setting this to off.
06.00.2003 20:02
Zum Seitenanfang
 
 Name tcpReceiveWindow Editieren
 SyntaxtcpReceiveWindow window-size
 KontextServer config <VirtualHost>
 Modulmod_core 
 Standard8192
 Ab Version0.99.0
 BeschreibungThe tcpReceiveWindow directive configures the size (in octets) of all data connections' tcp receive windows. It is only used when receiving a file from a client over the data connection. Typically, a given tcp/ip implementation will use a relatively small receive window size (the number of octets that can be received at the tcp layer before a "turnaround" acknowledgement is required). When transferring a large amount of data over fast digital transmission lines which have a relatively high latency, a small receive window can dramatically affect perceived throughput because of the necessity to completely stop the transfer occasionally in order to wait for the remote endpoint to receive the acknowledgement and continue transmission. For example, on a T1 line (assuming full 1.544Mbps endpoint-to-endpoint throughput) with 100 ms latency, a 4k receive buffer will very dramatically reduce the perceived throughput. The default value of 8192 octets (8k) should be reasonable in common network configurations. Additionally, proftpd allocates its internal buffers to match the receive/ send window sizes; in order to maximize the reception/transmission performance (reducing the number of times data must be transfered from proftpd to the kernel tcp/ip stack). The tradeoff, of course, is memory; both kernel- and user-space. If running proftpd on a memory tight host (and on a low-bandwidth connection), it might be advisable to decrease both the tcpReceiveWindow and tcpSendWindow sizes.
06.00.2003 20:02
Zum Seitenanfang
 
 Name tcpSendWindow Editieren
 SyntaxtcpSendWindow window-size
 KontextServer config <VirtualHost>
 Modulmod_core 
 Standard8192
 Ab Version0.99.0
 BeschreibungThe tcpSendWindow directive configures the size (in octets) of all data connections' tcp send windows. It is only used when sending a file from the server to a client on the data connection. For a detailed description of receive/send window sizes see tcpReceiveWindow
06.00.2003 20:02
Zum Seitenanfang
 
 Name TCPUserAccessFiles Editieren
 SyntaxTCPUserAccessFiles user-expression allow-filename deny-filename
 Kontext
 Modul
 Ab Version0.99.0
 BeschreibungNoch kein Eintrag

06.00.2003 20:02
Zum Seitenanfang
 
 Name TimeoutIdle Editieren
 SyntaxTimeoutIdle seconds
 KontextServer config
 Modulmod_core 
 Standard600
 Ab Version0.99.0
 BeschreibungDie "TimeoutIdle" Anweisung gibt die maximale Zeit in Sekunden an, in denen eine Verbindung zwischen dem ProFTPD Server und dem Client bestehen kann, ohne das Daten entweder auf den Daten- oder Controlverbindung fliessen. Sobald Daten auf einer dieser Verbindungen fliessen, wird die Idle Zeit zurück gesetzt. Wird die "TimeOutIdle" Zeit auf "0" gesetzt, so können Clients unendlich verbunden bleiben, ohne Daten zu senden (das will man nicht wirklich)
06.00.2003 20:02
Zum Seitenanfang
 
 Name TimeoutLogin Editieren
 SyntaxTimeoutLogin seconds
 KontextServer config
 Modulmod_core 
 Standard300
 Ab Version0.99.0
 BeschreibungDie "TimeoutLogin" Anweisung stellt die maximale Zeit in Sekunden ein, die ein Client zum anmelden hat. Der timer wird nicht durch das Senden von Daten zurück gesetzt und wird nur das das senden einer gültigen Username, Passwort Kombination beendet.
Siehe auch: TimeoutIdle, TimeoutNoTransfer
06.00.2003 20:02
Zum Seitenanfang
 
 Name TimeoutNoTransfer Editieren
 SyntaxTimeoutNoTransfer seconds
 KontextServer config
 Modulmod_core 
 Standard300
 Ab Version0.99.0
 BeschreibungDie "TimeoutNoTransfer" Anweisung gibt die maximale Zeit in Sekunden an, die der Client hat, ohne eine Datenverbindung wie z.B. up/downloaden eines Files oder auch das Anzeigen eines Verzeichnisses zu erzeugen.

Siehe auch: TimeoutIdle, TimeoutLogin
06.00.2003 20:02
Zum Seitenanfang
 
 Name TimeoutStalled Editieren
 SyntaxTimeoutStalled seconds
 KontextServer config
 Modulmod_core 
 Standard3600
 Ab Version1.1.6
 BeschreibungDie "TimeoutStalled" Anweisung setzt die maximale Zeit in Sekunden, in denen eine Daten Verbindung zwischen dem ProFTPD Server und dem FTP Client bestehen kann, ohne das Daten tranferriert werden. Wenn die Zeit auf "0" Sekunden gesetzt wird (Standard), dann darf die Verbindung unendlich "hängen".
06.00.2003 20:02
Zum Seitenanfang
 
 Name TimesGMT Editieren
 SyntaxTimesGMT on|off
 KontextServer config
 Modulmod_core 
 Standardab 1.2.0pre9: on, vorher off
 Ab Version1.2.0pre9
 BeschreibungDie "TimesGMT" Anweisung gibt an, ob alle Zeiten, die durch "ls" oder "MDTM" ausgegeben werden, in GMT und nicht in lokaler Zeit angezeigt werden.
06.00.2003 20:02
Zum Seitenanfang
 
 Name TransferLog Editieren
 SyntaxTransferLog filename|NONE
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Standard/var/log/xferlog
 Ab Version1.1.4
 BeschreibungThe TransferLog directive configures the full path to the "wu-ftpd style" file transfer log. Separate log files can be created for each Anonymous and/or VirtualHost. Additionally, the special keyword NONE can be used, which disables wu-ftpd style transfer logging for the context in which the directive is used (only applicable to version 1.1.7 and later).
See Also: ExtendedLog, LogFormat
06.00.2003 20:02
Zum Seitenanfang
 
 Name Umask Editieren
 SyntaxUmask file octal-mask [directory octal-mask]
 KontextServer config <Global> <VirtualHost> <Anonymous> .ftpaccess <Directory>
 Modulmod_core 
 Standardnone
 Ab Version0.99.0
 BeschreibungMit der "Umask" Anweisung kann man das Zugriffsrechte fuer neue Files und Verzeichnisse bestimmen. Der "Umask" wert kann Global, in einem <VirtualHost> oder <Anonymous> Block angegeben werden, aber auch in einer unterliegenden <Directory> Angabe. Soll für Verzeichnisse ein andererer Wert gewünscht werden, so ist dieser als zweiter Wert anzugeben, sonst wird für Files und Verzeichniss der gleiche Wert genommen.

Der "Umask" Wert ist NICHT der eigentlich Wert für die Zugriffrechte, der z.B. bei "chmod 644 file" übergeben wird. Er ist die Differenz zwischen dem gewünschten Wert und "666" für Files bzw. "777" für Verzeichnisse. Das bedeutet auch, das Dateien NIEMALS ausführbar sein können, da ein Umask von "000" Dateien mit "666" (also Lesen, Schreiben für ALLE User) bedeutet:

Ein Umask von "022" bedeutet also das File mit "644" (666 - 022) und Verzeichnisse mit "755" (777 - 022) erzeugt werden, ein Umask von "026 027" bedeutet, das Files mit "640" und Verzeichnisse mit "750" erzeugt werden.

Muessen Files ausführbar gemacht werden, so kann das später manuell über den "SITE CHMOD" Befehl stattfinden, so fern dieser in der Config explizit erlaubt wurde.
 Beispiel 1# Alle Files auf 644, Verzeichnisse 755
Umask 022

# Alle Files und Verzeichnisse NUR für den Owner
Umask 066 077

 Beispiel 2
04.00.2006 03:00
Zum Seitenanfang
 
 Name UseFtpUsers Editieren
 SyntaxUseFtpUsers on|off
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Standardon
 Ab Version0.99.0
 BeschreibungUrsprünglich prüfen FTP Server ein spezielles Files (normalerweise /etc/ftpusers), wenn ein Client sich anmeldet. Ist der Username in diesem File aufgeführt, wird der Zugang verneint. Aus Kompilitätsgründen prüft proftpd standardmäßig diese Datei. Diese Eigenschaft kann durch die "UseFtpUsers" eingestellt werden
06.00.2003 20:02
Zum Seitenanfang
 
 Name UseGlobbing Editieren
 SyntaxUseGlobbing on | off
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_ls 
 Standardon
 Ab Version1.2.5.rc1
 BeschreibungDie "UseGlobbing" Anweisung gibt an, ob die glob() Funktionalitaet benutzt werden darf, die notwendig ist, mit Wildcards wie z.B. "*" zu arbeiten.
 Beispiel 1UseGlobbing ON (default)
ftp> ls kb*
227 Entering Passive Mode (127,0,0,1,73,233).
150 Opening ASCII mode data connection for file list
drwxr-xr-x   3 stonki   users        4096 Aug  2  2003 kbarcode
226 Transfer complete.

UseGlobbing OFF
ftp> ls kb*
227 Entering Passive Mode (127,0,0,1,73,241).
150 Opening ASCII mode data connection for file list
226 Transfer complete.




 Beispiel 2
05.00.2004 03:01
Zum Seitenanfang
 
 Name UseHostsAllowFile Editieren
 SyntaxUseHostsAllowFile filename
 KontextServer config <VirtualHost> <Directory>
 Modulmod_wrap 
 Standard/etc/hosts.allow
 Ab Version1.2.0
 BeschreibungDas "UseHostsAllowFile" gibt IP's, Netzwerke oder Domains an, denen der Zugriff zum erlaubt ist. Das Format ist das gleiche wie in den "hosts.allow" und "hosts.deny" Dateien.
 Beispiel 1UseHostsAllowFile /etc/ftpd.allow
06.00.2003 20:02
Zum Seitenanfang
 
 Name UseHostsDenyFile Editieren
 SyntaxUseHostsDenyFile filename
 KontextServer config <VirtualHost> <Anonymous>
 Modulmod_wrap 
 Standard/etc/hosts.deny
 Ab Version1.2.0
 BeschreibungGibt das hosts.deny File für den IP basierten Sicherheitscheck an. Siehe auch UseHostsAllowFile.
 Beispiel 1UseHostsDenyFile /etc/ftpd.deny
06.00.2003 20:02
Zum Seitenanfang
 
 Name User Editieren
 SyntaxUser userid
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab Version0.99.0
 BeschreibungDie "User" Anweisung gibt an, unter welchem User der Server normalerweise läuft. Standardmäßig läuft der Server unter "Root", was natürlich unerwünscht ist. Die "User" Anweisung in Verbindung mit der "Group" Anweisung gibt an, daß der Server schnellstmöglich nach dem Start zu dieser User/Gruppe wechselt.
Bei einigen Unix Varianten wird der Server zeitweise zum Root User zurück wechseln, um eine Task abzuarbeiten, der Root Rechte erfordert. Nachdem der Task dann beendet ist, switcht dann der Server zurück zu dem angegebenen User.

Wird "User" in einem "<VirtualServer>" Block angegeben, wird ProFTPD alle an diesen virtuellen Server eingehenden Verbindungen unter dieser UserID abwickeln.
Wird "User" (oder auch "Group") in einem anonymen Block angegeben, so wird ProFTPD bei anonymen Verbindungen mit dem angebenen User (und Gruppe) laufen.

Anmerkung: Wenn ein authentifizierter Benutzer angemeldet wird und eingeloggt ist, werden alle vorherigen Rechte vom Server freigegeben und er wechselt zu dem eingeloggten User (UID & GID) und hat keine Möglichkeit mehr, zu einer anderen Uid, Gid bzw. ROOT zu wechseln.
06.00.2003 20:02
Zum Seitenanfang
 
 Name UserAlias Editieren
 SyntaxUserAlias login-user userid
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_auth 
 Ab Version0.99.0
 BeschreibungProFTPD benötigt einen richtigen usernamen/uid, wenn User per PAM, AuthUserFile oder einen anderen Authentisierungsmechanismus angemeldet werdden. Machmal sind jedoch zusätzliche Aliase für einen Usernamen nowendig, jedoch ist es unerwünscht weitere Accounts einzurichten.
"UserAlias" bietet hierfür die Möglichkeit. Ein typisches und oft gebrauchtes Beispiel ist die Verwendung innerhalb des anonymen Konfigurationsblocks. Hier ist es normal für den Server, den Usernamen "ftp" als primären Namen zu nehmen, jedoch ist es auch gebräuchlich sich als "anonymous" einzuloggen.
Dies wird nun dadurch erreicht, folgendes in die Config einzutragen:
UserAlias anonymous ftp
 Beispiel 1UserAlias anonymous ftp
06.00.2003 20:02
Zum Seitenanfang
 
 Name UserDirRoot Editieren
 SyntaxUserDirRoot on|off
 Kontext<Anonymous>
 Modulmod_auth 
 Standardoff
 Ab Version1.2.0pre2
 BeschreibungWenn auf "true" gesetzt, wird das chroot(ed) Verzeichnis ein ein Unterverzeichnis des anonymen FTP Verzeichnis, basierend auf den Usernamen des aktuellen Benutzers.
 Beispiel 1Benutzer "foo" ist der Alias für "ftp", wenn man sich als "foo" einloggt, 
wird ProFTPD unter der UserID "ftp" laufen, 
jedoch das Verzeichnis "~ftp/foo" als root benutzen anstatt nur "~ftp".
06.00.2003 20:02
Zum Seitenanfang
 
 Name UseReverseDNS Editieren
 SyntaxUseReverseDNS on|off
 KontextServer config
 Modulmod_core 
 Standardon
 Ab Version1.1.7
 BeschreibungNormalerweise, wird bei eingehenden aktive Datenverbindungen und ausgegehenden passive Datenverbindungen eine DNS Abfrage (reverse DNS) gemacht, im die IP aufzulösen.
In einer chrooten Umgebung (wie z.B. <Anonymous> oder DefaultRoot), ist die /etc/hosts Datei nicht erreichbar und die einzigste Möglichkeit ist die Auflösung per DNS Abfrage.
Sollte aus gewissen Gründen diese Abfrage nicht möglich sein, wird proftpd solange blockiert, bis ein Timeout signalisiert wird. Hier sollte dann die Abfrage disabled werden.
06.00.2003 20:02
Zum Seitenanfang
 
 Name UserOwner Editieren
 SyntaxUserOwner username
 Kontext<Anonymous> <Directory>
 Modulmod_core 
 Ab Version1.2.pre11
 BeschreibungDie "UserOwner" Anweisung konfiguriert, welcher User der Besitzer von allen neuen Dateien und Verzeichnissen ist. Die User ID kann nicht 0 (für root) sein. In Verbindung mit der "GroupOwner" Anweisung wird nicht kontrolliert, ob der User Mitglied der Gruppe ist.

Siehe auch: GroupOwner
06.00.2003 20:02
Zum Seitenanfang
 
 Name UserPassword Editieren
 SyntaxUserPassword userid hashed-password
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Ab Version0.99.0pl5
 BeschreibungDie "UserPassword" Anweisung erstellt ein Passwort für einen speziellen User, was das Standard User Passwort (in /etc/passwd oder /etc/shadow) überschreibt. Das Überschreibung ist nur möglich in dem Zusammenhang, in dem die Anweisung "UserPassword" verwendet wird.
Das (hashed) Passwort ist ein Textstring, der mit der standard Unix crypt() Funktion umgewandelt wurde. Verwende KEIN Klartext Passwort.

Dieses kann sinnvoll sein in Verbidung mit der Anweisung "UserAlias" um verschiedene Zugänge zu einem anonymen FTP Server zu erstellen.

Siehe: GroupPassword
06.00.2003 20:02
Zum Seitenanfang
 
 Name UserRatio Editieren
 SyntaxUserRatio foo1 foo2 foo3
 Kontext<Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_ratio 
 Ab Version1.2.0
 BeschreibungThe UserRatio directive .... INCOMPLETE

Sorry, aber die englische Original Anleitung ist hier nicht vollständig
06.00.2003 20:02
Zum Seitenanfang
 
 Name WtmpLog Editieren
 SyntaxWtmpLog on|off|NONE
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Standardon
 Ab Version1.1.7
 BeschreibungDie "WtmpLog" Anweisung gibt an, ob ProFTPD Verbindungen mittels der "wtmp" vom System protollieren soll. Dieses wird u.a. von dem Befehl "last" zur Anzeige der letzten Verbindungen eines jeden Benutzers benutzt.

Standardmäßig werden alle Verbindungen mittel "wtmp" protokolliert.
06.00.2003 20:02
Zum Seitenanfang
 
 Name TransferRate Editieren
 SyntaxTransferRate FTP-Kommandos Kilobytes-pro-Sekunde:Freie Bytes ["user"|"group"|"class" expression]
 KontextServer config <Global> <VirtualHost> <Anonymous> .ftpaccess <Directory>
 Modulmod_xfer 
 Ab Version1.2.8rc1
 BeschreibungThe TransferRate directive is used to set transfer rates limits on the transfer of data. This directive allows for transfer rates to be set in a wide variety of contexts, on a per-command basis, and for certain subsets of users.

The cmds parameter may be an comma-separated list of any of the following commands: APPE, RETR, STOR, and STOU.

The kilobytes-per-sec parameter is the actual transfer rate to be applied.

The free-bytes parameter, if configured, allows that many bytes to be transferred before the rate controls are applied. This allows for clients transferring small files to be unthrottled, but for larger files, such as MP3s and ISO images, to be throttled.

The optional parameters are used to restrict the application of the rate controls only to specific users. If the "user" restriction is given, then expression is a user-expression specifying to which users the rate applies. Similarly for the "group" restriction. For the "class" restriction, the expression is simply the name of connection class for whom the rate will apply.
 Beispiel 1# Limit downloads for everyone except the special group of users 
TransferRate RETR 1.5 group !special-users
 Beispiel 2# Limit uploads (and appends!) to the prolific users in the 
# lotsofuploadfiles.net domain. This presumes that a Class has been defined 
# for that domain, and that that Class has been named "uploaders". Let them 
# upload small files without throttling, though.
TransferRate APPE,STOR 8.0:1024 class uploaders
06.00.2003 20:02
Zum Seitenanfang
 
 Name ControlsMaxClients Editieren
 SyntaxControlsMaxClients number
 KontextServer config
 Modulmod_ctrls 
 Standard5
 Ab Version1.2.8rc1 and later
 BeschreibungThe ControlsMaxClients directive configures the maximum number of pending client requests that will be handled when mod_ctrls checks the socket. number must be a positive number.
 Beispiel 1
 Beispiel 2
02.00.2004 05:01
Zum Seitenanfang
 
 Name ExecBeforeCommand Editieren
 SyntaxExecBeforeCommand cmds path [arg1 arg2 ...]
 KontextServer config <Global> <VirtualHost> <Anonymous> <Directory>
 Modulmod_exec 
 StandardExecBeforeCommand cmds path [arg1 arg2 ...]
 Ab Version1.2.8 and later
 BeschreibungDie ExecBeforeCommand Direktive dient dazu, ein Programm oder Script im angegebenen Pfad auszuführen, bevor ein angegebenes FTP-Kommando ausgeführt wird. Es können mehrere Kommandos durch Kommatas getrennt eingegeben werden. Es ist auch möglich, die Kommandogruppen der <Limit> Direktive wie READ, WRITE, und ALL zu verwenden. Das Programm wird mit den Rechten des momentan angemeldeten Benutzers ausgeführt. Es kann eine beliebige Anzahl Argumente an das Script übergeben werden.

Zusätzlich werden die "Cookies" der ExecEnviron Direktive als Argumente unterstützt.

Wichtig: Die Verwendung von DefaultRoot verursacht noch Probleme, die demnächst analysiert werden.
 Beispiel 1ExecBeforeCommand RETR /path/to/ftp-prep --file %f
 Beispiel 2
06.00.2003 20:02
Zum Seitenanfang
 
 Name RootRevoke Editieren
 SyntaxRootRevoke on|off
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_auth 
 Standardoff
 Ab Version1.2.5rc1 and later
 BeschreibungDie RootRevoke Direktive veranlaßt proftpd, alle root-Privilegien fallen zu lassen, wenn der Benutzer autentifiziert ist. Allerdings führt dies auch dazu, dass "Active Transfers" deaktiviert werden, wenn der Server auf Ports kleiner 1025 horcht. Diese Einschränkung gilt nur für "Active Transfers". Passive Transfers werden nicht blockiert.
 Beispiel 1
 Beispiel 2
06.00.2003 20:02
Zum Seitenanfang
 
 Name MD5FS Editieren
 SyntaxMD5FS path
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_md5fs 
 Standard
 Ab Version1.2.5rc1 and later
 BeschreibungDiese Anweisung gibt ein Verzeichnis (und dessen Subverzeichnisse) an, in dem automatisch MD5 Checksummen von upgeloadedeten Files erzeugt werden und als "filename.md5" abgelegt werden. Sollen mehrere Verzeichnisse angegeben werden, so kann man mehr MD5FS Anweisungen benutzen.
 Beispiel 1# path can use "~/" notation, in which case the path is resolved after successful login
MD5FS ~/public_ftp/md5

# calculate digests in the normal upload directory
MD5FS /path/to/upload/dir

# im normalen Home Dir
MD5FS ~
 Beispiel 2
02.00.2004 04:01
Zum Seitenanfang
 
 Name QuotaDirectoryTally Editieren
 SyntaxQuotaDirectoryTally on|off
 Kontext
 Modulmod_quotatab 
 Standard
 Ab Version1.2.5rc2 and later
 BeschreibungDie Anweisung "QuotaDirectoryTally" gibt an, dass auch Verzeichnis Operatoionen (z.B. erstellen oder löschen von Verzeichnisse) mit berücksichtig werden.
 Beispiel 1
 Beispiel 2
05.00.2004 03:01
Zum Seitenanfang
 
 Name QuotaDisplayUnits Editieren
 SyntaxQuotaDisplayUnits "b"|"Kb"|"Mb"|"Gb"
 Kontext
 Modulmod_quotatab 
 Standard
 Ab Version1.2.5rc2 and later
 BeschreibungDiese Anweisung gibt an wie dem User das Quota angezeigt wird. Bitte beachte, dass diese Anweisung NICHT das eigentliche Abspeichern der Quota beeinflusst, sondern nur die Anzeige.

"b": Byte
"Kb": kilobytes
"Mb": megabytes
"Gb": gigabytes

 Beispiel 1# display quota information in megabytes
QuotaDisplayUnits Mb
 Beispiel 2
05.00.2004 03:01
Zum Seitenanfang
 
 Name QuotaEngine Editieren
 SyntaxQuotaEngine on|off
 Kontext
 Modulmod_quotatab 
 Standard
 Ab Version1.2.5rc2 and later
 BeschreibungDiese Anweisung schaltet die eigentlich Quota Funktionalität an oder aus. Wenn auf "off", ist das Modul nicht aktiv. Dieses kann z.B. dazu benutzt werden, um das Modul auszuschalten ohne alle mod_quotatab Anweisung auszukommentieren.
 Beispiel 1
 Beispiel 2
05.00.2004 03:01
Zum Seitenanfang
 
 Name QuotaLimitTable Editieren
 SyntaxQuotaLimitTable source-type:source-info
 Kontext
 Modulmod_quotatab 
 Standard
 Ab Version1.2.5rc2 and later
 BeschreibungDiese Anweisung konfiguriert die notwendigen Information für das Modul, um die notwendigen Tabellen anzusprechen, die die Quota Limits usw. enthalten. Diese Anweisung ist notwendig für mod_quotatab.

File Quota:
Using file-based quota tables (source-type of "file") the data will be stored in binary fixed-record format. This module is accompanied by a tool, ftpquota, to help in creating and managing these file-based tables.

# Using a file-based limit table
QuotaLimitTable file:/usr/local/proftpd/ftpquota.limittab

# Using a file-based tally table
QuotaTallyTable file:/usr/local/proftpd/ftpquota.tallytab


SQL Based Quota:
siehe hier: http://www.castaglia.org/proftpd/modules/mod_quotatab_sql.html


LDAP Based Quota:
siehe hier: http://www.castaglia.org/proftpd/modules/mod_quotatab_ldap.html
 Beispiel 1
 Beispiel 2
05.00.2004 03:01
Zum Seitenanfang
 
 Name QuotaLog Editieren
 SyntaxQuotaLog file|"none"
 Kontext
 Modulmod_quotatab 
 Standard
 Ab Version1.2.5rc2 and later
 BeschreibungThe QuotaLog directive is used to a specify a log file for mod_quotatab reporting, and can be done a per-server basis. The file parameter must be the full path to the file to use for logging. Note that this path must not be to a world-writeable directory and, unless AllowLogSymlinks is explicitly set to on (generally a bad idea), the path must not be a symbolic link.

If file is "none", no logging will be done at all; this setting can be used to override a QuotaLog setting inherited from a <Global> context
 Beispiel 1
 Beispiel 2
05.00.2004 03:01
Zum Seitenanfang
 
 Name QuotaShowQuotas Editieren
 SyntaxQuotaShowQuotas on|off
 Kontext
 Modulmod_quotatab 
 Standard
 Ab Version1.2.5rc2 and later
 BeschreibungThe QuotaShowQuotas directive can be used to enable/disable mod_quotatab's response to a SITE QUOTA request. For some sites, revealing the current quota information may be considered an unnecessary, perhaps even detrimental, information leak; other sites may consider this a definite feature.
 Beispiel 1
 Beispiel 2
05.00.2004 03:01
Zum Seitenanfang
 
 Name QuotaTallyTable Editieren
 SyntaxQuotaTallyTable source-type:source-info
 Kontext
 Modulmod_quotatab 
 Standard
 Ab Version1.2.5rc2 and later
 BeschreibungThis directive configures the information necessary for the module to locate and use the table containing the quota tally, or the current byte/file counts for users, groups, classes, etc, and is required for mod_quotatab to function.

Please consult the relevant submodule documentation for details on that module's syntax for this configuration directive
 Beispiel 1
 Beispiel 2
05.00.2004 03:01
Zum Seitenanfang
 
 Name VirtualRootEngine Editieren
 SyntaxVRootEngine on|off
 KontextServer config <Global> <VirtualHost>
 Modulmod_vroot 
 Standard
 Ab Version1.2.8rc1
 BeschreibungDie "VrootEngine" aktiviert eine virtuellen Chroot Umgebung durch mod_vroot. Sofern aktiviert, ersetzt dieses virtuelle Chroot das chroot vom Betriebssystem. Die Direktive betrifft JEDE Defaultroot Direktive und auch jeden <Anonymous> Block in dem Server Bereich, in dem die Vroot Engine benutzt wird.

Die VrootEngine hat einige Vorteile: Zum einen benötigt sie keine Root Privilegien, so dass der ProFTPD Server auch als normaler User betrieben werden kann. Zum anderen sind Symlink ausserhalb der Chroot Umgebung möglich (siehe VRootOptions)
 Beispiel 1
 Beispiel 2
02.00.2004 04:02
Zum Seitenanfang
 
 Name WrapUserTables Editieren
 SyntaxWrapUserTables user-OR-expression source-type:allow-source-info source-info:deny-source-info
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_wrap 
 Standard
 Ab Version1.2.8rc1 and later
 BeschreibungThe WrapUserTables directive configures the information necessary for mod_wrap to locate and use the tables containing the access rules for specific users.

The user-OR-expression parameter is a logical OR expression, which means that the connecting user can be any the users listed for this directive to apply. User names may be negated with a ! prefix.

The next two parameters specify two tables, an allow and a deny table, each of which contain the IP addresses, networks or host/network masks to be allowed or denied.

Please consult the relevant submodule documentation for details on that module's syntax for specifying tables. The service name for which mod_wrap will look in the indicated access tables is "proftpd" by default; this can be configured via the WrapGroupTables, WrapServiceName, WrapTables
 Beispiel 1
 Beispiel 2
01.-1.2003 29:00
Zum Seitenanfang
 
 Name <IfClass> Editieren
 Syntax<IfClass ["AND"|"OR"] class-expression|"regex" regexp>
 KontextServer config <Global> <VirtualHost>
 Modulmod_ifsession 
 Standard
 Ab Version1.2.8rc1 and later
 BeschreibungDer <IfClass> Abschnitt soll die Konfigurations Anweisungen enthalen, die nur für eine bestimmte Klasse gelten soll. Klassen müssen natürlich aktiviert sein. Der verbindene Client muss dann in einer Klasse enthalten sein, damit diese Anweisungen benutzt werden. Beachte dass die "!" Schreibweise vor einer Klasse unterstützt wird.

Die Klassen Anweisung kann optional noch mit einem vorgestellten "AND" oder "OR" Keyword ergänzt werden. Wenn "AND" benutzt wird, dann müssen alle Teile des Ausdrucks mit WAHR bewertet werden um die Anweisungen auszuführen, bei "OR" muss nur ein Teil der Anweisung als WAHR erkannt werden. Die Standardeinstellung ist "OR".

Es können auch "regex" Key Wörter benutzt werden um die Abfrage zu gestalten.
 Beispiel 1 # Give friends, and local users, better transfer rates
  <IfClass local, friends>
    TransferRate RETR 8192
  </IfClass>

  TransferRate RETR 4096
 Beispiel 2
01.-1.2003 15:01
Zum Seitenanfang
 
 Name AuthOrder Editieren
 SyntaxAuthOrder [ module-name...]
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 Standard
 Ab Version1.2.8rc1 and later
 BeschreibungDie "Authorder" Anweisung erweitert die Anmelde Funktion von ProFTPD und stellt die Reihenfolge der verwendeten Module ein, in welcher Reihenfolge diese Verwendet werden sollen.

Mindestens ein Modulname muss angeben werden, nach oben hin gibt es keine Grenzen. Die verwendeten Modulle müssen über den kompletten Namen des Source Files (z.B. "mod_auth_unix.c") angegeben werden. Um eine komplette Liste zu bekommen, kann man sich die Module mit "proftpd -l" auflisten. Benutze jedoch nicht "mod_auth.c", da dieses Modul fuer das Front End notwendig ist.
 Beispiel 1# If the user's information is not in LDAP, 
# they're not a user to use this server. 
AuthOrder mod_ldap.c
 Beispiel 2# Use SQL tables first, then LDAP, for authentication 
AuthOrder mod_sql.c mod_ldap.c
05.00.2004 03:01
Zum Seitenanfang
 
 Name AnonRejectPasswords Editieren
 SyntaxAnonRejectPasswords regular-expression
 Kontext<Anonymous>
 Modulmod_auth 
 Standard
 Ab Version1.2.2rc3 and later
 BeschreibungDie AnonRejectPasswords Direktive gibt einen Filter in Form eines regulären Ausdrucks an, der auf Paßwörter bei der anonymen Anmeldung angewendet wird. Wenn das vom Benutzer eingegebene anonyme Paßwort auf den regulären Ausdruck zutrifft, wird die Anmeldung abgelehnt.
 Beispiel 1# reject all <Anonymous> logins that use "evil.org" 
# as part of the password
AnonRejectPasswords @evil\.org$
 Beispiel 2
06.00.2003 20:02
Zum Seitenanfang
 
 Name SocketOptions Editieren
 SyntaxSocketOptions [maxseg size] [rcvbuf size] [sndbuf size]
 KontextServer config <VirtualHost>
 Modulmod_core 
 Standard
 Ab Version1.2.8rc2 and later
 BeschreibungErsetzt die tcpReceiveWindow und tcpSendWindow Direktiven.
Die rcvbuf und sndbuf Parameter dienen zum Setzen der Senden-/Empfangen Fenstergrößen. Der maxseg Parameter setzt MSS mit Hilfe der setsockopt(2)'s TCP_MAXSEG Option. Wenn MSS größer als die Interface-MTU ist, wird es ignoriert.

Also, if accepted, this directive should probably expand to take in SocketBindTight (e.g. [bind each|any] parameters), and possibly the tcpBacklog and tcpNodelay directives. However, these directives are only allowed in the server config context (ideally, a <Daemon> context, but...that's for later).
 Beispiel 1
 Beispiel 2
06.00.2003 20:02
Zum Seitenanfang
 
 Name ScoreboardFile Editieren
 SyntaxScoreboardFile path
 KontextServer config
 Modulmod_core 
 Standard/var/run/proftpd.scoreboard
 Ab Version1.2.7rc1 and later
 BeschreibungDie ScoreboardFile Direktive gibt an, in welcher Datei der FTP-Dämon die Laufzeitinformationen (aktuelle Verbindungen...) speichert. Die Datei wird benötigt, damit Direktiven wie MaxClients und andere Befehle wie ftpwho und ftpcount funktionieren. Diese Direktive ersetzt die ScoreboardPath Direktive.
 Beispiel 1ScoreboardFile /var/run/proftpd.scoreboard
 Beispiel 2
06.00.2003 20:02
Zum Seitenanfang
 
 Name AllowOverride Editieren
 SyntaxAllowOverride [ on|off ["user"|"group"|"class" expression]]
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_core 
 Standardon
 Ab Version1.2.7rc1 and later
 BeschreibungNormalweise sucht ProFTPD in den ausgewaehlten Verzeichnissen nach ".ftpaccess" Files und versucht diese auszuwerten. Diese Files entsprchen in etwa den Apache ".htaccess" files und sind eine Art Mini Config Files, die nur fuer ein bestimmtes Verzeichnis gelten. Mit dieser Direktiven man nun einstellen, ob ProFTPD diese Files auswertet oder nicht.

Die optionale Angaben können benutzt werden, um die Auswertung von .ftpaccess Files auf gewisse User, Gruppen oder Klassen zu limitieren. for whom the rule will apply.
 Beispiel 1
 Beispiel 2
02.00.2004 04:01
Zum Seitenanfang
 
 Name CapabilitiesEngine Editieren
 SyntaxCapabilitiesEngine [ on off]
 KontextServer config <Global> <VirtualHost>
 Modulmod_cap 
 StandardOn, if running on a Linux hosts that supports capabilities
 Ab Version1.2.8rc1 and later
 BeschreibungThe CapabilitiesEngine directive enables or disables the module's runtime capabilities engine. If set to off, this module does no runtime capabilities processing at all. Use this directive to disable the module
 Beispiel 1
 Beispiel 2
06.00.2003 20:02
Zum Seitenanfang
 
 Name CapabilitiesSet Editieren
 SyntaxCapabilitiesSet [ [+/-]capability...]
 KontextServer config <Global> <VirtualHost>
 Modulmod_cap 
 Standard+CAP_CHOWN
 Ab Version1.2.8rc1 and later
 BeschreibungBy default, mod_cap removes all but two capabilities from the session-handling process: CAP_NET_BIND_SERVICE, for binding to ports lower than 1024 (required for active data transfers), and CAP_CHOWN, for allowing a process to change a file's ownership to a different user. The latter capability is only strictly necessary if the UserOwner configuration directive is in use; if not being used, the CAP_CHOWN capability is best removed. The CapabilitiesSet directive is used to manipulate the set of capabilities that mod_cap grants.

To remove a capability, prefix the name with a '-'; to enable a capability, use '+'. At present, this directive only supports one capability: CAP_CHOWN.
 Beispiel 1<IfModule mod_cap.c> 
 CapabilitiesEngine on 
 CapabilitiesSet -CAP_CHOWN 
</IfModule>
 Beispiel 2
06.00.2003 21:00
Zum Seitenanfang
 
 Name CreateHome Editieren
 SyntaxCreateHome [ off|on [<mode>] [skel <path>] [dirmode <mode>]]
 KontextServer config <Global> <VirtualHost>
 Modulmod_auth 
 Standard
 Ab Version1.2.8rc2 and later
 BeschreibungDie "CreateHome" Anweisung ermoeglich dem Server das automatischen Anlegen eines Heimatverzeichnisses, falls dieses beim Einloggen des Users noch nicht existiert.

Die Mode Angabe gibt die Rechte an, mit denen das Home Verzeichnis erstellt wird. Sofern nicht anders angegeben, ist der Standardwert 700.

Die optionale "Skeleton" Angabe kann dazu benutzt werden, ein Musterverzeichnis anzugeben. Dabei muss das vollstaendige Verzeichnis angeben werden und das Verzeichnis darf nicht Word-Writable sein. Die Files werden dann von diesem Verzeichnis in das neue Userverzeichnis mit den Rechten des gerade eingeloggten Users kopiert. Bitte beachte, das ggf. setuid oder setgid bits nicht uebernommen werden, ausserdem keine Sockets oder FIFOs.

Das ebenfalls optionale "dirmode" Parameter kann dazu benutzt werden, die Rechte der ueberliegenden Verzeichnisse zu bestimen, die ggf. angelegt werden muessen um das HomeDir anzulegen. Diese haben Standardmaessig die Rechte 711.
 Beispiel 1# Use the CreateHome default settings 
CreateHome on
 Beispiel 2# Specify a skeleton directory 
CreateHome on skel /etc/ftpd/skel

# Skeleton directory, with 700 intermediate directories 
CreateHome on skel /etc/ftpd/skel dirmode 700

# No skeleton, but make sure that intermediate 
# directories have 755 permissions. 
CreateHome on dirmode 755
01.-1.2003 22:01
Zum Seitenanfang
 
 Name DebugLevel Editieren
 SyntaxDebugLevel [ level]
 KontextServer config <Global> <VirtualHost>
 Modulmod_core 
 Standard0
 Ab Version1.2.8rc1 and later
 BeschreibungDie "Debug Level" Angabe setzt den Debug Level fuer den Server beim loggen. Der Level muss mit einem Parameter zwischen 0 und 9 angegeben werden. Diese Angabe hat Vorrang gegenueber eine Angabe beim starten von ProFTPD via "proftpd -d X".
 Beispiel 1DebugLevel 9
 Beispiel 2
01.00.2004 29:01
Zum Seitenanfang
 
 Name DefaultAddress Editieren
 SyntaxDefaultAddress [ dns-name|ip-address]
 KontextServer config
 Modulmod_core 
 Standard
 Ab Version1.2.7rc1 and later
 BeschreibungThis directive sets the the address the main server instance will bind to, the default behaviour is to select whatever IP the system reports as being the primary IP.
 Beispiel 1# We want the main server instance to listen on a specific IP
DefaultAddress 192.168.10.30
 Beispiel 2
06.00.2003 21:02
Zum Seitenanfang
 
 Name Define Editieren
 SyntaxDefine [ parameter-name]
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_core 
 Standard
 Ab Version1.2.6rc1 and later
 BeschreibungThis directive is used to initialise defines for use in conjunction with the IfDefine directive
 Beispiel 1IfDefine LoadLimiting
 Beispiel 2IfDefine HighPerformanceSetup
06.00.2003 21:02
Zum Seitenanfang
 
 Name HiddenStores Editieren
 SyntaxHiddenStores on|off
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit>
 Modulmod_xfer 
 Standardoff
 Ab Version1.2.7rc1 and later
 BeschreibungDie "HiddenStores" Anweisung unterteilt den Upload von Dateien in zwei Schritte: während des Uploades wird die Datei als ".in.DATEINAME" bezeichnet und erst nach beendeten Upload in "DATEINAME" umgennant. Dieses hilft u.a. gegen unvollständige Uploads und dagegen, daß Dateien bereits während des Uploades benutzt werden. Sollte der temporäre Dateiname schon bestehen, kann die Datei NICHT upgeloaded werden ! Die REST (restart STOR) Anweisung ist blockiert, wenn "HiddenStor" benutzt wird.

Dieses ist exakt die gleiche Anweisung wie "HiddenStor". Langfristig wird "HiddenStores" aufgrund des aussagekräftigeren Names "HiddenStor" ablösen.
 Beispiel 1
 Beispiel 2
02.00.2004 04:02
Zum Seitenanfang
 
 Name <IfDefine> Editieren
 Syntax<IfDefine [ [!]define-label]>
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_core 
 Standard
 Ab Version1.2.6rc1 and later
 BeschreibungDer <IfDefine test>...</IfDefine> Bereich wird benutzt, um gewisse Anweisungen nur auf ausdrücklichen Wunsch auszuführen. Die Anweisungen werden nur ausgeführt, wenn die Bedingungen als WAHR bewertet werden, ansonsten werden sie ignoriert. Dabei kann die Abfrage in zwei Formen erfolgen: 'parameter-name' oder negiert '!parameter-name'. Im ersten Beispiel werden die Anweisungen nur ausgeführt, wenn der Parametername angeben wurde. Im zweiten Fall nur, wenn der Parameter Name nicht angegeben wurde.

Das Parameter muss beim start von ProFTPD mit der -D Option übergeben werden.

<IfDefine> Bereiche sind staffelbar, so dass man einfache Multiparameter Abfragen ausführen kann.
 Beispiel 1$ proftpd -DDoSomething
--[ proftpd.conf ]--
<IfDefine DoSomething>
 # do something here
</IfDefine>
--[ end ]--
 Beispiel 2
01.-1.2003 15:01
Zum Seitenanfang
 
 Name <IfModule> Editieren
 SyntaxIfModule [ [!]module-name]
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit> .ftpaccess <Directory>
 Modulmod_core 
 Standard
 Ab Version1.2.6rc1 and later
 BeschreibungThe <IfModule test>...</IfModule> section is used to mark directives that are conditional. The directives within an IfModule section are only processed if the test is true. If the test is false, everything between the start and end markers is ignored.

The test in the <IfModule> section directive can be one of two forms: "module name" or "!module name"

In the former case, the directives between the start and end markers are only processed if the module named module name is compiled in to ProFTPD. The second format reverses the test, and only processes the directives if module name is not compiled in.

The module name argument is a module name as given as the file name of the module, at the time it was compiled. For example, mod_sql.c.

<IfModule> sections are nest-able, which can be used to implement simple multiple-module tests.
 Beispiel 1<IfModule mod_load.c>
  MaxLoad   10 "Access denied, server load too high"
</IfModule>
 Beispiel 2
06.00.2003 21:02
Zum Seitenanfang
 
 Name LDAPDoQuotaLookups Editieren
 SyntaxLDAPDoQuotaLookups [ on off ] [ "auth-base-prefix" ] [ "search-filter-template" ]
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 Standardoff
 Ab Versionmod_ldap v2.8.11 and later
 BeschreibungThis configuration directive activates LDAP quota lookups. The second argument to this directive is the LDAP prefix to use for authentication. The third argument is a template to be used for the search filter; %v will be replaced with the username that is being authenticated. By default, the search filter template "(&(uid=%v)(objectclass=posixAccount))" is used. Search filter templates are only supported in mod_ldap v2.7 and later.
 Beispiel 1
 Beispiel 2
06.00.2003 21:02
Zum Seitenanfang
 
 Name LDAPForceHomedirOnDemand Editieren
 SyntaxLDAPForceHomedirOnDemand [ on off ] [ directory-mode ]
 KontextServer config <Global> <VirtualHost>
 Modulmod_ldap 
 Standardoff
 Ab Versionmod_ldap v2.8.11 and later
 BeschreibungEven when a LDAPHomeDironDemandPrefix is configured, mod_ldap will allow individual users to have homeDirectory attributes that will override the default. With LDAPForceHomeDironDemand enabled, all LDAP-authenticated users are given the default prefix and/or suffix; homedirs may not be overridden by LDAP homeDirectory attributes.
 Beispiel 1
 Beispiel 2
06.00.2003 21:02
Zum Seitenanfang
 
 Name ListOptions Editieren
 SyntaxListOptions [ "options string"] [ ["strict"]]
 KontextServer config <Global> <VirtualHost> <Anonymous> .ftpaccess <Directory>
 Modulmod_ls 
 Standard
 Ab Version1.2.8rc1 and later
 BeschreibungNormalerweise werden FTP Befehle die das Listen von Verzeichnissen betreffen (z.B. NLST, LIST oder STAT) mit den vom Client uebergebenen Optionen abgearbeitet, um die Darstellung entsprechend zu gestalten (also incl. versteckten Files, Owner angaben etc). Die "ListOptions" Anweisung kann nun dieses Verhalten aendern und eine Standard Angabe setzen, die unabhaengig von den Client Angaben immer ausgefuehrt wird. So kann man z.B. gewisse Darstellungsformen verhindern oder erzwingen.

Zusatz zu den normalen per "-" angefangenen Optionen, erlaubt die Direktive auch Optionen mit "+" als Prefix. Diese Optionen verbietet ausdrücklich die angegebene Option, andere Optionen sind aber nach wie vor von der Client Seite möglich.

Wenn die Option "strict" benutzt wird, dann werden die vom Client übermittelten Optionen generell ignoriert und nur die mit der Direktive angegeben Optionen benutzt.
 Beispiel 1# Erzwingt grundsätzlich das Anzeigen von versteckten Files. 
ListOptions "-a"
 Beispiel 2# Hier wird nur das rekursive Listen verboten,
# alle anderen Optionen sind jedoch erlaubt. 
# Das "+R" verbietet alle "-R" Optionen, die vom
# Client übermittelt werden
ListOptions "+R"

# Erlaubt nur das einfache auflisten, keine Optionen 
# IMMER 
ListOptions "" strict
02.00.2004 10:01
Zum Seitenanfang
 
 Name MaxClientsPerUser Editieren
 SyntaxMaxClientsPerUser [ MaxClientsPerUser number|none [message]]
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_auth 
 Standard
 Ab Version1.2.7rc1 and later
 BeschreibungDie "MaxClientsPerUser" Anweisung konfiguriert die Maximale Anzahl von Clients, die sich gleichzeitig mit einem Usernamen einloggen können. Optional kann angegeben werden, welche Nachricht dem Client geschickt werden soll, falls die maximale Anzahl erreicht ist. Wenn keine Nachricht angegeben wird, wird die Systemweite Standardnachricht benutzt.
 Beispiel 1MaxClientsPerUser 1 "Only one such user at a time."
#Results in: 530 Only one such user at a time.
 Beispiel 2
02.00.2004 05:01
Zum Seitenanfang
 
 Name MaxRetrieveFileSize Editieren
 SyntaxMaxRetrieveFileSize [ number|"*" units ["user"|"group"|"class" expression]]
 KontextServer config <Global> <VirtualHost> <Anonymous> .ftpaccess <Directory>
 Modulmod_xfer 
 Standard
 Ab Version1.2.7rc1 and later
 BeschreibungBeim downloaden von Files durch einen Client (z.B. durch den RETR Befehl) wird der Server die Grösse der Datei durch dieses Direktive überpüfen und ggf. den Download verbieten.

Die Angabe "*" erlaubt unbegrenzte Dateigrössen und wird dazu benutzt, um vorherige Beschränkungen zu übershcreiben. Die angegebene Nummer gibt das Limit an und wird durch Angabe der Grösseneinheit ergänzt: "Gb" (Gigabytes), "Mb" (Megabytes), "Kb" (Kilobytes) oder "B" (bytes).

Weitere Angaben können dafür benutzt werden die Beschränkungen nur für gewisse User, Gruppen oder Klassen zu setzen.

Außerdem: MaxStoreFileSize
 Beispiel 1# Download bis zu 1 GB erlauben
MaxRetrieveFileSize 1 Gb
 Beispiel 2# Den Download nur für den User "fred" begrezen 
# für alle anderen aber nicht begrenzen
MaxStoreFileSize 50 Kb user fred
MaxStoreFileSize *
02.00.2004 04:02
Zum Seitenanfang
 
 Name VRootOptions Editieren
 SyntaxVRootOptions opt1 ...
 KontextServer config <Global> <VirtualHost>
 Modulmod_vroot 
 Standard
 Ab Version1.2.9rc2 and later
 BeschreibungDurch die "VRootOptions" Anweisung kann man das Verhalten von mod_vroot bestimmen. Zur Zeit ist eine Funktion enthalten:

* allowSymlinks
Normalerweise kann man symblische Links ausserhalb der Chroot Umgebung nicht erreichen. Durch diese Option wird der Zugriff jedoch erlaubt und Zugriffe durch symbolische Links ausserhalb der Chroot Umgebung möglich. Beachtet jedoch, dass dieses u.U. ein Sicherheitsloch sein kann.
 Beispiel 1VRootOptions allowSymlinks
 Beispiel 2
02.00.2004 04:02
Zum Seitenanfang
 
 Name MaxConnectionRate Editieren
 SyntaxMaxConnectionRate [ connections per second]
 KontextServer config
 Modulmod_core 
 Standard
 Ab Version1.2.7rc1 and later
 BeschreibungSetzt die maximale Anzahl an neuen TCP-Verbindungen pro Sekunde. Diese Einstellung gilt für den gesamten Server - ein zu niedriger Wert auf Servern mit viel Verkehr kann zur Nichterreichbarkeit führen.

Der eingegebene Wert ist die Anzahl von Verbindungen pro Sekunde, ab der die Blockade aktiv wird. Ein Wert von "1" führt dazu, dass alle Verbindungen blockiert werden.
 Beispiel 1MaxConnectionRate 4
 Beispiel 2
06.00.2003 21:02
Zum Seitenanfang
 
 Name MaxStoreFileSize Editieren
 SyntaxMaxStoreFileSize [ number|"*" units ["user"|"group"|"class" expression]]
 KontextServer config <Global> <VirtualHost> <Anonymous> .ftpaccess <Directory>
 Modulmod_xfer 
 Standard
 Ab Version1.2.7rc1 and later
 BeschreibungMit dieses Direktive kann man ProFTPD so konfigurieren, dass der Server beim Upload von Files die Dateigroesse ueberprueft und den Upload beim Ueberschreiten dieser Groesse dann abbricht.

Die Angabe "*" erlaubt unbegrenzte Dateigrössen und wird dazu benutzt, um vorherige Beschränkungen zu übershcreiben. Die angegebene Nummer gibt das Limit an und wird durch Angabe der Grösseneinheit ergänzt: "Gb" (Gigabytes), "Mb" (Megabytes), "Kb" (Kilobytes) oder "B" (bytes).

Weitere Angaben können dafür benutzt werden die Beschränkungen nur für gewisse User, Gruppen oder Klassen zu setzen.

See Also: MaxRetrieveFileSize
 Beispiel 1# Restrict upload to only 3 megabytes
MaxStoreFileSize 3 Mb
 Beispiel 2# Restrict anonymous uploads to 50k, 
# but allow unlimited upload size for everyone else
MaxStoreFileSize 50 Kb user anonymous
MaxStoreFileSize *
02.00.2004 04:02
Zum Seitenanfang
 
 Name SQLLogFile Editieren
 SyntaxSQLLogFile [ "name" limit|regex|ip value]
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit> .ftpaccess
 Modulmod_sql 
 Standard
 Ab Version1.2.8rc2 and later
 BeschreibungAb ProFTPD 1.2.8rc2 werden im normalen Debug Modus die SQL Befehle nicht mehr ausgegeben. Daher kann man mit dieser Direktive die SQL Befehle in eine Datei loggen.
 Beispiel 1SQLLogFile /var/log/proftpd_sql.log

Alle SQL Befehle werden in die Datei "/var/log/proftpd_sql.log" geloggt.
 Beispiel 2
06.00.2003 23:00
Zum Seitenanfang
 
 Name SQLUserInfo Editieren
 SyntaxSQLUserInfo [users userid password uid gid homedir shell]
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit> .ftpaccess
 Modulmod_sql 
 Standard????
 Ab Version1.2.5rc1 and later
 Beschreibungusertable: Gibt den Namen der Tabelle an, die die Informationen enthält
username : Gibt das Feld an, dass den Usernamen enthält
passwd : Gibt das Feld an, dass das Passwort für den User enthält
uid : Gibt das Feld an, dass die User ID enthält. Wenn die UID von der Datenbank empfangen wird, wird diese mit dem Wert von SQLMinUserUID überprüft und ggf. angepasst.
Falls der Feldname als "NULL" bezeichnet ist, wird die Datenbank keine Abfrage vornehmen und den Wert der UID auf den Wert von SQLDefaultUID setzen.
gid : Gibt das Feld an, dass die Gruppen ID enthält. Wenn die GID von der Datenbank empfangen wird, wird diese mit dem Wert von SQLMinUserGID überprüft und ggf. angepasst.
Falls der Feldname als "NULL" bezeichnet ist, wird die Datenbank keine Abfrage vornehmen und den Wert der UID auf den Wert von SQLDefaultGID setzen.
homedir : Gibt das Feld an, dass das Heimatverzeichnis vom User enthält. Ist die Feldbezeichnung als "NULL" angegeben, wird die Datenbank nicht das Heimatverzeichnis abfragen und stattdessen den Wert vom SQLHomeDIR übernehmen.
Sollte mit beiden Werten kein Heimatverzeichnis angegeben werden, so wird die Benutzerauthentisierung automatisch abgeschaltet.
shell : Gibt das Feld an, dass die Angabe der Shell enthält. Ist die Feldbezeichnung
als "NULL" angegeben, wird die Datenbank nicht die Shell abfragen und stattdessen
einen leeren String ("") übergeben.
 Beispiel 1
 Beispiel 2
06.00.2003 23:01
Zum Seitenanfang
 
 Name ServerLog Editieren
 SyntaxServerLog [ path]
 KontextServer config <Global> <VirtualHost>
 Modulmod_log 
 Standard
 Ab Version1.2.8rc1 and later
 BeschreibungDurch die "ServerLog" Anweisung kann das standardmässige Loggen via dem Syslog Mechanismus abgestellt werden und statt dessen ein alternatives File angegeben werden. Der Filename muss mit einem absoluten Pfad angegeben werden. Diese Anweisung überschreibt alle Einstellung der "SyslogFacility" oder "SystemLog" Anweisung.

Durch Kombination mit "DebugLevel" kann so z.B. ein Debug Loggen direkt in der Config erreicht werden.
 Beispiel 1DebugLevel 5
ServerLog /var/log/proftpd.debug.log
 Beispiel 2
02.00.2004 04:01
Zum Seitenanfang
 
 Name StoreUniquePrefix Editieren
 SyntaxStoreUniquePrefix [ "prefix"]
 KontextServer config <Global> <VirtualHost> <Anonymous> .ftpaccess <Directory>
 Modulmod_xfer 
 Standard
 Ab Version1.2.6rc1 and later
 BeschreibungDie "StoreUniquePrefix" Anweisung wird benutzt, um ein Prefix fuer einen zufaellig genierten Filenamen zu bestimmen. Die letzten 6 Zeichen werden dann zufaellig generiert. Alle Zeichen ausser "/" sind hierbei erlaubt.

Das aktivieren von zufaellig erzeugten Filenamen kann auf zwei Arten auf Clientseite erfolgen. Man muss jedoch beachten, das nicht alle FTP Clients diese Befehle unterstuetzen. Ein erzwingen von Serverseite ist (leider) nicht vorgesehen:

1) Mit dem "STOU" FTP Befehl
2) in dem "sunique" Befehl koennen zufaellige Dateinamen aktiviert werden, so dass "put", "mput" etc. dann diese benutzen.
 Beispiel 1StoreUniquePrefix "test"

[...]
230 User xx logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> sunique
Store unique on.
ftp> mput coolness.pl
mput coolness.pl [anpqy?]? a
Prompting off for duration of mput.
229 Entering Extended Passive Mode (|||1373|)
150 FILE: test4kzRvu
100% |*************************************|   323       1.26 MB/s    00:00 ETA
226 Transfer complete.


ftp> sunique
Store unique off.
ftp> mput coolness.pl
mput coolness.pl [anpqy?]? a
Prompting off for duration of mput.
229 Entering Extended Passive Mode (|||1374|)
150 Opening BINARY mode data connection for coolness.pl
100% |*************************************|   323       2.24 MB/s    00:00 ETA
226 Transfer complete.
 Beispiel 2
02.00.2004 03:01
Zum Seitenanfang
 
 Name TCPServiceName Editieren
 SyntaxTCPServiceName [ name]
 KontextServer config <Global> <VirtualHost>
 Modulmod_wrap 
 Standardproftpd
 Ab Version1.2.1 and later
 BeschreibungTCPServiceName is used to configure the name of the service under which mod_wrap will check the allow/deny files. By default, this is the name of the program started, i.e. "proftpd". However, some administrators may want to use a different, more generic service name, such as "ftpd"; use this directive for such needs.
 Beispiel 1
 Beispiel 2
06.00.2003 21:02
Zum Seitenanfang
 
 Name TLSCACertificateFile Editieren
 SyntaxTLSCACertificateFile [ "name" limit|regex|ip value]
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit> .ftpaccess
 Modulmod_tls 
 Standard????
 Ab Version1.2.8rc1 and later
 Beschreibung??????????
 Beispiel 1
 Beispiel 2
06.00.2003 21:02
Zum Seitenanfang
 
 Name TLSCACertificatePath Editieren
 SyntaxTLSCACertificatePath [ "name" limit|regex|ip value]
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit> .ftpaccess
 Modulmod_tls 
 Standard????
 Ab Version1.2.8rc1 and later
 Beschreibung?????
 Beispiel 1?????????
 Beispiel 2????????
06.00.2003 21:02
Zum Seitenanfang
 
 Name TLSCARevocationFile Editieren
 SyntaxTLSCARevocationFile [ "name" limit|regex|ip value]
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit> .ftpaccess
 Modulmod_tls 
 Standard????
 Ab Version1.2.8rc1 and later
 Beschreibung?????
 Beispiel 1
 Beispiel 2
06.00.2003 21:02
Zum Seitenanfang
 
 Name TLSCARevocationPath Editieren
 SyntaxTLSCARevocationPath [ "name" limit|regex|ip value]
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit> .ftpaccess
 Modulmod_tls 
 Standard?????
 Ab Version1.2.8rc1 and later
 Beschreibung???????
 Beispiel 1
 Beispiel 2
06.00.2003 21:02
Zum Seitenanfang
 
 Name TLSCertificateChainFile Editieren
 SyntaxTLSCertificateChainFile [ "name" limit|regex|ip value]
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit> .ftpaccess
 Modulmod_tls 
 Standard???????
 Ab Version1.2.8rc1 and later
 Beschreibung???????
 Beispiel 1
 Beispiel 2
06.00.2003 21:02
Zum Seitenanfang
 
 Name TLSCipherSuite Editieren
 SyntaxTLSCipherSuite [ "name" limit|regex|ip value]
 KontextServer config <Global> <VirtualHost> <Anonymous> <Limit> .ftpaccess
 Modulmod_tls 
 Standard???
 Ab Version1.2.8rc1 and later
 Beschreibung?????????
 Beispiel 1
 Beispiel 2
06.00.2003 21:02
Zum Seitenanfang
 
 Name TimeoutSession Editieren
 SyntaxTimeoutSession [ seconds ["user"|"group"|"class" expression]]
 KontextServer config <Global> <VirtualHost> <Anonymous>
 Modulmod_auth 
 Standard
 Ab Version1.2.6rc1 and later
 BeschreibungThe TimeoutSession directive sets the maximum number of seconds a control connection between the proftpd server and an FTP client can exist after the client has successfully authenticated. If the seconds argument is set to 0, sessions are allowed to last indefinitely (the default).

The optional parameters are used to restrict the session time limit only to specific users. If "user" restriction is given, then expression is a user-expression specifying to which users the time limit applies. Similarly for the "group" restriction. For the "class" restriction, the expression is simply the name of connection class for whom the time limit will apply. Note that use of the "user" or "group" classifiers within an <Anonymous> context will not make much sense.
 Beispiel 1# Kick the user off after 60 minutes
TimeoutSession 3600
 Beispiel 2# set a draconian session time limit 
TimeoutSession 60 

# set session time limits for everyone except a few privileged users 
TimeoutSession 300 user !bob,!dave,!jenni
06.00.2003 21:02
Zum Seitenanfang
 
 Name sql:// Editieren
 Syntaxsql://dbuser:dbpass@dbserver/db:dbname/ctxt:table[:id,parent_id,name,value]/conf:table[:id,name,value]/map:table[:conf_id,ctxt_id]
 KontextServer config
 Modulmod_conf_sql 
 Standardsql://foo:bar@localhost/db:proftpd/ctxt:ftpctxt:id,parent_id,name,value/conf:ftpconf:id,name,value/map:ftpmap:conf_id,ctxt_id
 Ab Version 1.2.9rc1 + mod_conf_sql-0.3
 BeschreibungConceptually, there are two basic elements in proftpd.conf: contexts and directives. Contexts include <Anonymous>, <VirtualHost>, the "server config" default context, and conditional contexts such as <IfDefine> and <IfModule>. Configuration directives are contained within a context.
Thus, to represent the configuration file contents within SQL tables, three things are needed: a table of contexts, a table of configuration directives, and a table that describes which directives are contained within which contexts. mod_conf_sql thus relies on a database schema of three tables. The SQL queries it uses rely on inner joins; this means that the underlying database must support INNER JOINs.

Database Schema
Here is an example MySQL schema for the tables mod_conf_sql uses:

DROP TABLE ftpctxt
CREATE TABLE ftpctxt (
id INTEGER UNSIGNED UNIQUE PRIMARY KEY NOT NULL AUTO_INCREMENT,
parent_id INTEGER UNSIGNED,
name VARCHAR(255),
value VARCHAR(255)
)

DROP TABLE ftpconf
CREATE TABLE ftpconf (
id INTEGER UNSIGNED UNIQUE PRIMARY KEY NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
value BLOB
)

DROP TABLE ftpmap
CREATE TABLE ftpmap (
conf_id INTEGER UNSIGNED NOT NULL,
ctxt_id INTEGER UNSIGNED NOT NULL
)

Each context and configuration directive is assigned a unique ID. The ftpmap table maps the configuration directive to its appropriate context by IDs. In addition, each context has a parent context, which allows for nested contexts, such as:
<Directory incoming>
<Limit DELE MKD RMD STOR XMKD XRMD>
DenyAll
</Limit>
</Directory>

The one allowed exception to this parent requirement context is the "server config" context, which is the default context in the proftpd.conf file. mod_conf_sql always starts by searching for this top-level context, which must have a NULL parent ID.
Configuration URI
How does mod_conf_sql do its magic? This module uses ProFTPD's FSIO API to temporarily redefine what it means to open and read a file; it presents a file-like interface to a SQL table such that ProFTPD's configuration parser does not know that the configuration is coming from a database rather than a flat file.

In order to accomplish this magic, mod_conf_sql needs to know some things about the database, so that it can connect and retrieve the configuration data. This information is provided in the "path" to the configuration file, using proftpd's -c/--config command-line option. The specific "path" to use for mod_conf_sql uses an URI-like syntax:

sql://dbuser:dbpass@dbserver/db:dbname/ctxt:table[:id,parent_id,name,value]/conf:table[:id,name,value]/map:table[:conf_id,ctxt_id]

The syntax is long, but it has to be so in order to provide all of the information mod_conf_sql needs. (This information cannot be stored in the configuration file because mod_conf_sql will be constructing that configuration file).
The "sql://" prefix informs the FSIO API that this "path" should be handled differently from a normal Unix filesystem path. The dbuser, dbpass, and dbserver parts are the usual data needed to connect to a database; database server information, such as port number or Unix domain socket path, can be added to the dbserver string. dbname configures the name of the database to use. Then, one specifies the names of the three tables to use (the context table, the directives table, and the mapping table); one can optionally configure the column names in those tables. Note that if column names are specified, all of the columns in the table must be provided.

The following example shows a "path" where the table names are specified, but the column names in those tables are left to the default values:

proftpd -c sql://foo:bar@localhost/db:proftpd/ctxt:ftpctxt/conf:ftpconf/map:ftpmap

Explicitly specifying the column names in the above URI would make the "path" look like:
proftpd -c sql://foo:bar@localhost/db:proftpd/ctxt:ftpctxt:id,parent_id,name,value/conf:ftpconf:id,name,value/map:ftpmap:conf_id,ctxt_id

This URI-like path syntax can also be used as the parameter to the Include configuration directive. Note, though, that at present mod_conf_sql will always search for the "server config" context in the ftpctxt table first, and then recurse through all its contained contexts. This means that using something like this in a proftpd.conf configuration file:

<VirtualHost 1.2.3.4>
Include sql://foo:bar@localhost/db:proftpd/ctxt:vhostctxt/conf:vhostconf/map:vhostmap
</VirtualHost>

is currently unsupported, and will not function as one would assume.
The mod_conf_sql module does not actually need mod_sql to be configured, using the normal mod_sql configuration directives; however, mod_conf_sql does require that mod_sql be compiled into proftpd. It is possible to store the configuration information in one database, and the user/group authentication information in a completely different database.

Importing/Exporting
While storing configuration information in SQL tables may make some tasks easier, it will making editing of configurations more complex. To help with this, mod_conf_sql is accompanied by two Perl scripts that can be used to import existing proftpd.conf files into a database, and to export configuration information from SQL tables back into a proftpd.conf file.

The conf2sql.pl script reads a given proftpd.conf configuration file and populates the SQL tables with the information from that file. One specifies the database connection information, and the full path to the proftpd.conf to be imported. The script will delete any existing information in the SQL tables. Use conf2sql.pl --help to see usage information.

Example:

conf2sql.pl --dbdriver=mysql --dbname=proftpd --dbuser=foo --dbpass=bar --dbserver=localhost /etc/proftpd.conf

Note that the script currently allows the SQL table names to be specified via command-line options, but the column names are assumed to be those mentioned above.
The sql2conf.pl script reads the SQL tables and reconstructs the proftpd.conf configuration file represented by those tables. One specifies the database connection information. Use sql2conf.pl --help to see usage information.

Example:

sql2conf.pl --dbdriver=mysql --dbname=proftpd --dbuser=foo --dbpass=bar --dbserver=localhost

Note that the script currently allows the SQL table names to be specified via command-line options, but the column names are assumed to be those mentioned above.
 Beispiel 1 proftpd -c sql://foo:bar@localhost/db:proftpd/ctxt:ftpctxt:id,parent_id,name,value/conf:ftpconf:id,name,value/map:ftpmap:conf_id,ctxt_id
 Beispiel 2  CREATE TABLE ftpctxt (
    id INTEGER UNSIGNED UNIQUE PRIMARY KEY NOT NULL AUTO_INCREMENT,
    parent_id INTEGER UNSIGNED,
    name VARCHAR(255),
    value VARCHAR(255)
  )

  CREATE TABLE ftpconf (
    id INTEGER UNSIGNED UNIQUE PRIMARY KEY NOT NULL AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    value BLOB
  )

  CREATE TABLE ftpmap (
    conf_id INTEGER UNSIGNED NOT NULL,
    ctxt_id INTEGER UNSIGNED NOT NULL
  )
07.00.2003 09:00
Zum Seitenanfang
 
 Name HideFiles Editieren
 SyntaxHideFiles [ [!]regexp|"none" ["user"|"group"|"class" expression]]
 Kontext.ftpaccess <Directory>
 Modul
 Standard
 Ab Version1.2.7rc1
 BeschreibungMit der "HideFiles" Anweisunge innerhalb eines <Directory> Bereiches kann man bestimmte Einträge, also Files und Verzeichnisse die einem bestimmten regulären Ausdruck entsprechen, ausblenden. Diese Files sind jedoch nur ausgeblendet, also durch FTP Befehle noch erreichbar. Dieses Verhalten kann man zusätzlich durch IgnoreHidden innerhalb eines <Limit> Bereiches weiter einstellen.

Die Angabe von "HideFiles" in einem <Directory> Bereich gilt auch für alle Unterverzeichnisse, ein "none" Parameter (normalerwise in einem .ftpaccess File) kann das Verhalten für bestimmte Unterverzeichnisse wieder verändern.

Ein optionales Parameter kann das Verstecken auf bestimmte User, Gruppen oder Klassen beschränken.


See Also: HideGroup, HideUser, HideNoAccess
 Beispiel 1Beispiel:
# Hide configuration and passwd files from view
HideFiles "(\.conf|passwd)$" 

# ...or the same regex, without the quotes 
HideFiles (\.conf|passwd)$ 

# Hide those same files from everyone _except_ a special user named "tj"
HideFiles (\.conf|passwd)$ user !tj 

# Using the ! prefix to "invert" the regular expression matching, 
# allow only .txt and .html files to be seen 
HideFiles !(\.txt|\.html)$ 

# Only let users of the webmaster group see HTML files, but nothing else
HideFiles !(\.htm|\.html)$ group webmaster
 Beispiel 2
05.00.2004 02:01
Zum Seitenanfang
 
 Name QuotaLock Editieren
 SyntaxQuotaLock file
 Kontext
 Modulmod_quotatab 
 StandardNone
 Ab Versionab 1.2.9 RC1
 BeschreibungThe QuotaLock directive sets the filename for a synchronization lockfile which mod_quotatab needs when communicating with some submodules, such as for SQL-based tables, which have trouble providing the needed synchronization/locking semantics. Use of QuotaLock is recommended, but not required.

If QuotaLock is used, it is strongly advised that the configured lock file not be on an NFS (or any other network) filesystem.
 Beispiel 1NEU
 Beispiel 2NEU
05.00.2004 02:01
Zum Seitenanfang
 
 Name ShaperAll Editieren
 SyntaxShaperAll ["priority" num] ["rate" num] ["shares" num]
 KontextServer config
 Modulmod_shaper 
 StandardShaperAll priority 10 rate -1.0 shares 5
 Ab Version1.2.10RC1
 BeschreibungThe ShaperAll directive is used to configure the overall mod_shaper settings: the rate for the entire daemon, the default shares for shaped sessions, and the default priority for shaped sessions. If specified, the priority cannot be a negative number, the rate is in KB/s and must be greater than zero, and the shares must be greater than one. For configuring the priority and shares for individual sessions, use the ShaperSession directive.

The default rate is -1.0, which means that in order for mod_shaper to function properly, a rate must be specified. The default shares setting is 5, the default priority is 10.

Examples:

# Change the overall daemon rate to 100 KB/s
ShaperAll rate 100

# Give 20 shares to each session by default, and have an overall rate of 1000
ShaperAll rate 1000 shares 20

See also: ShaperSession
 Beispiel 1NEU
 Beispiel 2NEU
05.00.2004 03:01
Zum Seitenanfang
 
 Name ShaperControlsACLs Editieren
 SyntaxShaperControlsACLs actions|"all" "allow"|"deny" "user"|"group" list
 KontextServer config
 Modulmod_shaper 
 Standardnone
 Ab Version1.2.10 RC1
 BeschreibungThe ShaperControlsACLs directive configures access lists of users or groups who are allowed (or denied) the ability to use the actions implemented by mod_ctrls. The default behavior is to deny everyone unless an ACL allowing access has been explicitly configured.

If "allow" is used, then list, a comma-delimited list of users or groups, can use the given actions; all others are denied. If "deny" is used, then the list of users or groups cannot use actions all others are allowed. Multiple ShaperControlsACLs directives may be used to configure ACLs for different control actions, and for both users and groups.

The actions provided by mod_shaper are "all", "info", and "sess".

Examples:

# Allow only user root to alter the overall settings
ShaperControlsACLs all allow user root

# Allow the ftpadm group to shape current sessions
ShaperControlsACLs sess allow group ftpadm

# Allow everyone but user bob to see the current shaper stats
ShaperControlsACLs info deny user bob
 Beispiel 1NEU
 Beispiel 2NEU
05.00.2004 03:01
Zum Seitenanfang
 
 Name ShaperEngine Editieren
 SyntaxShaperEngine on|off
 KontextServer config
 Modulmod_shaper 
 Standardoff
 Ab Version1.2.10 RC1
 BeschreibungThe ShaperEngine directive enables or disables the "shaping" of sessions by mod_shaper. If it is set to off this module does no shaping of transmitted traffic. Use this directive to disable the module instead of commenting out all mod_shaper directives.
 Beispiel 1NEU
 Beispiel 2NEU
05.00.2004 03:01
Zum Seitenanfang
 
 Name ShaperLog Editieren
 SyntaxShaperLog path|"none"
 KontextServer config
 Modulmod_shaper 
 Standardnone
 Ab Version1.2.10 RC1
 BeschreibungThe ShaperLog directive is used to a specify a log file for mod_shaper reporting and debugging. The path parameter must be the full path to the file to use for logging. Note that this path must not be to a world-writeable directory and, unless AllowLogSymlinks is explicitly set to on (generally a bad idea), the path must not be a symbolic link.

If path is "none", no logging will be done at all.
 Beispiel 1NEU
 Beispiel 2NEU
05.00.2004 03:01
Zum Seitenanfang
 
 Name ShaperSession Editieren
 SyntaxShaperSession ["priority" num] ["shares" +|-num]
 KontextServer config
 Modulmod_shaper 
 StandardShaperSession priority 10
 Ab Version1.2.10 RC1
 BeschreibungThe ShaperSession directive is used to set shaping data on a per-session basis. It is intended to be used within mod_ifsession conditional configuration blocks. If used, the priority must not be a negative number. The shares parameter must start with '+' or '-'; this value adjusts the default numbers of shares allotted to a session, increasing or reducing the sessions's shares. The ShaperAll directive is used for configuring overall shaping data.

Example:

# Reward my friends
ShaperSession shares +2

# Punish my enemies
ShaperSession shares -4

# Let <Directory>-level TransferRate directives take priority
ShaperSession priority 3

See also: ShaperAll
 Beispiel 1NEU
 Beispiel 2NEU
05.00.2004 03:01
Zum Seitenanfang
 
 Name ShaperTable Editieren
 SyntaxShaperTable path
 KontextServer config
 Modulmod_shaper 
 Standardnone
 Ab Version1.2.10 RC1
 BeschreibungThe ShaperTable directive configures a path to a file that mod_shaper uses for storing its shaping data. The given path must be an absolute path. Note: this directive is required for mod_shaper to function.
 Beispiel 1NEU
 Beispiel 2NEU
05.00.2004 03:01
Zum Seitenanfang
 
 Name shaper all Editieren
 Syntaxftpdctl shaper all [priority num] [rate num] [shares num]
 KontextControl Program
 Modulmod_shaper 
 Standard
 Ab Version1.2.10 RC1
 BeschreibungPurpose: Alter overall mod_shaper settings

The shaper all action is used to change the overall mod_shaper settings on-the-fly. If specified, the priority cannot be a negative number, the rate is in KB/s and must be greater than zero, and the shares must be greater than one. For changing the priority and shares for individual sessions, use the shaper sess action.

For example, to set the overall rate for the entire daemon to be 2000 KB/s:

ftpdctl shaper all rate 2000

To give every session 10 shares by default:

ftpdctl shaper all shares 10

To set the default priority for sessions:

ftpdctl shaper all priority 3

Note that the parameters can also be used simultaneously:

ftpdctl shaper all rate 2000 shares 10 priority 3

See also: shaper sess
 Beispiel 1NEU
 Beispiel 2NEU
05.00.2004 03:01
Zum Seitenanfang
 
 Name shaper info Editieren
 Syntaxftpdctl shaper info
 KontextControl Program
 Modulmod_shaper 
 Standard
 Ab Version1.2.10 RC1
 BeschreibungPurpose: Print information about current shaped sessions

The shaper info control action can be used to view information on currently shaped sessions. This includes the current overall rate, the default number of shares per session, and the total number of currently shaped sessions. It also lists the following for each shaped session: process ID (PID), share adjustments, priority, and session rate.

Example listing:

# ftpdctl shaper info
ftpdctl: Overall Rate: 100.00 KB/s
ftpdctl: Default Shares Per Session: 5
ftpdctl: Default Priority: 10
ftpdctl: Number of Shaped Sessions: 2
ftpdctl: PID Shares Priority Rate (KB/s)
ftpdctl: ----- -------------- -------- -----------
ftpdctl: 3912 7/14 (+2) 10 50.00
ftpdctl: 3915 7/14 (+2) 10 50.00

The "Shares" column is formatted as:

sharessession/sharestotal (+|-sharesadjust)

The +2 in the listing above is due to a ShaperSession affecting these sessions:

ShaperSession shares +2
 Beispiel 1NEU
 Beispiel 2NEU
05.00.2004 03:01
Zum Seitenanfang
 
 Name shaper sess Editieren
 Syntax ftpdctl shaper sess class|host|user name [priority num] [shares +|-num]
 KontextControl Program
 Modulmod_shaper 
 Standard
 Ab Version1.2.10 rc1
 BeschreibungPurpose: Alter specific session's mod_shaper settings

The shaper sess action is used to change session-specific shaping data on-the-fly. If given, the priority must not be a negative number. The shares parameter must start with '+' or '-'; this value adjusts the default numbers of shares allotted to a session, increasing or reducing the sessions's shares.

This example gives user alex an additional 10 shares:

ftpdctl shaper sess user alex shares +10

The following sets the priority for host cache.example.com such that TransferRate directives in <Anonymous> sections, <Directory> sections and .ftpacccess files have precedence (see the usage instructions for more details on priority):

ftpdctl shaper sess host cache.example.com priority 2

One can even change the settings on entire Classes of sessions:

ftpdctl shaper sess class proxy shares -3 priority 1

See also: shaper aLL
 Beispiel 1NEU
 Beispiel 2NEU
05.00.2004 03:01
Zum Seitenanfang
 
 Name MaxClientsPerClass Editieren
 SyntaxMaxClientsPerClass name number|"none" [message]
 KontextServer config <Global> <VirtualHost>
 Modulmod_auth 
 StandardNone
 Ab Version1.2.10RC1
 BeschreibungThe MaxClientsPerClass directive configures the maximum number of clients
that may be connected at any given time from the same Class. The
optional argument message may be used which will be displayed to a client
attempting to exceed the maximum value. If message is not supplied, a default
message of "Sorry, the maximum number of clients (%m) from your class are
already connected."</para>
 Beispiel 1NEU
 Beispiel 2NEU
05.00.2004 03:01
Zum Seitenanfang

Valid HTML 4.01!