
\chapter{Das ProFTPD Paket}

\section{Einleitung}

Mit diesem Paket wird der Filetransfer Dienst, im folgenden
auch Service genannt, auf dem Rechner installiert. Diese Service
bieten die M"oglichkeit Dateien vom Server oder auf den Server zu transferieren.


\section{Funktionen}

Das ProFTPD Paket stellt folgende Basis-Funktionalit"at zur Verf"ugung:

\sloppy
\begin{itemize}
  \item FTP-Server.\\
        Als Software wird der (\link{http://www.proftpd.org}{proftpd}) verwendet.
        Dieser FTP-Server bietet sehr viele Features.
\end{itemize}

\section{Voraussetzungen}

   Es ist abh"angig davon, dass eine aktuelle Version des Basissystems
   installiert ist.

\section{Installation}

   Das ProFTPD Paket wird "uber das Setup-Menue im Untermenue ''Package
   administration'' installiert.

\section{Das Menue im Setup-Program}

   Das ProFTPD Menue ist "uber den Menuepunkt ''Service administration''
   des Hauptmenues im zentralen Setup-Programm zu erreichen. Es ist wie
   folgt aufgebaut:

    \mbox {}

    \begin{tabular}{p{2cm}rll}
    & 1.  & & View documentaion \\
    & 2.  & & View changes \\
    & 3.  & & Edit configuration \\
    & 4.  & & Advanced configuration file handling \\
    & 5.  & & Start proftpd \\
    & 6.  & & Stop proftpd \\
    & 7.  & & Restart proftpd \\
    & 8.  & & Reload proftpd configuration \\
    & 9.  & & Show proftpd status \\
    & 10. & & Test proftpd configuration \\
    & 11. & & Force start of proftpd \\
    & 12. & & Logfile view \\
    \end{tabular}

    \begin{tabular}{p{3cm}lll}
    & 1. & & View proftpd.log \\
    & 2. & & View older proftpd.log \\
    & 3. & & View proftpd\_tls.log \\
    & 4. & & View older proftpd\_tls.log \\
    & 0. & & Return \\
    \end{tabular}

    \begin{tabular}{p{2cm}lll}
    & 13. & & ProFTPd tools \\
    \end{tabular}

    \begin{tabular}{p{3cm}lll}
    & 1. & & List ProFTPd local users \\
    & 2. & & List ProFTPd virtual users \\
    & 3. & & Show info about a ProFTPd virtual user \\
    & 4. & & Check ProFTPd virtual users \\
    & 5. & & Report current ProFTP sessions \\
    & 0. & & Return \\
    \end{tabular}

    \begin{tabular}{p{2cm}lll}
    & 0. & & Return \\
    \end{tabular}

    Das Menue ''Logfile view'' kann je nach Konfiguration und vorhendenen
    Logdateien unterschiedlich aussehen.

\section{"Anderung der Konfiguration}


   Die Konfiguration kann "uber den Menuepunkt ''Edit main Configuration''
   ge"andert werden. Standardm"a"sig wird dabei der Editor genutzt,
   der "uber den Menuepunkt ''Set eisfair configuration editor'' in der
   ''Base configuration'' eingestellt ist.

   Nachdem der Editor beendet wurde wird die Konfiguration mit dem
   eischk-Programm automatisch auf syntaktische und teilweise auch auf
   semantische Fehler gepr"uft. Werden Fehler festgestellt, so werden
   diese gemeldet und der Benutzer zur Korrektur aufgefordert. Wird eine
   solche Korrektur nicht durchgef"uhrt, so kann es zu unvorhersehbaren
   Fehlfunktionen bei dem Dienst kommen.

   Es wird zus"atzlich gefragt, ob die Konfiguration angewendet
   (aktiviert) werden soll. Wird dieses verneint, so unterbleibt die
   Aktivierung.\\\\

    \achtung{Beim n"achsten Boot-Vorgang kann es in diesem
             Fall zu unvorhersehbaren Fehlern kommen.}

   Wird die Aktivierung best"atigt, werden "uber ein Skript die
   durchgef"uhrten "Anderungen wirksam gemacht. Dazu wird der ProFTPD
   gestoppt und neu gestartet.

\section{Die Haupt-Konfigurationsdatei}

    Die Konfigurationsdatei \texttt{(/etc/config.d/proftpd)}
    enth"alt in einer Reihe von Abschnitten die Parameter, die den
    Dienst parametrisieren bzw. festlegen, ob der Dienst "uberhaupt
    zur Verf"ugung gestellt wird oder nicht.


\subsection{ProFTPD (general settings)}

\begin{description}

\config{START\_PROFTPD}
{START\_PROFTPD}
{STARTPROFTPD}
{
    Legt fest, ob der proftpd-Server gestartet wird.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{START\_PROFTPD='no'}
}

\end{description}

\subsection{ProFTPD (configuration action settings)}

\begin{description}

\config{PROFTPD\_MAN\_CONFIG}
{PROFTPD\_MAN\_CONFIG}
{PROFTPDMANCONFIG}
{
    Legt fest, ob der proftpd-server manuell konfiguriert wird.
    Wird PROFTPD\_MAN\_CONFIG='yes' gesetzt, so wird die Datei
    /etc/proftpd/proftpd.conf nicht erstellt bzw. ge"andert.
    Der Anwender ist selbst f"ur eine korrekte Erstellung
    der Konfiguration verantwortlich.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_MAN\_CONFIG='no'}
}

\end{description}

\subsection{ProFTPD (general configuration settings)}

\begin{description}

\config{PROFTPD\_START\_METHOD}
{PROFTPD\_START\_METHOD}
{PROFTPDSTARTMETHOD}
{
    Legt fest, wie der proftpd-Server gestartet werden soll.
    Bei Angabe von 'st' wird der proftpd-Server als sogenannter
    Standalone Server gestartet.
    Bei Angabe von 'xi' erfolgt der Start "uber den xinetd.
    Hier muss auch \texttt{START\_XINETD='yes'} in der
    Konfiguration des xinetd angegeben werden.

    G"ultige Werte: st, xi

    Standardeinstellung: \texttt{PROFTPD\_START\_METHOD='st'}
}

\config{PROFTPD\_DEFAULT\_ADDRESS}
{PROFTPD\_DEFAULT\_ADDRESS}
{PROFTPDDEFAULTADDRESS}
{
    Die Angabe einer IP-Adresse auf der der proftpd-Server
    'lauschen' soll. Hier wird keine echte IP Adresse angegeben
    sondern der Index der Angabe IP\_ETH\_x\_IPADDR aus der Base
    Konfiguration in /etc/config.d/base.

    Ist PROFTPD\_DEFAULT\_ADDRESS leer, so wird auf allen konfigurierten
    IP-Adressen 'gelauscht'.

    G"ultige Werte: Index von IP\_ETH\_x\_IPADDR oder leer

    Standardeinstellung: \texttt{PROFTPD\_DEFAULT\_ADDRESS=''}
}

\config{PROFTPD\_PORT}
{PROFTPD\_PORT}
{PROFTPDPORT}
{
    Definiert den Port, auf dem der proftpd-Server ''lauschen'' soll.

    G"ultige Werte: Port Nummer, Standard=21

    Standardeinstellung: \texttt{PROFTPD\_PORT='21'}
}

\config{PROFTPD\_DEBUG\_LEVEL}
{PROFTPD\_DEBUG\_LEVEL}
{PROFTPDDEBUGLEVEL}
{
    Setzt den Level f"ur das Debbuging des ProFTPD.\\
    Es sind Level von 0 (kein Debugging) bis 10 (maximales Debugging) m"ogleich.

    G"ultige Werte: 1 bis 10

    Standardeinstellung: \texttt{PROFTPD\_DEBUG\_LEVEL='0'}
}

\config{PROFTPD\_USE\_IPV6}
{PROFTPD\_USE\_IPV6}
{PROFTPDUSEIPV6}
{
    Definiert auf welchen IP-Adressen der proftpd-Server ''lauschen'' soll. \\
    PROFTPD\_USE\_IPV6=''no''    nur auf IPv4 Adressen. \\
    PROFTPD\_USE\_IPV6=''yes''   zus"atzlich auf IPv6 Adressen.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_USE\_IPV6='no'}
}

\config{PROFTPD\_SERVERNAME}
{PROFTPD\_SERVERNAME}
{PROFTPDSERVERNAME}
{
    Server Name, der dem Benutzer angezeigt wird, wenn er
    sich mit dem proftpd-Server verbindet.\\
    Wird PROFTPD\_SERVERNAME='NONE' gesetzt, so wird nur die Meldung
    'FTP server ready' ausgegeben.

    G"ultige Werte: Zeichenfolge oder NONE

    Standardeinstellung: \texttt{PROFTPD\_SERVERNAME='ProFTPD Default Installation'}
}

\config{PROFTPD\_PASSIVE\_PORTS}
{PROFTPD\_PASSIVE\_PORTS}
{PROFTPDPASSIVEPORTS}
{
    Benutze ausschliesslich Ports im Bereich <first port> <last port>
    f"ur passive-mode downloads.

    G"ultige Werte: <first port> <last port>

    Standardeinstellung: \texttt{PROFTPD\_PASSIVE\_PORTS='40000 40999'}
}

\config{PROFTPD\_MASQ\_ADDRESS}
{PROFTPD\_MASQ\_ADDRESS}
{PROFTPDMASQADDRESS}
{
    Erzwinge die angegebene IP-Adresse bzw. den Hostname bei
    Beantwortung von PASV/EPSV/SPSV Kommandos.

    G"ultige Werte: IP-Adresse, Hostname oder URL

    Standardeinstellung: \texttt{PROFTPD\_MASQ\_ADDRESS=''}
}

\end{description}

\subsection{ProFTPD (file related settings)}

\begin{description}

\config{PROFTPD\_UMASKS}
{PROFTPD\_UMASKS}
{PROFTPDUMAKS}
{
    Format \textless umask f"ur Dateien\textgreater:\textless umask f"ur Verzeichnisse\textgreater.
    Beim Erstellen von Dateien bzw. Verzeichnissen zu nutzende
    umask Angabe.
    Der von ProFTPD benutzte Standardwert ist 022:022.
    Siehe umask Kommando.

    G"ultige Werte: Zahl:Zahl

    Standardeinstellung: \texttt{PROFTPD\_UMASKS='022:022'}
}

\config{PROFTPD\_LIST\_DOT\_FILES}
{PROFTPD\_LIST\_DOT\_FILES}
{PROFTPDLISTDOTFILES}
{
    Zeige Dateien, die mit einem Punkt beginnen an, ja oder nein.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_LIST\_DOT\_FILES='no'}
}

\config{PROFTPD\_USE\_GLOBBING}
{PROFTPD\_USE\_GLOBBING}
{PROFTPDUSEGLOBBING}
{
    Erlaube dir glob() Funktionalit"at, ja oder nein.\\
    Unterst"utze also Wildcards wie *.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_USE\_GLOBBING='no'}
}

\config{PROFTPD\_TIMES\_GMT}
{PROFTPD\_TIMES\_GMT}
{PROFTPDTIMESGMT}
{
    Schalte die Zeitdarstellung zwischen GMT und lokal um.\\
    yes: Darstellung von ls und MDTM Zeiten in GMT.\\
    no: Darstellung in lokaler Zeit.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_TIMES\_GMT='no'}
}

