FTP Server · 6 min read · Sep 24, 2025
Installation von Pure-FTPd auf Ubuntu 22.04

Pure-FTPd ist ein kostenloser (BSD-Lizenz), sicherer, produktionsreifer und standardkonformer FTP-Server. Er bietet keine unnötigen Spielereien, sondern konzentriert sich auf Effizienz und Benutzerfreundlichkeit. Diese Anleitung bietet einen schrittweisen Prozess zur Installation und Konfiguration von Pure-FTPd auf Ubuntu.
Voraussetzungen für die Installation von Pure-FTPd
Bevor Sie mit der Installation fortfahren, stellen Sie sicher, dass Sie:
- Ein Ubuntu-Server-Setup haben
- Zugriff auf ein Benutzerkonto mit
sudo-Rechten haben
Schritt-für-Schritt-Installation von Pure-FTPd
Aktualisierung der Systempakete
Zuerst aktualisieren Sie die Paketliste Ihres Systems:
sudo apt updateInstallation von Pure-FTPd
Als nächstes installieren Sie Pure-FTPd mit dem folgenden Befehl:
sudo apt install pure-ftpdKonfiguration von Pure-FTPd für verbesserte Sicherheit
Einrichten einer sicheren Umgebung
Erstellen Sie eine dedizierte Gruppe für FTP-Benutzer:
sudo groupadd ftpgroupErstellen Sie einen Benutzer für Pure-FTPd:
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuserVerwaltung des Benutzerzugriffs
Um einen Benutzer zum FTP-Server hinzuzufügen:
sudo pure-pw useradd [benutzername] -u ftpuser -g ftpgroup -d /home/ftpusers/[benutzername]
sudo pure-pw mkdbErsetzen Sie [benutzername] durch den gewünschten Benutzernamen.
Konfiguration von TLS für sichere Datenübertragung
Generieren Sie ein selbstsigniertes Zertifikat:
sudo openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pemÄndern Sie die Pure-FTPd-Konfiguration, um TLS zu aktivieren:
echo 1 | sudo tee /etc/pure-ftpd/conf/TLS
sudo service pure-ftpd restartErweiterte Konfigurationsoptionen
Hier ist eine Liste von gängigen Einstellungen, die für Pure-FTPd im /etc/pure-ftpd/conf/ Verzeichnis auf Ubuntu konfiguriert werden können. Der Name der Konfigurationsdatei ist fett gedruckt.
- AltLog: Gibt alternative Protokollierungsmethoden an. Zum Beispiel, AltLog clf:/var/log/pureftpd.log protokolliert Übertragungen im W3C-Format.
- AnonymousOnly: Wenn aktiviert (durch Erstellen einer Datei mit dem Namen AnonymousOnly), beschränkt es den Server darauf, nur anonyme Anmeldungen zuzulassen.
- AntiWarez: Wenn diese Datei existiert, ist es Benutzern untersagt, Dateien hochzuladen, die bereits auf dem Server existieren.
- AutoRename: Benennt hochgeladene Dateien automatisch um, wenn eine Datei mit demselben Namen existiert.
- Bind: Bindet den Server an eine bestimmte IP-Adresse und einen bestimmten Port. Zum Beispiel, Bind 21 bindet an Port 21 auf allen verfügbaren Adressen.
- BrokenClientsCompatibility: Aktiviert die Kompatibilität mit FTP-Clients, die die FTP-Standards nicht strikt einhalten.
- ChrootEveryone: Wenn aktiviert, beschränkt es alle Benutzer auf ihr Heimatverzeichnis.
- CreateHomeDir: Erstellt automatisch Heimatverzeichnisse, wenn sie nicht existieren, wenn sich ein Benutzer anmeldet.
- CustomerProof: Erhöht die Widerstandsfähigkeit gegen häufige Fehler in Clientkonfigurationen und -befehlen.
- Daemonize: Wenn diese Datei existiert, wird Pure-FTPd als Daemon ausgeführt.
- DisplayDotFiles: Steuert, ob Dot-Dateien (versteckte Dateien) angezeigt werden oder nicht.
- DontResolve: Verhindert die DNS-Auflösung für Protokollierung und Bandbreitenkontrolle, was die Leistung verbessern kann.
- ExtAuth: Gibt ein externes Programm für die Benutzerauthentifizierung an.
- ForcePassiveIP: Erzwingt, dass der Server eine bestimmte IP-Adresse an passive Modus-Clients meldet.
- FSCharset: Setzt den Zeichensatz des Dateisystems, nützlich für nicht-ASCII-Dateinamen.
- IPv4Only oder IPv6Only: Beschränkt den Server darauf, nur auf IPv4- oder IPv6-Adressen zu hören.
- KeepAllFiles: Verhindert die Löschung von Dateien auf dem Server.
- LDAPConfigFile: Gibt den Pfad zur LDAP-Konfigurationsdatei für die Authentifizierung an.
- LimitRecursion: Begrenzung der Rekursionstiefe und der Anzahl der in Verzeichnisauflistungen angezeigten Dateien.
- MaxClientsNumber: Begrenzung der maximalen Anzahl gleichzeitiger Clients.
- MaxClientsPerIP: Beschränkt die Anzahl gleichzeitiger Verbindungen von einer einzelnen IP-Adresse.
- MaxDiskUsage: Begrenzung des Prozentsatzes der Datennutzung.
- MaxIdleTime: Setzt die maximale Leerlaufzeit in Minuten, bevor ein Client getrennt wird.
- MaxLoad: Trennt Clients oder verweigert neue Verbindungen über einer bestimmten Systemlast.
- MinUID: Setzt die minimale UID für die Anmeldung. Benutzer mit einer niedrigeren UID können sich nicht anmelden.
- MySQLConfigFile: Gibt den Pfad zur MySQL-Konfigurationsdatei für die datenbankbasierte Authentifizierung an.
- NoAnonymous: Deaktiviert anonyme Anmeldungen, wenn diese Datei existiert.
- NoChmod: Deaktiviert den CHMOD-Befehl auf dem Server.
- NoRename: Verhindert, dass Benutzer Dateien umbenennen.
- PassivePortRange: Definiert einen Bereich von Ports für passive Verbindungen (z.B. 30000 35000).
- PerUserLimits: Setzt Grenzen auf Benutzerbasis.
- PureDB: Gibt den Pfad zur PureDB-Benutzerdatenbankdatei an.
- Quota: Setzt Benutzerquotenlimits.
- SyslogFacility: Definiert die Syslog-Einrichtung für die Protokollierung.
- TLSCipherSuite: Gibt die erlaubten TLS-Verschlüsselungen für verschlüsselte Verbindungen an.
- TrustedGID: Gibt eine Liste von vertrauenswürdigen Gruppen-IDs für die Anmeldung an.
- UMask: Setzt die Standard-Umask für die Dateierstellung.
- UnixAuthentication: Aktiviert die Authentifizierung gegen die UNIX-Passwortdatenbank.
- UploadScript: Gibt ein Skript an, das nach einem erfolgreichen Upload ausgeführt werden soll.
Diese Liste umfasst die am häufigsten verwendeten Konfigurationsoptionen, ist jedoch nicht vollständig. Konsultieren Sie immer die offizielle Pure-FTPd-Dokumentation oder verwenden Sie den
pure-ftpd-wrapper --helpBefehl für die genauesten und umfassendsten Informationen.
Beispiele
Hier ist eine Liste von Pure-FTPd-Einstellungen in /etc/pure-ftpd/conf/ mit Beispielen, um die Arten von Werten zu veranschaulichen, die sie akzeptieren:
- AltLog:
AltLog clf:/var/log/pureftpd.log- Beispiel:clf:/var/log/pureftpd.log - AnonymousOnly: Aktivieren durch Erstellen einer Datei mit dem Namen
AnonymousOnly. - Kein Wert erforderlich. - AntiWarez: Aktivieren durch Erstellen einer Datei mit dem Namen
AntiWarez. - Kein Wert erforderlich. - AutoRename: Aktivieren durch Erstellen einer Datei mit dem Namen
AutoRename. - Kein Wert erforderlich. - Bind:
Bind 21- Beispiel:192.168.0.1,21 - BrokenClientsCompatibility: Aktivieren durch Erstellen einer Datei mit dem Namen
BrokenClientsCompatibility. - Kein Wert erforderlich. - ChrootEveryone: Aktivieren durch Erstellen einer Datei mit dem Namen
ChrootEveryone. - Kein Wert erforderlich. - CreateHomeDir: Aktivieren durch Erstellen einer Datei mit dem Namen
CreateHomeDir. - Kein Wert erforderlich. - CustomerProof: Aktivieren durch Erstellen einer Datei mit dem Namen
CustomerProof. - Kein Wert erforderlich. - Daemonize: Aktivieren durch Erstellen einer Datei mit dem Namen
Daemonize. - Kein Wert erforderlich. - DisplayDotFiles: Aktivieren durch Erstellen einer Datei mit dem Namen
DisplayDotFiles. - Kein Wert erforderlich. - DontResolve: Aktivieren durch Erstellen einer Datei mit dem Namen
DontResolve. - Kein Wert erforderlich. - ExtAuth:
ExtAuth /path/to/authenticator- Beispiel:/usr/local/bin/myauth - ForcePassiveIP:
ForcePassiveIP 192.168.0.1- Beispiel:192.168.0.1 - FSCharset:
FSCharset utf-8- Beispiel:utf-8 - IPv4Only oder IPv6Only: Aktivieren durch Erstellen einer Datei mit dem Namen
IPv4OnlyoderIPv6Only. - Kein Wert erforderlich. - KeepAllFiles: Aktivieren durch Erstellen einer Datei mit dem Namen
KeepAllFiles. - Kein Wert erforderlich. - LDAPConfigFile:
LDAPConfigFile /etc/pure-ftpd/ldap.conf- Beispiel:/etc/pure-ftpd/ldap.conf - LimitRecursion:
LimitRecursion 10000 8- Beispiel:10000 8(10000 Dateien, 8 Ebenen tief) - MaxClientsNumber:
MaxClientsNumber 50- Beispiel:50 - MaxClientsPerIP:
MaxClientsPerIP 8- Beispiel:8 - MaxDiskUsage:
MaxDiskUsage 95- Beispiel:95(95 Prozent) - MaxIdleTime:
MaxIdleTime 15- Beispiel:15(15 Minuten) - MaxLoad:
MaxLoad 4.0- Beispiel:4.0 - MinUID:
MinUID 1000- Beispiel:1000 - MySQLConfigFile:
MySQLConfigFile /etc/pure-ftpd/mysql.conf- Beispiel:/etc/pure-ftpd/mysql.conf - NoAnonymous: Aktivieren durch Erstellen einer Datei mit dem Namen
NoAnonymous. - Kein Wert erforderlich. - NoChmod: Aktivieren durch Erstellen einer Datei mit dem Namen
NoChmod. - Kein Wert erforderlich. - NoRename: Aktivieren durch Erstellen einer Datei mit dem Namen
NoRename. - Kein Wert erforderlich. - PassivePortRange:
PassivePortRange 30000 35000- Beispiel:30000 35000 - PerUserLimits:
PerUserLimits 8- Beispiel:8(8 gleichzeitige Verbindungen pro Benutzer) - PureDB:
PureDB /etc/pure-ftpd/pureftpd.pdb- Beispiel:/etc/pure-ftpd/pureftpd.pdb - Quota:
Quota 1000M- Beispiel:1000M(1000 Megabyte) - SyslogFacility:
SyslogFacility ftp- Beispiel:ftp - TLSCipherSuite:
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3- Beispiel:HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3 - TrustedGID:
TrustedGID 1000- Beispiel:1000 - UMask:
UMask 133:022- Beispiel:133:022(Dateien: 133, Verzeichnisse: 022) - UnixAuthentication: Aktivieren durch Erstellen einer Datei mit dem Namen
UnixAuthentication. - Kein Wert erforderlich. - UploadScript:
UploadScript /path/to/script- Beispiel:/usr/local/bin/uploadscript
Diese Beispiele sollten verdeutlichen, wie verschiedene Optionen in Pure-FTPd konfiguriert werden können.
Überwachung und Wartung
Überprüfen Sie regelmäßig die Protokolle in /var/log/pure-ftpd/ auf ungewöhnliche Aktivitäten oder Fehler.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.