FTP Server · 7 min read · Sep 23, 2025
Installation von Pure-FTPd auf Ubuntu 24.04

Pure-FTPd ist eine kostenlose, Open-Source-FTP-Server-Software, die für Ubuntu und andere Linux-Distributionen verfügbar ist. Entwickelt mit einem Fokus auf Sicherheit, Leistung und Benutzerfreundlichkeit, bietet Pure-FTPd robuste Funktionen wie Unterstützung für virtuelle Benutzer, verschlüsselte Verbindungen über TLS/SSL und verschiedene Authentifizierungsmechanismen. Es bietet auch Funktionen wie Bandbreitenbegrenzung, Einschränkung von Benutzerberechtigungen und die Aktivierung des anonymen FTP-Zugriffs. Pure-FTPd wird oft wegen seiner einfachen Konfiguration im Vergleich zu anderen FTP-Servern gewählt, was es zu einer beliebten Wahl für sowohl kleine als auch große Bereitstellungen auf Ubuntu-Systemen macht.
Das File Transfer Protocol (FTP) ist ein standardisiertes Netzwerkprotokoll, das verwendet wird, um Dateien zwischen einem Client und einem Server über ein Netzwerk, wie das Internet, zu übertragen. Entwickelt in den frühen 1970er Jahren, ermöglicht FTP Benutzern das Hochladen, Herunterladen und Verwalten von Dateien auf einem Remote-Server. Es arbeitet über zwei Kanäle: einen Befehlskanal zur Steuerung der Verbindung und einen Datenkanal zur Übertragung von Dateien. FTP kann im aktiven oder passiven Modus arbeiten, was bestimmt, wie der Server und der Client Verbindungen herstellen. Obwohl es weit verbreitet für Dateiübertragungen verwendet wird, gilt FTP als unsicher, da Daten, einschließlich Anmeldeinformationen, im Klartext übertragen werden; ich werde Ihnen in diesem Leitfaden zeigen, wie Sie Pure-FTPd so konfigurieren, dass es FTPS (FTP über SSL/TLS) verwendet, um FTP sicher zu machen.
Dieses Tutorial führt Sie Schritt für Schritt durch den Prozess der 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
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 Port. Zum Beispiel, Bind 21 bindet an Port 21 auf allen verfügbaren Adressen.
- BrokenClientsCompatibility: Aktiviert die Kompatibilität mit FTP-Clients, die sich nicht strikt an die FTP-Standards halten.
- ChrootEveryone: Wenn aktiviert, beschränkt es alle Benutzer auf ihr Home-Verzeichnis.
- CreateHomeDir: Erstellt automatisch Home-Verzeichnisse, wenn sie nicht existieren, wenn sich ein Benutzer anmeldet.
- CustomerProof: Erhöht die Widerstandsfähigkeit gegen häufige Fehler in Client-Konfigurationen 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: Legt den Zeichensatz des Dateisystems fest, nützlich für nicht-ASCII-Dateinamen.
- IPv4Only oder IPv6Only: Beschränkt den Server darauf, nur IPv4- oder IPv6-Adressen zu lauschen.
- 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 Festplattennutzung.
- MaxIdleTime: Legt die maximale Leerlaufzeit in Minuten fest, bevor ein Client getrennt wird.
- MaxLoad: Trennt Clients oder verweigert neue Verbindungen bei einer bestimmten Systemlast.
- MinUID: Legt die minimale UID für die Anmeldung fest. 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: Legt Benutzerquotenlimits fest.
- 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: Legt die Standard-Umask für die Dateierstellung fest.
- 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 im /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.