\config{PROFTPD\_ALLOW\_OVERWRITE}
{PROFTPD\_ALLOW\_OVERWRITE}
{PROFTPDALLOWOVERWRITE}
{
    Beim Transfer neuer Dateien d"urfen bestehende Dateien
    "uberschrieben werden, ja oder nein.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_ALLOW\_OVERWRITE='yes'}
}

\config{PROFTPD\_HIDDEN\_STORES}
{PROFTPD\_HIDDEN\_STORES}
{PROFTPDHIDDENSTORES}
{
    Ist PROFTPD\_HIDDEN\_STORES auf 'yes' gesetzt, so findet
    ein sog. two-step file upload statt.
    Dateien werden zun"achst als .in.FILENAME. gespeichert.
    Ist der Upload komplett, so werden die Dateien in
    FILENAME umbenannt.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_HIDDEN\_STORES='yes'}
}

\config{PROFTPD\_ALLOW\_CHMOD\_ALL}
{PROFTPD\_ALLOW\_CHMOD\_ALL}
{PROFTPDALLOWCHMODALL}
{
    Erlaube allen Usern die Ver"anderung von Dateien
    "uber das SITE CHMOD Kommando, ja oder nein.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_ALLOW\_CHMOD\_ALL='no'}
}

\config{PROFTPD\_ALLOW\_CHMOD\_SPECIAL}
{PROFTPD\_ALLOW\_CHMOD\_SPECIAL}
{PROFTPDALLOWCHMODSPECIAL}
{
    Erstelle eine spezielle Konfiguration um das
    SITE CHMOD Kommando zu erlauben, ja oder nein.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_ALLOW\_CHMOD\_SPECIAL='no'}
}

