Mit diesem Paket wird der Filetransfer Dienst, im folgenden auch Service genannt, auf dem Rechner installiert. Dieser Service bieten die Möglichkeit Dateien vom Server oder auf den Server zu transferieren.
Das Pure-FTPd Paket stellt folgende Basis-Funktionalität zur Verfügung:
Es ist abhängig davon, dass eine aktuelle Version des Basissystems installiert ist.
Das Pure-FTPd Paket wird über das Setup-Menü im Untermenü „Package administration“ installiert.
Das Menü im Setup-Programm ist wie folgt aufgebaut:
| x. | Service administration |
| x. | Pure-FTPd Service |
| 1. | View documentaion | ||||
| 3. | Edit main configuration | ||||
| 4. | Advanced main configuration file handling | ||||
| 5. | Edit virtual user configuration | ||||
| 6. | Advanced virtual user configuration file handling | ||||
| 7. | Show status | ||||
| 8. | Stop service | ||||
| 9. | Start servcice | ||||
| 10. | Pure-FTPd tools |
| 1. | List Pure-FTPd local users | |||
| 2. | List Pure-FTPd virtual users | |||
| 3. | Show info about a Pure-FTPd virtual user | |||
| 4. | Check Pure-FTPd virtual users | |||
| 5. | Report current FTP sessions |
Die Konfiguration kann über den Menüpunkt „Edit main Configuration“ geändert werden.
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 Pure-FTPd gestoppt und neu gestartet.
Über den Menüpunkt „Edit virtual user configuration“ kann die Konfiguration der virtuellen User verändert werden. Die Konfiguration der virtuellen User wurde in einen extra Menüpunkt ausgelagert, da Änderungen an den virtuellen Usern keinen Restart des gesamten Services notwendig machen.
Nur wenn PURE_FTPD_ENABLE_VIRTUAL_USERS verändert, also z.B. von 'no' auf 'yes' geändert wird, ist ein Restart notwendig.
Für die Konfiguration der virtuellen User existiert eine spezielle Konfigurationsdatei (/etc/config.d/pure-ftpd-vuser)
Die Konfigurationsdatei (/etc/config.d/pure-ftpd) 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.
Gültige Werte: yes, no
Standardeinstellung: START_PURE_FTPD='no'
PURE_FTPD_VIRTUALCHROOT='yes'
Ein User, der mit FTP nicht über sein Homeverzeichnis herauskommt
kann über speziell angelegte symbolische Links auf andere Verzeichnisse
doch Verzeichnisse ausserhalb seines Homeverzeichnis erreichen.
Dies macht z.B. ein gemeinsammes download Verzeichnis auf /srv/download
möglich. Diese Variante birgt aber auch Sicherheitsrisiken.
PURE_FTPD_VIRTUALCHROOT='no'
Die User können nicht über ihre Homeverzeichnisse herauskommen.
Siehe aber auch PURE_FTPD_DONT_CHROOT_GROUP.
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_VIRTUALCHROOT='yes'
Bei Angabe von 'st' wird der Pure-FTPd-Server als sogenannter Standalone Server gestartet.
Bei Angabe von 'xi' erfolgt der Start über socket activation, analog dem früheren xinetd.
Einzelne Parameter sind nur in der einen oder anderen Variante möglich und müssen entsprechend an- oder abgeschaltet werden.
Gültige Werte: st, xi
Standardeinstellung: PURE_FTPD_START_METHOD='st'
Ist PURE_FTPD_IPADDR leer, so wird auf allen konfigurierten IP-Adressen 'gelauscht'.
Beispiel: PURE_FTPD_IPADDR='2:1' zeigt auf IP_ETH_2_IP_1_IPADDR in /etc/config.d/base.
Der Wert vor dem '2:' ist der Index der Netzwerkkkarte
der Wert hinter dem ':1' ist der Index der IPADDR.
Der Index kann, wenn der Editor „ece “ eingestellt ist, auch aus dem Dialog eingefügt werden.
Gültige Werte: 1:1, 1:2, 2:1 etc.. oder leer.
Standardeinstellung: PURE_FTPD_IPADDR=''
Gültige Werte: Port Nummer, Standard=21
Standardeinstellung: PURE_FTPD_PORT='21'
Gültige Werte: ipv4only, ipv6only oder leer.
| ipv4only | lausche nur auf IPv4 Adressen | |
| ipv6only | lausche nur auf IPv6 Adressen | |
| leer | lausche auf allen konfigurierte Adressen des Systems. |
Standardeinstellung: PURE_FTPD_LISTEN='ipv4only'
Wird keine Angabe gemacht (PURE_FTPD_PASV_PORTRANGE ist leer), so nutzt der Pure-FTPd-Server die Ports 1024 bis 65535.
Gültige Werte: Portnummer Portnummer oder leer
Standardeinstellung: PURE_FTPD_PASV_PORTRANGE=''
Gültige Werte: leer, IP-Adresse, Hostname oder fully qualified domain name (FQDN)
Standardeinstellung: PURE_FTPD_PASV_IP=''
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_NAT_MODE='no'
Gültige Werte: Absoluter Pfad
Standardeinstellung: PURE_FTPD_WELCOMEFILE=''
Gültige Werte: Zahl:Zahl
Standardeinstellung: PURE_FTPD_UMASKS=''
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_LIST_DOT_FILES='no'
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_DISALLOW_RENAMING='no'
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_DISALLOW_ANONYMOUS_UPLOAD='no'
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_NO_TRUNCATE='no'
Gültige Werte: Zahl
Standardeinstellung: PURE_FTPD_HANGUP_TIME='15'
ACHTUNG: bei PURE_FTPD_USE_PAM='no' werden die über die Konfiguration von PURE_FTPD_ENABLE_DENY_USERS konfigurierten sog. Deny User nicht mehr beachtet.
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_USE_PAM='yes'
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_ALLOW_ROOT_ACCESS='no'
Es ist erforderlich diesen Wert bei Benutzung von PURE_FTPD_NONANONYMOUS_IP auf (yes) zu setzten. Damit wird dann ein Mischbetrieb mit angemeldeten Usern in ihren jeweiligen home Verzeichninssen ermöglicht und der anonymen User in /srv/ftp.
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_ONLY_USERS='yes'
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_ONLY_ANONYMOUS='no'
Gültige Werte: Zahl
Standardeinstellung: PURE_FTPD_DONT_CHROOT_GROUP=''
| 0 | Unterstützung für SSL/TLS ist ausgeschaltet. | |
| 1 | Verbindungen über den normalen Weg und über | |
| SSL/TLS sind möglich. | ||
| 2 | Klartext Verbindungen werden nicht akzeptiert, | |
| es sind nur Verbindungen über SSL/TLS möglich. | ||
| 3 | Klartext Verbindungen werden nicht akzeptiert, | |
| es sind nur Verbindungen über SSL/TLS möglich. | ||
| Auch Klartext-Datenverbindungen werden abgelehnt. |
ACHTUNG
Wird PURE_FTPD_TLS auf einen Wert ungleich 0
gesetzt, so wird das notwendige Zertifikat geprüft.
Existiert kein Zertifikat oder enthält das Zertifikat
keine DH PARAMETERS Sektion, so wird PURE_FTPD_TLS
ignoriert.
Gültige Werte: 0, 1, 2, 3
Standardeinstellung: PURE_FTPD_TLS='0'
Das gewählte Zertifikat muss eine DH PARAMETERS Sektion enthalten. Dies ist bei den über das Certs Paket erstellten Zertifikaten der Fall.
Gültige Werte: Dateiname (.pem-Datei in /etc/ssl/certs)
Standardeinstellung: PURE_FTPD_CERTIFICATE='pure-ftpd.pem'
Der Wert PURE_FTPD_ONLY_USERS muss hierbei auf (yes) gesetzt werden damit ein anmeldem erfolgen kann.
ACHTUNG
Bei der 'st' Methode muss der Parameter PURE_FTPD_IPADDR
leer bleiben.
ACHTUNG
Bei der 'xi' Methode muss der Parameter PURE_FTPD_IPADDR
gesetzt werden.
Hier wird keine echte IP Adresse angegeben sondern der Index der Angabe IP_ETH_x_IP_x_IPADDR aus der Base Konfiguration in /etc/config.d/base.
Beispiel: PURE_FTPD_NONANONYMOUS_IPADDR='2:1' zeigt auf IP_ETH_2_IP_1_IPADDR in /etc/config.d/base.
Der Wert vor dem '2:' ist der Index der Netzwerkkkarte
der Wert hinter dem ':1' ist der Index der IPADDR.
Der Index kann, wenn der Editor „ece “ eingestellt ist, auch aus dem Dialog eingefügt werden.
Gültige Werte: 1:1, 1:2, 2:1 etc.. oder leer.
Standardeinstellung: PURE_FTPD_NONANONYMOUS_IPADDR=''
Gültige Werte: Zahl
Standardeinstellung: PURE_FTPD_MAX_USER='20'
Gültige Werte: Zahl
Standardeinstellung: PURE_FTPD_PARTITION_FILL_LIMIT='95'
Gültige Werte: Zahl
Standardeinstellung: PURE_FTPD_MAXCON_PER_IP=''
Gültige Werte: Zahl
Standardeinstellung: PURE_FTPD_MAX_CPU_LOAD=''
Gültige Werte: Zahl:Zahl
Standardeinstellung: PURE_FTPD_MAX_LOGINS=''
Gültige Werte: Zahl:Zahl
Standardeinstellung: PURE_FTPD_FILE_QUOTA=''
Beispiele:
256:64 256 KB/s für Uploads, 64 KB/s für Downloads
256: 256 KB/s für Uploads, keine Grenze für Downloads
:64 keine Grenze für Uploads, 64 KB/s für Downloads
Gültige Werte: Zahl:Zahl
Standardeinstellung: PURE_FTPD_USER_BANDWIDTH=''
Gültige Werte: Zahl:Zahl
Standardeinstellung: PURE_FTPD_ANONYMOUS_BANDWIDTH=''
ACHTUNG
Es darf nur PURE_FTPD_USER_BANDWIDTH oder
PURE_FTPD_ANONYMOUS_BANDWIDTH gesetzt werden.
Gültige Werte: Zahl Zahl
Standardeinstellung: PURE_FTPD_ANONYMOUS_RATIO=''
Gültige Werte: Zahl Zahl
Standardeinstellung: PURE_FTPD_ALL_USER_RATIO=''
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_LOG='no'
Gültige Werte: CLF, Stats, W3C, Xferlog
Standardeinstellung: PURE_FTPD_LOG_FORMAT='CLF'
Gültige Werte: Absoluter Pfad
Standardeinstellung: PURE_FTPD_LOG_PATH='/var/log/pure-ftpd.log'
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_LOG_PID='no'
Gültige Werte: none,auth,authpriv,cron,daemon,ftp,kern,lpr,mail,mark,
news,security,syslog,user,uucp,local0,local1,local2,
local3,local4,local5,local6,local7 oder leer
leer bedeutet ftp
none bedeutet Logging ausschalten. Dies betrifft aber nur das Logging
von ftp.* Meldungen, nicht die von authpriv.* erzeugten Meldungen.
Standardeinstellung: PURE_FTPD_SYSLOG_FACILITY=''
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_DONT_RESOLVE='no'
Dokumentation siehe: pure-uploadscript
Standardeinstellung: PURE_FTPD_UPLOADSCRIPT_ARGS=''
Virtuelle Server sind sinnvoll, wenn ein Server mehrere IP-Adressen hat. Über virtuelle Server kann eine Trennung des Verzeichnisses für den User anonymous erreicht werden. Ohne diese Konfiguration nutzen alle User anonymous auf allen IP-Adressen das Verzeichnis /srv/ftp.
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_ENABLE_VIRTUAL_SERVER='no'
Gültige Werte: Zahl
Standardeinstellung: PURE_FTPD_VIRTUAL_SERVER_N='2'
Gültige Werte: Text
Standardeinstellung: PURE_FTPD_VIRTUAL_SERVER_x_NAME=''
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_VIRTUAL_SERVER_x_ACTIVE='no'
Beispiel: PURE_FTPD_VIRTUAL_SERVER_x_IPADDR='2:1' zeigt auf IP_ETH_2_IP_1_IPADDR in /etc/config.d/base.
Der Wert vor dem '2:' ist der Index der Netzwerkkkarte
der Wert hinter dem ':1' ist der Index der IPADDR.
Der Index kann, wenn der Editor „ece “ eingestellt ist, auch aus dem Dialog eingefügt werden.
Gültige Werte: 1:1, 1:2, 2:1 etc.. oder leer.
Standardeinstellung: PURE_FTPD_VIRTUAL_SERVER_x_IPADDR='2:1'
Gültige Werte: Verzeichnis
Standardeinstellung: PURE_FTPD_VIRTUAL_SERVER_x_DIR='/ftpdata/extern'
Deny user sind schon länger Bestandteil der Funktionalität des Pure-FTPd. Bisher mussten diese User händisch in der Datei /etc/ftpusers konfiguriert werden.
Ü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.
Existiert noch keine Konfiguration der deny user in der Konfigurationsdatei des Pure-FTPd, so wird eine ggf. vorhandene Datei /etc/ftpusers gelesen und die entsprechenden Variablen belegt.
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_ENABLE_DENY_USERS='yes'
Gültige Werte: Zahl
Standardeinstellung: PURE_FTPD_DENY_USERS_N='1'
Gültige Werte: Username
Standardeinstellung: PURE_FTPD_DENY_USERS_x_USERNAME='bill'
Zusätzliche Argumente beim Start des Pure-FTPd. Hier sollten nur erfahrene Anwender Angaben machen.
Zusätzliche Argumente werden in der Form
# Schlüssel Wert
in der Datei '/etc/pure-ftpd/pure-ftpd-extra.conf' eingetragen, wenn sie nicht vorhanden ist, muss sie angelegt werden. Diese Datei ist dann updatefest.
Einer der häufigsten Anwendungsfälle in diesem Fall ist wohl eine Angabe der Verzeichnistiefe, also z.B. 5000 10. Der Pure-FTPd listet standardmäßig nur 2000 Dateien mit einer Verzeichnistiefe von 5.
LimitRecursion 5000 10
Die Konfigurationsdatei (/etc/config.d/pure-ftpd-vuser) enthält die Konfiguration der virtuellen User.
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_ENABLE_VIRTUAL_USERS='no'
Wird PURE_FTPD_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.
ACHTUNG
Wird die Variable auf dem Standardwert 'no' belassen,
so kann es zu folgendem Effekt kommen. Ein virtueller
FTP-User ist nicht mehr in der Konfigurationsdatei durch
eine PURE_FTPD_VIRTUAL_USERS_x_USERNAME Variablen
beschrieben, er ist aber in den internen Konfigurationsdateien des
Pure-FTPd Servers weiterhin vorhanden und kann sich auch
weiterhin anmelden.
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_VIRTUAL_USERS_DELETE='no'
Gültige Werte: Zahl
Standardeinstellung: PURE_FTPD_VIRTUAL_USERS_N='1'
Gültige Werte: Username
Standardeinstellung: PURE_FTPD_VIRTUAL_USERS_x_USERNAME='testuser'
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_VIRTUAL_USERS_x_ACTIVE='no'
Gültige Werte: absoluter Verzeichnisname
Standardeinstellung: PURE_FTPD_VIRTUAL_USERS_x_HOME='/srv/vftp/testuser'
Standardeinstellung: PURE_FTPD_VIRTUAL_USERS_x_PASSWD=''
Virtuelle User sind nur auf den Pure-FTPd 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 /srv/vftp/. Wichtig: die Verzeichnisse der einzelnen virtuellen User werden, wenn sie nicht bereits existieren, erst beim ersten Login als virtueller User eingerichtet.
Normale Unix User können so konfiguriert werden, dass sie ausschließlich FTP-Zugriff haben und nicht die Shell Ebene benutzen können.
Dazu muss der Eintrag des entsprechenden Users in der Datei /etc/passwd modifiziert werden. Beispiel:
Die Zeile:
onlyftp:x:2011:100:Only FTP:/home/onlyftp:/bin/bash
wird in
onlyftp:x:2011:100:Only FTP:/home/onlyftp:ftp
geändert.
Der Unix-User onlyftp hat jetzt keine gültige Shell mehr. Normalerweise weist der Pure-FTPd solche User auch beim Versuch eines FTP-Zugriffs ab, da die PAM Konfiguration eine gültige Shell voraussetzt.
Wird nun über
PURE_FTPD_USE_PAM='no'
die Authentifizierung über das sog. Pluggable Authentication Module
interface (PAM) ausgeschaltet, so nutzt der Pure-FTPd die Datei
/etc/passwd direkt. Der Pure-FTPd erkennt den Eintrag ftp als Shell
an und ermöglicht den FTP-Zugriff.
ACHTUNG:
bei PURE_FTPD_USE_PAM='no' werden die über die Konfiguration von
PURE_FTPD_ENABLE_DENY_USERS konfigurierten sog. Deny User
nicht mehr beachtet. Die Datei /etc/ftpusers, diese wird aus den Angaben
den erstellt wird, wird über die PAM Konfiguration ausgewertet.
Siehe /usr/lib/pam.d/pure-ftpd Zeile
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
Da bei
PURE_FTPD_USE_PAM='no'
PAM nicht mehr genutzt wird, wird daher auch diese Datei / Zeile
nicht mehr genutzt.
Eine Reihe von Verzeichnissen spielen beim Paket pure-ftpd wichtige Rollen.
a.) normale Unix User
Meldet man sich beim pure-ftpd Server als normaler Unix User an, so hat man zunächst Zugriff auf das Home-Verzeichnis des Unix-Users.
Nur User mit der Group-ID 0, also z.B. der User root hat das Recht sein Home-Verzeichnis nach ”unten” also in Richtung des sog. Wurzelverzeichnisses / zu verlassen.
Über die Angabe in PURE_FTPD_DONT_CHROOT_GROUP kann einer Gruppe (über die Group-ID) und damit allen Gruppenmitgliedern die Erlaubnis gegeben werden ebenfalls das Home-Verzeichnis nach 'unten' zu verlassen. Wird hier die Gruppe users (über deren Group-ID) angegeben, so ist die Sicherheit des Servers u.U. stark gefährdet.
Es gibt spezielle, sehr besondere und komplexe Konfigurationen: Siehe dazu https://download.pureftpd.org/pub/pure-ftpd/doc/README unter dem Stichpunkt chroot.
b.) virtuelle User
Virtuelle User haben Home-Verzeichnisse im Verzeichnis /srv/vftp. Der Name des Home-Verzeichnisses sollte dem Usernamen entsprechen, kann aber innerhalb des Verzeichnisses /srv/vftp frei gewählt werden.
Obwohl der gesamte Verzeichnisbaum, also auch /srv/vftp wählbar ist sollten nur erfahrene Administratoren den Basis-Pfad /srv/vftp ändern.
c.) anonymous User
Hier hängt das genutzte Verzeichnis davon ab, ob virtuelle Server definiert sind.
Ist kein virtueller Server definiert, so sieht der anonymous User nach dem Anmelden das Verzeichnis /srv/ftp.
Sind virtuelle Server definiert, so ist das Verzeichnis abhängig von der genutzten IP-Adresse (PURE_FTPD_VIRTUAL_SERVER_x_IPADDR) und dem dazu gehörigen Verzeichnis (PURE_FTPD_VIRTUAL_SERVER_x_DIR).