Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
server:pure-ftpd [2009/09/25 21:24] – st | server:pure-ftpd [2014/04/25 15:58] (aktuell) – [Benutzerdatenbank von pure-ftpd verwalten] st | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Pure-ftpd ====== | ||
+ | Vorteil: sperrt standardmäßig User ein (chroot) | ||
+ | ===== Links ===== | ||
+ | * [[http:// | ||
+ | * **[[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | |||
+ | Ansonsten ist in [[http:// | ||
+ | |||
+ | |||
+ | |||
+ | ===== Verwaltung ===== | ||
+ | |||
+ | |||
+ | ==== grafische Oberflächen ==== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | ==== Stammverzeichnis für alle FTP-Benutzer ==== | ||
+ | |||
+ | * Gruppe und Benutzer für [[netzwerke: | ||
+ | useradd -g ftpgroup -d /dev/null -s / | ||
+ | * Verzeichnis für [[netzwerke: | ||
+ | chown ftpuser: | ||
+ | |||
+ | |||
+ | ==== Benutzerdatenbank von pure-ftpd verwalten ==== | ||
+ | |||
+ | Das Handbuch ('' | ||
+ | |||
+ | < | ||
+ | NAME | ||
+ | | ||
+ | |||
+ | SYNTAX | ||
+ | | ||
+ | -D/-d home_directory [-c gecos] | ||
+ | [-t download_bandwidth] [-T upload_bandwidth] | ||
+ | [-n max number_of_files] [-N max_Mbytes] | ||
+ | [-q upload_ratio] [-Q download_ratio] | ||
+ | [-r <allow client host>/< | ||
+ | [-i <allow local host>/< | ||
+ | [-y <max number of concurrent sessions> | ||
+ | [-z < | ||
+ | | ||
+ | -D/-d home_directory -[c gecos] | ||
+ | [-t download_bandwidth] [-T upload_bandwidth] | ||
+ | [-n max_number_of_files] [-N max_Mbytes] | ||
+ | [-q upload_ratio] [-Q download_ratio] | ||
+ | [-r <allow client host>/< | ||
+ | [-i <allow local host>/< | ||
+ | [-y <max number of concurrent sessions> | ||
+ | [-z < | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Die Optionen werden (etwas ungewöhlich) durch ein wrapper-Script geparst: ''/ | ||
+ | |||
+ | === Benutzerdatenbank aktivieren === | ||
+ | |||
+ | Die unterstützten Mechanismen sind in ''/ | ||
+ | < | ||
+ | 65unix -> ../ | ||
+ | 70pam -> ../ | ||
+ | </ | ||
+ | Soll pure-ftpd lediglich mit der pureDB laufen, dann müssen diese Symlinks gelöscht werden und ein neuer Symlink mit Ziel auf '' | ||
+ | |||
+ | === Benutzer auflisten === | ||
+ | pure-pw list [USER] | ||
+ | |||
+ | |||
+ | === FTP-Benutzer hinzufügen === | ||
+ | |||
+ | - Heimatverzeichnis des neuen Benutzer erzeugen (kann auch automatisch erfolgen wenn CreateHomeDir=yes gesetzt ist): < | ||
+ | chgrp ftpgroup / | ||
+ | - Benutzer zur pure-ftpd-Datenbank hinzufügen:< | ||
+ | | ||
+ | Ein komplexeres Beispiel: Der Benutzer Adam mit der Benutzer-ID " | ||
+ | |||
+ | Neue Benutzer lassen sich auch über Script hinzufügen: | ||
+ | |||
+ | Beispiel: Die Datei Passwortdatei " | ||
+ | |||
+ | < | ||
+ | geheimes Passwort | ||
+ | geheimes Passwort | ||
+ | </ | ||
+ | nun leiten wir die Datein auf die Standardeingabe (stdin) von pure-pw: <code bash> | ||
+ | |||
+ | |||
+ | === FTP-Benutzer entfernen === | ||
+ | |||
+ | <code bash> | ||
+ | pure-pw userdel BENUTZER | ||
+ | pure-pw mkdb | ||
+ | </ | ||
+ | |||
+ | === FTP-Benutzer - Passwort ändern === | ||
+ | |||
+ | <code bash> | ||
+ | pure-pw passwd BENUTZER | ||
+ | pure-pw mkdb | ||
+ | </ | ||
+ | |||
+ | === Benutzer-Datenbank aktualisieren === | ||
+ | |||
+ | :!: Nach jeder Änderung muss IMMER dieser Befehl ausgeführt werden (vorher werden keine Änderungen aktiv): | ||
+ | |||
+ | pure-pw mkdb | ||
+ | |||
+ | ==== Standard-Vorgaben ändern (Debian) ==== | ||
+ | |||
+ | Zwischen standalone oder daemon wechseln ([[debian: | ||
+ | |||
+ | dpkg-reconfigure pure-ftpd-common | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Pure-FTPd starten ===== | ||
+ | |||
+ | manueller Start: | ||
+ | |||
+ | / | ||
+ | |||
+ | |||
+ | ==== Wichtige Startparameter ==== | ||
+ | |||
+ | |||
+ | ^ Parameter ^ Wirkung ^ | ||
+ | | -u [UID] | login nicht unter UID (Zahlenwert) erlauben | | ||
+ | | -c [Zahl] | max. clients, Standard ist 50 | | ||
+ | | -C [Zahl] | max. connections per ip | | ||
+ | | -A | chroot everyone but root | | ||
+ | | -B | start in background (daemonize) | | ||
+ | | -k percentage -> Disallow upload if the partition is more than percentage full | | ||
+ | | -w | Enable support for the FXP protocol (for non-anonymous users only) | | ||
+ | | -E | Only allow authenticated login. Anonymous users are prohibited. | | ||
+ | | -Y 1 | SSL aktiviert, pem-Datei wird als / | ||
+ | |||
+ | ==== nur Anonyme Benutzer erlauben ==== | ||
+ | |||
+ | FIXME (Übersetzung) | ||
+ | |||
+ | * -e -> Only allow anonymous users to log in. leave out if usual users should login | ||
+ | * -i -> Disallow upload for anonymous users | ||
+ | * -s -> Don' | ||
+ | |||
+ | Anonymous users are authenticated in any of three ways: | ||
+ | |||
+ | - The user logs in as " | ||
+ | - The user connects to an IP address which resolves to the name of a directory in / | ||
+ | |||
+ | Note that ftpd allows remote users to log in as root if the password is known and -u not used. | ||
+ | |||
+ | ===== TLS aktivieren ===== | ||
+ | |||
+ | - Zertifikat und Schlüssel in einer .pem-Datei nach ''/ | ||
+ | - echo 1 > / | ||
+ | - / | ||
+ | |||
+ | Mit -Y 2 oder -Y 3 kann man TLS durchdrücken, | ||
+ | |||
+ | ===== Konfiguration durch Textdateien per pure-ftpd-wrapper ===== | ||
+ | |||
+ | Zumindest auf Debian ist es möglich per Textdateien die Startparameter von pure-ftpd zu beeinflussen. Die Konfigurationsdateien liegen unterhalb / | ||
+ | |||
+ | Das [[programmiersprachen: | ||
+ | |||
+ | |||
+ | In ''/ | ||
+ | < | ||
+ | AllowAnonymousFXP' | ||
+ | AllowDotFiles' | ||
+ | AllowUserFXP' | ||
+ | AltLog' | ||
+ | AnonymousBandwidth' | ||
+ | AnonymousCanCreateDirs' | ||
+ | AnonymousCantUpload' | ||
+ | AnonymousOnly', | ||
+ | AnonymousRatio' | ||
+ | AntiWarez' | ||
+ | AutoRename' | ||
+ | Bind' => ['-S %s', \& | ||
+ | BrokenClientsCompatibility' | ||
+ | CallUploadScript' | ||
+ | ChrootEveryone' | ||
+ | CreateHomeDir' | ||
+ | CustomerProof' | ||
+ | Daemonize' | ||
+ | DisplayDotFiles' | ||
+ | DontResolve' | ||
+ | ForcePassiveIP' | ||
+ | FortunesFile' | ||
+ | IPV4Only' | ||
+ | IPV6Only' | ||
+ | KeepAllFiles' | ||
+ | LimitRecursion' | ||
+ | LogPID' | ||
+ | MaxClientsNumber' | ||
+ | MaxClientsPerIP' | ||
+ | MaxDiskUsage' | ||
+ | MaxIdleTime' | ||
+ | MaxLoad' | ||
+ | MinUID' | ||
+ | NATmode' | ||
+ | NoAnonymous' | ||
+ | NoChmod' | ||
+ | NoRename' | ||
+ | NoTruncate' | ||
+ | PassivePortRange' | ||
+ | PerUserLimits' | ||
+ | ProhibitDotFilesRead' | ||
+ | ProhibitDotFilesWrite' | ||
+ | Quota' => ['-n %d: | ||
+ | SyslogFacility' | ||
+ | TLS' => ['-Y %d', \& | ||
+ | TrustedGID' | ||
+ | TrustedIP' | ||
+ | Umask' => ['-U %s: | ||
+ | UserBandwidth' | ||
+ | UserRatio' | ||
+ | ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Pureftpd ohne Capabilities unter Debian Lenny selbst bauen ===== | ||
+ | |||
+ | Auf einem virtuellen Server mit OpenVZ oder virtuozzo scheitert der Start von pure-ftpd mit folgender Fehlermeldung: | ||
+ | < | ||
+ | pure-ftpd: (?@?) [ERROR] Unable to switch capabilities : Operation not permitted | ||
+ | </ | ||
+ | |||
+ | Um das Problem zu lösen muss pure-ftpd ohne capabilities kompiliert werden. | ||
+ | |||
+ | |||
+ | **Vorbereitungen**: | ||
+ | |||
+ | - mkdir tmp | ||
+ | - cd tmp | ||
+ | - Source-Paket mit folgendem Befehl herunterladen: | ||
+ | - < | ||
+ | - < | ||
+ | - die Zeile beginnend mit " | ||
+ | - abspeichern (" | ||
+ | - cd .. | ||
+ | - Das Paket muss neu gebaut werden: < | ||
+ | - den folgenden Fehler< | ||
+ | Entpack-Befehl »dpkg-source -x pure-ftpd_1.0.21-11.4.dsc« fehlgeschlagen. | ||
+ | Überprüfen Sie, ob das Paket »dpkg-dev« installiert ist.</ | ||
+ | - Falls gleich eine Fehlermeldung wegen fehlender Abhängigkeiten kommt: < | ||
+ | - erneut dpkg-buildpackage aufrufen | ||
+ | - cd .. | ||
+ | - Nun können wir das Paket Installieren (Dateinamen können anders lauten!): < | ||
+ | - pure-ftpd starten: < |