\config{PROFTPD\_ALLOW\_CHMOD\_N}
{PROFTPD\_ALLOW\_CHMOD\_N}
{PROFTPDALLOWCHMODN}
{
    Anzahl der Konfigurationselemente.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PROFTPD\_ALLOW\_CHMOD\_N='1'}
}

\config{PROFTPD\_ALLOW\_CHMOD\_x\_TYPE}
{PROFTPD\_ALLOW\_CHMOD\_x\_TYPE}
{PROFTPDALLOWCHMODxTYPE}
{
    Typ des Konfigurationselements (U Username,
    UR UsernameRegex, G Groupname, GR GroupnameRegex).

    G"ultige Werte: U, UR, G, GR

    Standardeinstellung: \texttt{PROFTPD\_ALLOW\_CHMOD\_x\_TYPE='U'}
}

\config{PROFTPD\_ALLOW\_CHMOD\_x\_ELEM}
{PROFTPD\_ALLOW\_CHMOD\_x\_ELEM}
{PROFTPDALLOWCHMODxELEM}
{
    Konfigurationselement, z.B. root (Username), user (Groupname),
    \^{}ftp (UsernameRegex, alle Usernamen, die mit ftp beginnen,
    \^{}group[0-9] (GroupnameRegex, alle User in Gruppen, die
    mit group starten und als Folge Ziffern haben.

    G"ultige Werte: Usernamen, Groupnamen, regul"are Ausdr"ucke

    Standardeinstellung: \texttt{PROFTPD\_ALLOW\_CHMOD\_x\_ELEM='root'}
}

\end{description}

\subsection{ProFTPD (timeout settings)}

\begin{description}

\config{PROFTPD\_SESSION\_TIMEOUT}
{PROFTPD\_SESSION\_TIMEOUT}
{PROFTPDSESSIONTIMEOUT}
{
    Beende dir FTP Session nach PROFTPD\_SESSION\_TIMEOUT Sekunden,
    wenn keine Aktivit"aten in dieser Zeit erfolgen.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PROFTPD\_SESSION\_TIMEOUT='900'}
}

\end{description}

\subsection{ProFTPD (access settings)}

\begin{description}

\config{PROFTPD\_ALLOW\_ROOT\_ACCESS}
{PROFTPD\_ALLOW\_ROOT\_ACCESS}
{PROFTPDALLOWROOTACCESS}
{
    Legt fest, ob sich root per FTP einloggen darf (yes) oder ob es
    ihm  verboten wird (no). Standardm"a"sig ist 'no' voreingestellt,
    weil ansonsten das root-Passwort unverschl"usselt "uber die
    Leitung geht.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_ALLOW\_ROOT\_ACCESS='no'}
}

\config{PROFTPD\_REQUIRE\_VALID\_SHELL}
{PROFTPD\_REQUIRE\_VALID\_SHELL}
{PROFTPDREQUIREVALIDSHELL}
{
    Legt fest, ob sich ein Unix User nur dann per FTP einloggen darf
    wenn f"ur ihr in /etc/passwd eine Shell aus /etc/shells eingetragen
    ist 'yes'. Bei 'no' k"onnen sich ggf. auch User ohne g"ultige Shell
    per FTP einloggen.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_REQUIRE\_VALID\_SHELL='yes'}
}

