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.
Das Pure-FTPd Paket stellt folgende Basis-Funktionalität zur Verfügung:
Dieses Paket benötigt folgende weitere Pakete libmariadb3 und libssl1_1. Es ist auch abhängig davon, dass eine aktuelle Version des Basissystems installiert ist.
Das Pure-FTPd Paket wird über das Setup-Menue im Untermenue ”Package administration” installiert.
Das Pure-FTPd 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 main configuration | ||
4. | Advanced main configuration file handling | ||
5. | Edit virtual user configuration | ||
6. | Advanced virtual user configuration file handling | ||
7. | Show status of Pure-FTPd | ||
8. | Stop Pure-FTPd | ||
9. | Start Pure-FTPd | ||
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 | ||
0. | Return |
0. | Return |
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 Pure-FTPd gestoppt und neu gestartet.
Über den Menuepunkt ”Edit virtual user configuration” kann die Konfiguration der virtuellen User verändert werden. Die Konfiguration der virtuellen User wurde in einen extra Menuepunkt 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'
Legt fest, welche Variante des Pure-FTPd-Servers gestartet wird.
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 /home/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'
Gültige Werte: st, xi
Standardeinstellung: PURE_FTPD_START_METHOD='st'
Ist PURE_FTPD_BIND leer, so wird auf allen konfigurierten IP-Adressen 'gelauscht'.
Gültige Werte: Index von IP_ETH_x_IPADDR oder leer
Standardeinstellung: PURE_FTPD_BIND=”
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: ISO-8859-15, UTF-8 oder auto
Standardeinstellung: PURE_FTPD_FSCHARSET='auto'
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'
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_USE_PAM='yes'
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_ALLOW_ROOT_ACCESS='no'
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
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'
Mit dem Paket wird ein Default-Zertifikat pure-ftpd.pem mitgeliefert (nur bis Version 2.7.1).
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 /usr/local/ssl/certs)
Standardeinstellung: PURE_FTPD_CERTIFICATE='pure-ftpd.pem'
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 oder leer
Standardeinstellung: PURE_FTPD_NONANONYMOUS_IP=”
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'
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 /home/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'
Gültige Werte: Index von IP_ETH_x_IPADDR
Standardeinstellung: PURE_FTPD_VIRTUAL_SERVER_x_IP='2'
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'
Einer der häufigsten Anwendungsfälle für diesen Parameter ist eine Angabe der Form -L <Anzahl Dateien>:<Verzeichnistiefe>, also z.B. -L 5000:10. Der Pure-FTPd listet standardmäßig nur 2000 Dateien mit einer Verzeichnistiefe von 5. Diese Limitierung kann über eine entsprechende Angabe bei PURE_FTPD_ADD_ARGS umgangen werden.
Standardeinstellung: PURE_FTPD_ADD_ARGS=”
Gültige Werte: yes, no
Standardeinstellung: PURE_FTPD_SHOW_ARGS='no'
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_#_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='/home/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 /home/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 ueber 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 /etc/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 /home/vftp. Der Name des Home-Verzeichnisses sollte dem Usernamen entsprechen, kann aber innerhalb des Verzeichnisses /home/vftp frei gewählt werden.
Obwohl der gesamte Verzeichnisbaum, also auch /home/vftp wählbar ist sollten nur erfahrene Administratoren den Basis-Pfad /home/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 /home/ftp.
Sind virtuelle Server definiert, so ist das Verzeichnis abhängig von der genutzten IP-Adresse (PURE_FTPD_VIRTUAL_SERVER_x_IP) und dem dazu gehörigen Verzeichnis (PURE_FTPD_VIRTUAL_SERVER_x_DIR).
Mit folgenden Einstellungen wurde der Pure-FTPd übersetzt:
--with-ftpwho
--with-rfc2640
--prefix=/usr
--sysconfdir=/etc/pure-ftpd
--with-ftpwho
--with-puredb
--with-language=english
--with-throttling
--with-altlog
--with-quotas
--with-uploadscript
--with-peruserlimits
--with-ratios
--with-pam
--with-tls
--with-certfile=/var/certs/ssl/certs/pure-ftpd.pem
--with-sysquotas
--with-mysql
--with-cookie
--with-virtualhosts
Der pure-ftpd wird zwei mal konfiguriert und übersetzt:
--with-virtualchroot
Hier ensteht das Binary pure-ftpd_with_virtualchroot.
Beim zweiten konfigurieren und übersetzten wird ohne diese
Konfiguration übersetzt. Es entsteht das Binary
pure-ftpd_no_virtualchroot
Bis incl. Version 2.9.1 zusätzlich
--with-pgsql