Unterabschnitte

Das ProFTPD Paket

Einleitung

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

Funktionen

Das ProFTPD Paket stellt folgende Basis-Funktionalität zur Verfügung:

Voraussetzungen

Es ist abhängig davon, dass eine aktuelle Version des Basissystems installiert ist.

Installation

Das ProFTPD Paket wird über das Setup-Menue im Untermenue ”Package administration” installiert.

Das Menue im Setup-Program

Das ProFTPD Menue ist über den Menuepunkt ”Service administration” des Hauptmenues im zentralen Setup-Programm zu erreichen. Es ist wie folgt aufgebaut:

  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

  1.   View proftpd.log
  2.   View older proftpd.log
  3.   View proftpd_tls.log
  4.   View older proftpd_tls.log
  0.   Return

  13.   ProFTPd tools

  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

  0.   Return

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

Änderung der Konfiguration

Die Konfiguration kann über den Menuepunkt ”Edit main Configuration” geändert werden. Standardmäßig wird dabei der Editor genutzt, der über 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üft. Werden Fehler festgestellt, so werden diese gemeldet und der Benutzer zur Korrektur aufgefordert. Wird eine solche Korrektur nicht durchgeführt, so kann es zu unvorhersehbaren Fehlfunktionen bei dem Dienst kommen.

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

ACHTUNG
Beim nächsten Boot-Vorgang kann es in diesem Fall zu unvorhersehbaren Fehlern kommen.


Wird die Aktivierung bestätigt, werden über ein Skript die durchgeführten Änderungen wirksam gemacht. Dazu wird der ProFTPD gestoppt und neu gestartet.

Die Haupt-Konfigurationsdatei

Die Konfigurationsdatei (/etc/config.d/proftpd) enthält in einer Reihe von Abschnitten die Parameter, die den Dienst parametrisieren bzw. festlegen, ob der Dienst überhaupt zur Verfügung gestellt wird oder nicht.

ProFTPD (general settings)

START_PROFTPD

Legt fest, ob der proftpd-Server gestartet wird.

Gültige Werte: yes, no

Standardeinstellung: START_PROFTPD='no'

ProFTPD (configuration action settings)

PROFTPD_MAN_CONFIG

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. geaendert. Der Anwender ist selbst fuer eine korrekte Erstellung der Konfiguration verantwortlich.

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_MAN_CONFIG='no'

ProFTPD (general configuration settings)

PROFTPD_START_METHOD

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 über den xinetd. Hier muss auch START_XINETD='yes' in der Konfiguration des xinetd angegeben werden.

Gültige Werte: st, xi

Standardeinstellung: PROFTPD_START_METHOD='st'

PROFTPD_DEFAULT_ADDRESS

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ültige Werte: Index von IP_ETH_x_IPADDR oder leer

Standardeinstellung: PROFTPD_DEFAULT_ADDRESS=”

PROFTPD_PORT

Definiert den Port, auf dem der proftpd-Server ”lauschen” soll.

Gültige Werte: Port Nummer, Standard=21

Standardeinstellung: PROFTPD_PORT='21'

PROFTPD_DEBUG_LEVEL

Setzt den Level für das Debbuging des ProFTPD.
Es sind Level von 0 (kein Debugging) bis 10 (maximales Debugging) mögleich.

Gültige Werte: 1 bis 10

Standardeinstellung: PROFTPD_DEBUG_LEVEL='0'

PROFTPD_USE_IPV6

Definiert auf welchen IP-Adressen der proftpd-Server ”lauschen” soll.
PROFTPD_USE_IPV6=”no” nur auf IPv4 Adressen.
PROFTPD_USE_IPV6=”yes” zusaetzlich auf IPv6 Adressen.

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_USE_IPV6='no'

PROFTPD_SERVERNAME

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ültige Werte: Zeichenfolge oder NONE

Standardeinstellung: PROFTPD_SERVERNAME='ProFTPD Default Installation'

ProFTPD (file related settings)