\config{PROFTPD\_ENABLE\_UNIX\_USERS}
{PROFTPD\_ENABLE\_UNIX\_USERS}
{PROFTPDENABLEUNIXUSERS}
{
    Legt fest, ob sich echte Unix User per FTP einloggen d"urfen (yes)
    oder nicht (no).

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_ENABLE\_UNIX\_USERS='yes'}
}

\config{PROFTPD\_ENABLE\_ANONYMOUS\_USERS}
{PROFTPD\_ENABLE\_ANONYMOUS\_USERS}
{PROFTPDENABLEANONYMOUSUSERS}
{
    Legt fest, ob sich sog. anonymous User per FTP einloggen d"urfen (yes)
    oder nicht (no). Als Passwort wird eine Mail Adresse erwartet.\\
    Das Home-Verzeichnis der anonymous User ist /home/proftpd. \\
    Die anonymous User d"urfen nur Downloads ausf"uhren, keine Uploads.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_ENABLE\_ANONYMOUS\_USERS='no'}
}

\config{PROFTPD\_DONT\_CHROOT\_GROUP}
{PROFTPD\_DONT\_CHROOT\_GROUP}
{PROFTPDDONTCHROOTGROUP}
{
    Standardm"a"sig kann jeder User (au"ser root) mit FTP nicht
    "uber sein Homeverzeichnis herauskommen. D.h. der FTP-User
    'sieht' nur sein eigenes Homeverzeichnis inkl. darunter
    liegende Verzeichnisse und Dateien, nicht aber Verzeichnisse
    oberhalb des Homeverzeichnisses. Hier kann eine Gruppe
    oder mittels Komma getrennt mehrere Gruppen
    (Gruppennamen) angeben werden, deren Mitglieder nicht auf ihre
    Homeverzeichnisse beschr"ankt sind. Wenn du nicht wei"st, was du
    damit anstellst, bitte leer lassen.

    G"ultige Werte: Gruppenname oder Liste von Gruppennamen

    Standardeinstellung: \texttt{PROFTPD\_DONT\_CHROOT\_GROUP=''}
}

\config{PROFTPD\_AUTH\_ORDER}
{PROFTPD\_AUTH\_ORDER}
{PROFTPDAUTHORDER}
{
    Reihenfolge der Authentifizierungspr"ufung, wenn ein virtueller User und
    ein Linux User mit gleichem Namen existieren. \\
    virtual-linux: virtueller User vor Linux User \\
    linux-virtual: Linux User vor virtueller User

    G"ultige Werte: virtual-linux oder linux-virtual

    Standardeinstellung: \texttt{PROFTPD\_AUTH\_ORDER='virtual-linux'}
}


\config{PROFTPD\_USE\_TLS}
{PROFTPD\_USE\_TLS}
{PROFTPDUSEETLS}
{
    Benutzung von SSL/TLS.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_USE\_TLS='no'}
}


