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 update

Installation von Pure-FTPd

Als nächstes installieren Sie Pure-FTPd mit dem folgenden Befehl:

sudo apt install pure-ftpd

Konfiguration von Pure-FTPd für verbesserte Sicherheit

Einrichten einer sicheren Umgebung

Erstellen Sie eine dedizierte Gruppe für FTP-Benutzer:

sudo groupadd ftpgroup

Erstellen Sie einen Benutzer für Pure-FTPd:

sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Verwaltung 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 mkdb

Ersetzen 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 restart

Erweiterte 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 --help

Befehl 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 IPv4Only oder IPv6Only. - 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.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.