PROFTPD_UMASKS

Format <umask für Dateien>:<umask für Verzeichnisse>. Beim Erstellen von Dateien bzw. Verzeichnissen zu nutzende umask Angabe. Der von ProFTPD benutzte Standardwert ist 022:022. Siehe umask Kommando.

Gültige Werte: Zahl:Zahl

Standardeinstellung: PROFTPD_UMASKS='022:022'

PROFTPD_LIST_DOT_FILES

Zeige Dateien, die mit einem Punkt beginnen an, ja oder nein.

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_LIST_DOT_FILES='no'

PROFTPD_USE_GLOBBING

Erlaube dir glob() Funktionalitaet, ja oder nein.
Unterstuetze also Wildcards wie *.

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_USE_GLOBBING='no'

PROFTPD_TIMES_GMT

Schalte die Zeitdarstellung zwischen GMT und lokal um.
yes: Darstellung von ls und MDTM Zeiten in GMT.
no: Darstellung in lokaler Zeit.

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_TIMES_GMT='no'

ProFTPD (timeout settings)

PROFTPD_SESSION_TIMEOUT

Beende dir FTP Session nach PROFTPD_SESSION_TIMEOUT Sekunden, wenn keine Aktivitaeten in dieser Zeit erfolgen.

Gültige Werte: Zahl

Standardeinstellung: PROFTPD_SESSION_TIMEOUT='900'

ProFTPD (access settings)

PROFTPD_ALLOW_ROOT_ACCESS

Legt fest, ob sich root per FTP einloggen darf (yes) oder ob es ihm verboten wird (no). Standardmäßig ist 'no' voreingestellt, weil ansonsten das root-Passwort unverschlüsselt über die Leitung geht.

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_ALLOW_ROOT_ACCESS='no'

PROFTPD_REQUIRE_VALID_SHELL

Legt fest, ob sich ein Unix User nur dann per FTP einloggen darf wenn fuer ihr in /etc/passwd eine Shell aus /etc/shells eingetragen ist 'yes'. Bei 'no' koennen sich ggf. auch User ohne gueltige Shell per FTP einloggen.

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_REQUIRE_VALID_SHELL='yes'

PROFTPD_ENABLE_UNIX_USERS

Legt fest, ob sich echte Unix User per FTP einloggen duerfen (yes) oder nicht (no).

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_ENABLE_UNIX_USERS='yes'

PROFTPD_ENABLE_ANONYMOUS_USERS

Legt fest, ob sich sog. anonymous User per FTP einloggen duerfen (yes) oder nicht (no). Als Passwort wird eine Mail Adresse erwartet.
Das Home-Verzeichnis der anonymous User ist /home/proftpd.
Die anonymous User duerfen nur Downloads ausfuehren, keine Uploads.

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_ENABLE_ANONYMOUS_USERS='no'

PROFTPD_DONT_CHROOT_GROUP

Standardmaessig kann jeder User (ausser root) mit FTP nicht ueber 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 beschraenkt sind. Wenn du nicht weisst, was du damit anstellst, bitte leer lassen.

Gültige Werte: Gruppenname oder Liste von Gruppennamen

Standardeinstellung: PROFTPD_DONT_CHROOT_GROUP=”

PROFTPD_AUTH_ORDER

Reihenfolge der Authentifizierungspruefung, 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

Gueltige Werte: virtual-linux oder linux-virtual

Standardeinstellung: PROFTPD_AUTH_ORDER='virtual-linux'

PROFTPD_USE_TLS

Benutzung von SSL/TLS.

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_USE_TLS='no'

PROFTPD_FORCE_TLS

Erzwinge dir Benutzung von SSL/TLS.
Klartext Verbindungen sind nicht erlaubt.
PROFTPD_FORCE_TLS='yes' benoetigt PROFTPD_USE_TLS='yes'

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_FORCE_TLS='no'

PROFTPD_CERTIFICATE_FILE