\config{PROFTPD\_FORCE\_TLS}
{PROFTPD\_FORCE\_TLS}
{PROFTPDFORCETLS}
{
    Erzwinge dir Benutzung von SSL/TLS.\\
    Klartext Verbindungen sind nicht erlaubt.\\
    PROFTPD\_FORCE\_TLS='yes' ben"otigt PROFTPD\_USE\_TLS='yes'

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_FORCE\_TLS='no'}
}

\config{PROFTPD\_CERTIFICATE\_FILE}
{PROFTPD\_CERTIFICATE\_FILE}
{PROFTPCERTIFICATEFILE}
{
    Name des Zertifikates, welches genutzt werden soll.
    Wird ein Zertifikat ausgew"ahlt, so wird ggf. ein
    symbolischer Link mit dem Namen proftpd.pem
    erstellt, der auf das ausgew"ahlte Zertifikat zeigt.

    G"ultige Werte: Dateiname (.pem-Datei in /usr/local/ssl/certs)

    Standardeinstellung: \texttt{PROFTPD\_CERTIFICATE\_FILE='proftpd.pem'}
}

\end{description}

\subsection{ProFTPD (limit settings)}

\begin{description}

\config{PROFTPD\_MAX\_CLIENTS}
{PROFTPD\_MAX\_CLIENTS}
{PROFTPDMAXCLIENTS}
{
    Maximale Anzahl der Clients, die gleichzeitig auf dem FTP-Server eingeloggt
    sein d"urfen.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PROFTPD\_MAX\_CLIENTS='20'}
}

\config{PROFTPD\_MAX\_CLIENTS\_PER\_HOST}
{PROFTPD\_MAX\_CLIENTS\_PER\_HOST}
{PROFTPDMAXCLIENTSPERHOST}
{
    Anzahl der Clients, die gleichzeitig von einem anderen Rechner aus
    auf dem FTP-Server eingeloggt sein d"urfen.
    Leer bedeutet ''keine Begrenzung''.

    G"ultige Werte: Zahl oder leer

    Standardeinstellung: \texttt{PROFTPD\_MAX\_CLIENTS\_PER\_HOST=''}
}

\config{PROFTPD\_MAX\_CLIENTS\_PER\_USER}
{PROFTPD\_MAX\_CLIENTS\_PER\_USER}
{PROFTPDMAXCLIENTSPERUSER}
{
    Anzahl der Clients, die gleichzeitig mit der gleichen User-ID
    auf dem FTP-Server eingeloggt sein d"urfen.
    Leer bedeutet ''keine Begrenzung''.

    G"ultige Werte: Zahl oder leer

    Standardeinstellung: \texttt{PROFTPD\_MAX\_CLIENTS\_PER\_USER=''}
}

\end{description}



\subsection{ProFTPD (bandwidth settings)}

\begin{description}

\config{PROFTPD\_USER\_BANDWIDTH}
{PROFTPD\_USER\_BANDWIDTH}
{PROFTPDUSERBANDWIDTH}
{
    Format [\textless upload\textgreater]:[\textless download\textgreater].
    Beschr"anke die zul"assige Bandbreite f"ur alle User
    (Unix-User und virtuelle User).

    Angabe in Kilobyte pro Sekunde.

    Beispiele:\\
    leer~~ keine Limits\\
    256:64 256 KB/s f"ur Uploads, 64 KB/s f"ur Downloads\\
    256:~~ 256 KB/s f"ur Uploads, keine Grenze f"ur Downloads\\
    :64~~~ keine Grenze  f"ur Uploads, 64 KB/s f"ur Downloads

    G"ultige Werte: leer, Zahl:Zahl, Zahl:leer oder leer:Zahl

    Standardeinstellung: \texttt{PROFTPD\_USER\_BANDWIDTH=''}
}

\config{PROFTPD\_ANONYMOUS\_BANDWIDTH}
{PROFTPD\_ANONYMOUS\_BANDWIDTH}
{PROFTPDANONYMOUSBANDWIDTH}
{
    Wie \texttt{PROFTPD\_USER\_BANDWIDTH}, aber nur f"ur den User anonymous.

    G"ultige Werte: leer, Zahl:Zahl, Zahl:leer oder leer:Zahl

    Standardeinstellung: \texttt{PROFTPD\_ANONYMOUS\_BANDWIDTH=''}
}

