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

Befehl 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 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.