Name des Zertifikates, welches genutzt werden soll. Wird ein Zertifikat ausgewählt, so wird ggf. ein symbolischer Link mit dem Namen proftpd.pem erstellt, der auf das ausgewählte Zertifikat zeigt.

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

Standardeinstellung: PROFTPD_CERTIFICATE_FILE='proftpd.pem'

ProFTPD (limit settings)

PROFTPD_MAX_CLIENTS

Maximale Anzahl der Clients, die gleichzeitig auf dem FTP-Server eingeloggt sein dürfen.

Gültige Werte: Zahl

Standardeinstellung: PROFTPD_MAX_CLIENTS='20'

PROFTPD_MAX_CLIENTS_PER_HOST

Anzahl der Clients, die gleichzeitig von einem anderen Rechner aus auf dem FTP-Server eingeloggt sein duerfen. Leer bedeutet ”keine Begrenzung”.

Gültige Werte: Zahl oder leer

Standardeinstellung: PROFTPD_MAX_CLIENTS_PER_HOST=”

PROFTPD_MAX_CLIENTS_PER_USER

Anzahl der Clients, die gleichzeitig mit der gleichen User-ID auf dem FTP-Server eingeloggt sein duerfen. Leer bedeutet ”keine Begrenzung”.

Gültige Werte: Zahl oder leer

Standardeinstellung: PROFTPD_MAX_CLIENTS_PER_USER=”

ProFTPD (log settings)

PROFTPD_SYSTEM_LOG

Schreibe das Systemlog direkt in eine Datei.
  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 fuer den proftpd-Server aus

Gültige Werte: Dateiname, NONE oder leer

Standardeinstellung: PROFTPD_SYSTEM_LOG=”

PROFTPD_TRANSFER_LOG

Name der Transferlog Datei.
  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

Gültige Werte: Dateiname, NONE oder leer

Standardeinstellung: PROFTPD_TRANSFER_LOG=”

PROFTPD_USE_REVERSE_DNS

Fuehre einen sog. reverse DNS lookup fuer 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ültige Werte: yes, no

Standardeinstellung: PROFTPD_USE_REVERSE_DNS='yes'

ProFTPD (virtual users)

PROFTPD_ENABLE_VIRTUAL_USERS

Unterstützung für die virtuellen FTP-User einschalten (yes) oder abschalten (no).

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_ENABLE_VIRTUAL_USERS='no'

PROFTPD_VIRTUAL_USERS_DELETE

Diese Variable legt fest, ob virtuelle FTP-User die nicht mehr in einer PROFTPD_VIRTUAL_USERS_#_USERNAME Variablen definiert sind gelöscht werden oder bestehen bleiben.

Wird PROFTPD_VIRTUAL_USERS_DELETE='yes' gesetzt, so sind nach Aktivierung der Konfiguration nur die aktuellen virtuellen FTP-User verfügbar. Alle anderen werden gelöscht, wobei allerdings die Homeverzeichnisse bestehen bleiben.

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_VIRTUAL_USERS_DELETE='no'

PROFTPD_VIRTUAL_USERS_N

Anzahl der definierten virtuellen User.

Gültige Werte: Zahl

Standardeinstellung: PROFTPD_VIRTUAL_USERS_N='1'

PROFTPD_VIRTUAL_USERS_x_USERNAME

Definiert für den virtuellen User x den Benutzernamen.

Gültige Werte: Username

Standardeinstellung: PROFTPD_VIRTUAL_USERS_x_USERNAME='testuser'

PROFTPD_VIRTUAL_USERS_x_ACTIVE

Virtuellen User aktivieren 'yes' oder 'no'

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_VIRTUAL_USERS_x_ACTIVE='no'

PROFTPD_VIRTUAL_USERS_x_HOME

Definiert das Homeverzeichnis für den virtuellen User x.

Gültige Werte: absoluter Verzeichnisname

Standardeinstellung: PROFTPD_VIRTUAL_USERS_x_HOME='testuser'

PROFTPD_VIRTUAL_USERS_x_PASSWD