\end{description}



\subsection{ProFTPD (log settings)}

\begin{description}

\config{PROFTPD\_SYSTEM\_LOG}
{PROFTPD\_SYSTEM\_LOG}
{PROFTPDSYSTEMLOG}
{
    Schreibe das Systemlog direkt in eine Datei. \\
    \begin{tabular}{lll}
    & Leer      : & benutze den Syslog Mechanismus \\
    & Dateiname : & kein Syslog Mechanismus, sonder direktes \\
    &             & Schreiben in eine Datei. Der Dateiname wird \\
    &             & relativ zu /var/log/proftpd/ interpretiert. \\
    & NONE      : & schalte das Logging f"ur den proftpd-Server aus \\
    \end{tabular}

    G"ultige Werte: Dateiname, NONE oder leer

    Standardeinstellung: \texttt{PROFTPD\_SYSTEM\_LOG=''}
}

\config{PROFTPD\_TRANSFER\_LOG}
{PROFTPD\_TRANSFER\_LOG}
{PROFTPDTRANSFERLOG}
{
    Name der Transferlog Datei. \\
    \begin{tabular}{lll}
    & Leer      : & nutze die Datei /var/log/xferlog \\
    & Dateiname : & Schreiben in eine Datei. Der Dateiname wird \\
    &             & relativ zu /var/log/proftpd/ interpretiert. \\
    & NONE      : & schalte das Transferlogging des proftpd-Servers aus \\
    \end{tabular}

    G"ultige Werte: Dateiname, NONE oder leer

    Standardeinstellung: \texttt{PROFTPD\_TRANSFER\_LOG=''}
}

\config{PROFTPD\_USE\_REVERSE\_DNS}
{PROFTPD\_USE\_REVERSE\_DNS}
{PROFTPDUSEREVERSEDNS}
{
    F"uhre einen sog. reverse DNS lookup f"ur die IP Adressen der Hosts durch,
    die den proftpd-Server nutzen. \\
    Achtung: bei falsch oder schlecht konfigurierten DNS-Servern kann
    ein reverse DNS lookup lange dauern (timeout).

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_USE\_REVERSE\_DNS='yes'}
}

\end{description}


\subsection{ProFTPD (virtual users)}

\begin{description}

\config{PROFTPD\_ENABLE\_VIRTUAL\_USERS}
{PROFTPD\_ENABLE\_VIRTUAL\_USERS}
{PROFTPDENABLEVIRTUALUSERS}
{
    Unterst"utzung  f"ur die virtuellen FTP-User einschalten (yes) oder
    abschalten (no).

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_ENABLE\_VIRTUAL\_USERS='no'}
}

\config{PROFTPD\_VIRTUAL\_USERS\_DELETE}
{PROFTPD\_VIRTUAL\_USERS\_DELETE}
{PROFTPDVIRTUALUSERSDELETE}
{
    Diese Variable legt fest, ob virtuelle FTP-User die nicht
    mehr in einer \texttt{PROFTPD\_VIRTUAL\_USERS\_\#\_USERNAME} Variablen
    definiert sind
    gel"oscht werden oder bestehen bleiben.

    Wird \texttt{PROFTPD\_VIRTUAL\_USERS\_DELETE='yes'} gesetzt, so sind nach
    Aktivierung der Konfiguration nur die aktuellen virtuellen
    FTP-User verf"ugbar. Alle anderen werden gel"oscht, wobei
    allerdings die Homeverzeichnisse bestehen bleiben.\\

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_USERS\_DELETE='no'}
}

\config{PROFTPD\_VIRTUAL\_USERS\_N}
{PROFTPD\_VIRTUAL\_USERS\_N}
{PROFTPDVIRTUALUSERSN}
{
    Anzahl der definierten virtuellen User.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_USERS\_N='1'}
}

\config{PROFTPD\_VIRTUAL\_USERS\_x\_USERNAME}
{PROFTPD\_VIRTUAL\_USERS\_x\_USERNAME}
{PROFTPDVIRTUALUSERSxUSERNAME}
{
    Definiert f"ur den virtuellen User~x den Benutzernamen.

    G"ultige Werte: Username

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_USERS\_x\_USERNAME='testuser'}
}

\config{PROFTPD\_VIRTUAL\_USERS\_x\_ACTIVE}
{PROFTPD\_VIRTUAL\_USERS\_x\_ACTIVE}
{PROFTPDVIRTUALUSERSxACTIVE}
{
    Virtuellen User aktivieren 'yes' oder 'no'

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_USERS\_x\_ACTIVE='no'}
}

\config{PROFTPD\_VIRTUAL\_USERS\_x\_HOME}
{PROFTPD\_VIRTUAL\_USERS\_x\_HOME}
{PROFTPDVIRTUALUSERSxHOME}
{
    Definiert  das  Homeverzeichnis  f"ur den virtuellen User~x.

    G"ultige Werte: Verzeichnisname relativ zu \_home\_virtualhome

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_USERS\_x\_HOME='testuser'}
}

\config{PROFTPD\_VIRTUAL\_USERS\_x\_PASSWD}
{PROFTPD\_VIRTUAL\_USERS\_x\_PASSWD}
{PROFTPDVIRTUALUSERSxPASSWD}
{
    Definiert das Passwort f"ur den virtuellen User~x.
    Wird ein Passwort leer gelassen (also ''), so wird beim
    Anlegen des Users nach dem Passwort gefragt. Wird ein Passwort
    angegeben, so bekommt der User dieses Passwort. Um die Sicherheit
    des Users nicht zu gef"ahrden, wird das Passwort nach der
    Anlage des Users hier in der Konfiguration auf '******' umgesetzt.

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_USERS\_x\_PASSWD=''}
}

\end{description}

\subsection{ProFTPD (deny users)}

   "Uber die deny users kann normalen Unix Users verboten werden sich
   via FTP am Server anzumelden. D.h. ein User kann sich zwar per SSH oder
   direkt am Server anmelden, eine FTP Session zum Server unter Nutzung
   des entsprechenden Usernamens kann aber nicht aufgebaut werden.

\begin{description}

\config{PROFTPD\_ENABLE\_DENY\_USERS}
{PROFTPD\_ENABLE\_DENY\_USERS}
{PROFTPDENABLEDENYUSERS}
{
    Eine Angabe 'yes' sorgt daf"ur, dass die Funktionalit"at genutzt wird
    und dass die Datei /etc/ftpusers mit den Usernamen gef"ullt wird.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_ENABLE\_DENY\_USERS='no'}
}

\config{PROFTPD\_DENY\_USERS\_N}
{PROFTPD\_DENY\_USERS\_N}
{PROFTPDDENYUSERSN}
{
    Anzahl der zu konfigurierenden deny User.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PROFTPD\_DENY\_USERS\_N='1'}
}

\config{PROFTPD\_DENY\_USERS\_x\_USERNAME}
{PROFTPD\_DENY\_USERS\_x\_USERNAME}
{PROFTPDDENYUSERSxUSERNAME}
{
    Username des deny Users.

    G"ultige Werte: Username

    Standardeinstellung: \texttt{PROFTPD\_DENY\_USERS\_x\_USERNAME='bill'}
}

\end{description}

\subsection{ProFTPD (virtual server settings)}

\begin{description}

\config{PROFTPD\_ENABLE\_VIRTUAL\_SERVER}
{PROFTPD\_ENABLE\_VIRTUAL\_SERVER}
{PROFTPDENABLEVIRTUALSERVER}
{
    Unterst"utzung  f"ur die virtuellen Server einschalten (yes) oder
    abschalten (no).

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_ENABLE\_VIRTUAL\_SERVER='no'}
}

\config{PROFTPD\_VIRTUAL\_SERVER\_N}
{PROFTPD\_VIRTUAL\_SERVER\_N}
{PROFTPDVIRTUALSERVERN}
{
    Anzahl der definierten virtuellen Server.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_SERVER\_N='2'}
}


\config{PROFTPD\_VIRTUAL\_SERVER\_x\_NAME}
{PROFTPD\_VIRTUAL\_SERVER\_x\_NAME}
{PROFTPDVIRTUALSERVERxNAME}
{
    Name des virtuellen Servers.

    G"ultige Werte: Zeichenkette

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_SERVER\_x\_NAME='Otherport FTP Server'}
}

\config{PROFTPD\_VIRTUAL\_SERVER\_x\_ACTIVE}
{PROFTPD\_VIRTUAL\_SERVER\_x\_ACTIVE}
{PROFTPDVIRTUALSERVERxACTIVE}
{
    Virtuellen Server aktivieren 'yes' oder 'no'

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_SERVER\_x\_ACTIVE='no'}
}

\config{PROFTPD\_VIRTUAL\_SERVER\_x\_PORT}
{PROFTPD\_VIRTUAL\_SERVER\_x\_PORT}
{PROFTPDVIRTUALSERVERxPORT}
{
    Zu benutzender Port.

    G"ultige Werte: Port Nummer

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_SERVER\_x\_PORT='4021'}
}