Definiert das Passwort für 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ährden, wird das Passwort nach der Anlage des Users hier in der Konfiguration auf '******' umgesetzt.

Standardeinstellung: PROFTPD_VIRTUAL_USERS_x_PASSWD=”

ProFTPD (deny users)

Über 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.

PROFTPD_ENABLE_DENY_USERS

Eine Angabe 'yes' sorgt dafür, dass die Funktionalität genutzt wird und dass die Datei /etc/ftpusers mit den Usernamen gefüllt wird.

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_ENABLE_DENY_USERS='no'

PROFTPD_DENY_USERS_N

Anzahl der zu konfigurierenden deny User.

Gültige Werte: Zahl

Standardeinstellung: PROFTPD_DENY_USERS_N='1'

PROFTPD_DENY_USERS_x_USERNAME

Username des deny Users.

Gültige Werte: Username

Standardeinstellung: PROFTPD_DENY_USERS_x_USERNAME='bill'

ProFTPD (virtual server settings)

PROFTPD_ENABLE_VIRTUAL_SERVER

Unterstützung für die virtuellen Server einschalten (yes) oder abschalten (no).

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_ENABLE_VIRTUAL_SERVER='no'

PROFTPD_VIRTUAL_SERVER_N

Anzahl der definierten virtuellen Server.

Gültige Werte: Zahl

Standardeinstellung: PROFTPD_VIRTUAL_SERVER_N='2'

PROFTPD_VIRTUAL_SERVER_x_NAME

Name des virtuellen Servers.

Gültige Werte: Zeichenkette

Standardeinstellung: PROFTPD_VIRTUAL_SERVER_x_NAME='Otherport FTP Server'

PROFTPD_VIRTUAL_SERVER_x_ACTIVE

Virtuellen Server aktivieren 'yes' oder 'no'

Gültige Werte: yes, no

Standardeinstellung: PROFTPD_VIRTUAL_SERVER_x_ACTIVE='no'

PROFTPD_VIRTUAL_SERVER_x_PORT

Zu benutzender Port.

Gültige Werte: Port Nummer

Standardeinstellung: PROFTPD_VIRTUAL_SERVER_x_PORT='4021'

PROFTPD_VIRTUAL_SERVER_x_IP

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ültige Werte: Index von IP_ETH_x_IPADDR

Standardeinstellung: PROFTPD_VIRTUAL_SERVER_x_IP='1'

PROFTPD_VIRTUAL_SERVER_x_USER

Unix User auf den der FTP-Login anonymous abgebildet wird. Dieser User muss in /etc/passwd angelegt sein.

Gültige Werte: Username

Standardeinstellung: PROFTPD_VIRTUAL_SERVER_x_USER='vserver'

PROFTPD_VIRTUAL_SERVER_x_GROUP

Gruppenname auf den der FTP-Login anonymous abgebildet wird. Diese Gruppe muss in /etc/group angelegt sein.

Gültige Werte: Gruppenname

Standardeinstellung: PROFTPD_VIRTUAL_SERVER_x_GROUP='users'

PROFTPD_VIRTUAL_SERVER_x_DIR

Verzeichnis, welches genutzt werden soll. Unterverzeichnis von /home/virtualserver.

Gültige Werte: Verzeichnis

Standardeinstellung: PROFTPD_VIRTUAL_SERVER_x_DIR='otherport'

FTP: Virtuelle User

Virtuelle User sind nur auf den ProFTPD beschränkt, der Login und das Passwort gelten nur für FTP, nicht für SSH oder andere Dienste.

Virtuelle User sind dann sehr nützlich, 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 Übersicht im System trotz der grossen Menge an FTP-Usern übersichtlich.

Die Homeverzeichnisse (Standardverzeichnisse) der virtuellen User liegen standardmäßig unter /home/virtualhome/.

Einstellungen beim Übersetzen der Packages

Mit folgenden Einstellungen wurde der ProFTPD übersetzt:

ProFTPD
        --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