\config{PROFTPD\_VIRTUAL\_SERVER\_x\_IP}
{PROFTPD\_VIRTUAL\_SERVER\_x\_IP}
{PROFTPDVIRTUALSERVERxIP}
{
    Zu nutzende IP-Adresse.  Hier wird keine echte IP Adresse
    angegeben sondern der Index der Angabe IP\_ETH\_x\_IPADDR
    aus der Base Konfiguration in /etc/config.d/base.

    G"ultige Werte: Index von IP\_ETH\_x\_IPADDR

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_SERVER\_x\_IP='1'}
}

\config{PROFTPD\_VIRTUAL\_SERVER\_x\_USER}
{PROFTPD\_VIRTUAL\_SERVER\_x\_USER}
{PROFTPDVIRTUALSERVERxUSER}
{
    Unix User auf den der FTP-Login anonymous abgebildet
    wird. Dieser User muss in /etc/passwd angelegt sein.

    G"ultige Werte: Username

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_SERVER\_x\_USER='vserver'}
}

\config{PROFTPD\_VIRTUAL\_SERVER\_x\_GROUP}
{PROFTPD\_VIRTUAL\_SERVER\_x\_GROUP}
{PROFTPDVIRTUALSERVERxGROUP}
{
    Gruppenname auf den der FTP-Login anonymous abgebildet
    wird. Diese Gruppe muss in /etc/group angelegt sein.

    G"ultige Werte: Gruppenname

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_SERVER\_x\_GROUP='users'}
}

\config{PROFTPD\_VIRTUAL\_SERVER\_x\_DIR}
{PROFTPD\_VIRTUAL\_SERVER\_x\_DIR}
{PROFTPDVIRTUALSERVERxDIR}
{
    Verzeichnis, welches genutzt werden soll.
    Unterverzeichnis von /home/virtualserver.

    G"ultige Werte: Verzeichnis

    Standardeinstellung: \texttt{PROFTPD\_VIRTUAL\_SERVER\_x\_DIR='otherport'}
}

\end{description}

\section{FTP: Virtuelle User}

    Virtuelle User sind nur auf den ProFTPD beschr"ankt, der Login
    und das Passwort gelten nur f"ur FTP, nicht f"ur SSH oder andere
    Dienste.

    Virtuelle User sind dann sehr n"utzlich, wenn bestimmte User nur
    FTP-Zugriff haben sollen und keine anderen Rechte haben sollen.
    In Verbindung mit dem Apache Webserver lassen sich damit z.B.
    einfach sehr grosse Mengen von virtuellen Hosts aufsetzen, denen
    jeweils ein virtueller FTP-User zugeordnet ist.
    Damit bleibt die "Ubersicht im System trotz der grossen Menge an
    FTP-Usern "ubersichtlich.

    Die Homeverzeichnisse (Standardverzeichnisse) der virtuellen User
    liegen standardm"a"sig unter /home/virtualhome/.

\section{Einstellungen beim "Ubersetzen der Packages}

Mit folgenden Einstellungen wurde der ProFTPD "ubersetzt:

\begin{description}
  \item[ProFTPD]
  \begin{verbatim}

        --program-prefix=
        --prefix=/usr
        --exec-prefix=/usr
        --bindir=/usr/bin
        --sbindir=/usr/sbin
        --sysconfdir=/etc
        --datadir=/usr/share
        --includedir=/usr/include
        --libdir=/usr/lib64
        --libexecdir=/usr/lib
        --localstatedir=/var
        --sharedstatedir=/var/lib
        --disable-dependency-tracking
        --disable-static
        --bindir=/usr/sbin
        --libexecdir=/usr/lib/proftpd
        --sysconfdir=/etc/proftpd
        --localstatedir=/run/proftpd
        --enable-sendfile
        --enable-ctrls
        --enable-dso
        --enable-facl
        --enable-ipv6
        --enable-nls
        --enable-openssl
        --with-lastlog
        --with-shared=mod_unique_id:mod_site_misc:mod_load:mod_ban:
                      mod_quotatab:mod_sql:mod_sql_mysql:mod_dynmasq:
                      mod_quotatab_sql:mod_ldap:mod_quotatab_ldap:
                      mod_ratio:mod_tls:mod_rewrite:mod_radius:
                      mod_quotatab_file:mod_quotatab_radius:mod_facl:
                      mod_ctrls_admin:mod_copy:mod_deflate:mod_ifversion:
                      mod_tls_memcache:mod_tls_shmcache:mod_geoip:
                      mod_exec:mod_sftp:mod_sftp_pam:mod_sftp_sql:
                      mod_shaper:mod_sql_passwd:mod_ifsession:mod_dnsbl:
                      mod_readme:mod_snmp:mod_wrap:mod_wrap2:mod_wrap2_file:
                      mod_wrap2_sql:mod_log_forensic:mod_qos
        --disable-ident

  \end{verbatim}
\end{description}
