Das inet-Package Ab Version 1.10.0 - Stand 23.6.2007 Dieses Package wurde von Jörg Hoh zusammengestellt. Es wurde wesentlich erweitert und überarbeitet von Ansgar Püster. Dabei wurden eine Reihe von Erweiterungen von Jürgen Edner und Christoph Peus übernommen. Zusätzlich wurden einige Konfigurationsparameter dem opt_pftpd für fli4l von Florian Zierer entnommen. Einleitung Mit diesem Package werden verschiedene grundlegende Dienste, im folgenden auch Server oder Daemonen (eine sehr schlechte Übersetzung des englischen Wortes ''daemon'') genannt, auf dem Rechner installiert. Diese Server bieten verschiedene Basisdienste an, die oftmals auch für andere Packages notwendig sind. Funktionen Das inet-Package stellt folgende Basis-Funktionalität zur Verfügung: * FTP-Server. Als Software wird der PureFTPd verwendet ([1]http://www.pureftpd.org). Dieser FTP-Server ist sehr sicher, bietet sehr viele Features und wird aktiv weiterentwickelt. * SSH-Server. Server für die Protokolle SSH1 und SSH2 mit eigenen, änderbaren SSH-Server-Keys. Als Serversoftware kommt OpenSSH ([2]http://www.openssh.org) in einer aktuellen Version zu Einsatz. * xinetd-Daemon. Dieser sog. Super-Daemon ([3]http://www.xinetd.org) dient dazu, andere Dienste bei Bedarf zu starten. * telnet-Server. Siehe [4]http://hcs.harvard.edu/~dholland/computers/netkit.html. * tftpd. Der Trivial File Transfer Protocol server. Siehe [5]http://www.kernel.org/pub/software/network/tftp/. * time service-Dienst. Voraussetzungen Dieses Package benötigt keinerlei weitere Packages. Es ist aber in der Regeln davon abhängig, dass eine aktuelle Version des Basis-Systems installiert ist. Installation Das inet-Package wird über das Setup-Menü im Untermenü ''Package administration'' installiert. Während der Installation werden unter anderem die SSH-Server-Schlüssel, soweit nicht bereits vorhanden, generiert. Der SSH-Server wird direkt nach der Installation gestartet, alle anderen Dienste bleiben deaktiviert. Noch ein Hinweis: Unter [6]http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html finden sich eine Vielzahl von Informationen zu dem kostenlosen Windows-SSH-Client putty. Die Menüs des inet-Packages Das inet Hauptmenü Das inet Hauptmenü ist über den Menüpunkt ''Service administration'' des Hauptmenüs im zentralen Setup-Programm zu erreichen. Es ist wie folgt aufgebaut: * Edit Configuration Damit kann die Konfigurationsdatei des inet-Packages bearbeitet werden. * Show status of xinetd Den Status des xinetd Daemons anzeigen. * Stop xinetd Den xinetd Daemon anhalten. * Start xinetd Den xinetd Daemon starten. * Show status of pure-ftpd Den Status des pure-ftpd Servers anzeigen. * Stop pure-ftpd Den pure-ftpd Server stoppen. * Start pure-ftpd Den pure-ftpd Server starten. * Show status of sshd Den Status des sshd Servers anzeigen. * Stop sshd Den sshd Server stoppen. * Start sshd Den sshd Server starten. * Advanced configuration file handling Untermenü zur erweiterte Funktionen für die Konfigurationsdatei. * (Re)-Create SSH Server Keys (Erneutes) Erzeugen der SSH Server Schlüssel. * Inet documentation Untermenü zum Anzeigen der Dokumentation zum inet-Package. * pure-ftpd administration Untermenü für die Adminstration des pure-ftpd Servers. * Exit Sofortiges Beenden des Gesamtmenüs. Die meisten Menüpunkte dürften ohne weitere Erläuterung verständlich sein, da sie keinerlei weitere Eingaben erwarten, sondern nur den Status bestimmter Server/Daemons abfragen und auf Wunsch ändern. Die inet Untermenüs Der Aufbau der Untermenüs ist wie folgt: Advanced inet-configuration file handling. * Restore configuration file from default directory * Restore configuration file from backup directory * Backup configuration file to backup directory * Show difference between current and default configuration * Show difference between current and a backup configuration * Show difference between default and a backup configuration * Show difference between two backup configurations * Exit Sofortiges Beenden des Gesamtmenüs. Diese Menüpunkte sind im allgemeinen Teil der Dokumentation zu eisfair beschrieben. Inet documentation. * Show inet package documentation Anzeige der Paket-Dokumentation (diese Datei). * Show inet package changes Anzeige der Änderungshistorie. Diese Datei enthält Informationen über Veränderungen, die beim Erstellen einer neuen Version des inet-Packages vorgenimmen wurden. Unter Umständen sind hier wichtige Hinweise enthalten. * Exit Sofortiges Beenden des Gesamtmenüs. pure-ftpd administration. * List pure-ftpd virtual users Anzeige der Namen und des Home-Verzeichnisses aller sog. virtuellen pure-ftpd User. * Show info about a pure-ftpd virtual user Anzeige der Detailinformation zu einem virtuellen pure-ftpd User. * Check pure-ftpd virtual users Prüfung der Konfiguration für die vortuellen pure-ftp User. Es wird geprüft, ob das Home-Verzeichnis bereits existiert und ob der virtuelle User ggf. auch als echter Unix-User existiert. * Create new certificate for pure-ftpd Erzeugen eines neuen Zertifikates für den pure-ftpd. Ein Zertifikat wird nur benötigt, wenn der pure-ftpd mit SSL/TLS Protokoll genutzt wird. * Exit Sofortiges Beenden des Gesamtmenüs. Änderung der Konfiguration Die Konfiguration kann über den Menüpunkt ''Edit Configuration'' geändert werden. Standardmässig wird dabei der Editor joe genutzt (siehe aber Variable EDITOR in der Base configuration, Teil Edit environment configuration). Nachdem der Editor beendet wurde wird die Konfiguration mit dem Programm eischk automatisch auf syntaktische und teilweise auch auf semantische Fehler geprüft. Werden Fehler festgestellt, so werden diese gemeldet und der Benutzer zur Korrektur aufgefordert. Wird eine solche Korrektur nicht durchgeführt, so kann es zu unvorhersehbaren Fehlfunktionen bei den Diensten kommen. Es wird zusätzlich gefragt, ob die Konfiguration angewendet (aktiviert) werden soll. Wird dieses verneint, so unterbleibt die Aktivierung. ACHTUNG Beim nächsten Boot-Vorgang kann es in diesem Fall zu unvorhersehbaren Fehlern kommen. Wird die Aktivierung bestätigt, werden über ein Skript die durchgeführten Änderungen wirksam gemacht. Derzeit werden dazu alle Dienste, auch wenn sich deren jeweilige Konfiguration nicht geändert hat, gestoppt neu gestartet. Eine spätere Version des inet-Package wird hier differenzierter vorgehen. Die Konfigurationsdatei Die Konfigurationsdatei (/etc/config.d/inet) enthält in einer Reihe von Abschnitten die Parameter, die die einzelnen Dienste parametrisieren bzw. festlegen, ob ein Dienst überhaupt zur Verfügung gestellt wird oder nicht. SSH - secure shell (general settings) START_SSH Soll der SSH-Server gestartet werden (yes) oder nicht (no)? Gültige Werte: yes,no SSHD_START_METHOD Legt fest, wie der sshd Server gestartet werden soll. Bei Angabe von 'st' wird der sshd Server als sog. Standalone Server gestartet. Bei Angabe von 'xi' erfolgt der Start über den xinetd. Hier muss auch START_XINETD='yes' angegeben werden. In /etc/xinitd.d/sshd stehen als Kommentar einige Beispiele für Sicherheitsattribute die beim Start via xinetd verfügbar sind. Die Manual Page von xinetd.conf erklärt diese Attribute vollständig. Gültige Werte: st,xi SSH_PORT Definiert den Port, auf dem der SSH-Server lauschen soll. Achtung: Diese Angabe wird bei SSHD_START_METHOD='xi' zur Zeit nicht ausgewertet. Default: 22 SSH - secure shell (protocol settings) SSH_USE_SSH1 Benutze ssh1-Protokoll. Gültige Werte: yes,no SSH_USE_SSH2 Benutze ssh2-Protokoll. Gültige Werte: yes,no SSH_SVR_KEYBITS Anzahl der Server Keybits. Gültige Werte: 512, 768, 1536 SSH - secure shell (listen address settings) SSH_LISTEN_ADDR_N Anzahl der folgenden Angaben SSH_LISTEN_ADDR_x. Hat SSH_LISTEN_ADDR_N den Wert 0, so wir auf alle lokalen Adressen gelauscht. SSH_LISTEN_ADDR_x IP-Adresse auf die der SSH-Server lauschen soll. Hier ist die Nummer der IP-Adresse aus /etc/config.d/base anzugeben. Diese Angabe ist also eine Referenz auf eine Angaben in der Datei base. Beispiel: SSH_LISTEN_ADDR_1='2' zeigt auf IP_ETH_2_IPADDR in /etc/config.d/base. Gültige Werte: 1 bis IP_ETH_N (siehe Datei base) SSH - secure shell (allow/deny settings) ACHTUNG Bitte diese Konfigurationsmöglichkeiten mit Vorsicht einsetzen. Alle vier Listen werden beim Login geprüft. Es ist durch falsche Angaben durchaus möglich wichtige User (z.B. root oder eis) vom Login auszuschließen. SSH_ALLOW_USER_N Anzahl der folgenden Angaben SSH_ALLOW_USER_x. Ein Login ist erlaubt für alle User, deren Username mit einem der angegebenen Muster übereistimmt. Dabei sind die Platzhalter '*' und '?' möglich. Die Angabe 'r*' bei SSH_ALLOW_USER_x erlaubt beispielsweise ein Login für alle User, deren Username mit r beginnt. Ein Wert 0 bedeutet, dass alle User sich via sshd einloggen dürfen. SSH_ALLOW_USER_x Muster für Usernamen, die sich via sshd einloggen dürfen. SSH_DENY_USER_N Anzahl der folgenden Angaben SSH_DENY_USER_x. Ein Login ist nicht erlaubt für alle User, deren Username mit einem der angegebenen Muster übereistimmt. Dabei sind die Platzhalter '*' und '?' möglich. Die Angabe 'b*' bei SSH_DENY_USER_x verbietet beispielsweise ein Login für alle User, deren Username mit b beginnt. Ein Wert 0 bedeutet, dass alle User sich via sshd einloggen dürfen. SSH_DENY_USER_x Muster für Usernamen, die sich nicht via sshd einloggen dürfen. SSH_ALLOW_GROUP_N Anzahl der folgenden Angaben SSH_ALLOW_GROUP_x. Ein Login ist erlaubt für alle User, deren primäre oder zusätzliche Gruppe mit einem der angegebenen Muster übereistimmt. Dabei sind die Platzhalter '*' und '?' möglich. Die Angabe 's*' bei SSH_ALLOW_GROUP_x erlaubt beispielsweise ein Login für alle User, deren primäre oder zusätzliche Gruppe mit s beginnt. Ein Wert 0 bedeutet, dass alle User sich via sshd einloggen dürfen. SSH_ALLOW_GROUP_x Muster für Gruppennamen, deren User sich via sshd einloggen dürfen. SSH_DENY_GROUP_N Anzahl der folgenden Angaben SSH_DENY_GROUP_x. Ein Login ist nicht erlaubt für alle User, deren primäre oder zusätzliche Gruppe mit einem der angegebenen Muster übereistimmt. Dabei sind die Platzhalter '*' und '?' möglich. Die Angabe 'v*' bei SSH_DENY_GROUP_x verbietet beispielsweise ein Login für alle User, deren primäre oder zusätzliche Gruppe mit v beginnt. Ein Wert 0 bedeutet, dass alle User sich via sshd einloggen dürfen. SSH_DENY_GROUP_x Muster für Gruppennamen, deren User sich nicht via sshd einloggen dürfen. SSH_PERMITROOTLOGIN Über diese Angabe kann die Möglichkeit des Logins für den User root feiner gesteuert werden. Es sind folgende Angaben möglich: 'yes' der User root darf sich via ssh anmelden. 'no' der User root darf sich nicht via ssh anmelden. 'without-password' die Identifizierung über ein Passwort ist nicht erlaubt. Diese Option ermöglicht allerdings trotzdem eine Anmeldung mit Passwort, wenn z.B. eine PAM-Authentifizierung eingeschaltet ist. 'forced-commands-only' der User root darf sich nur dann über Key Authentifizierung anmelden, wenn ein Kommando direkt über den ssh Befehl angegeben wurde. Gültige Werte: yes,no,without-password,forced-commands-only SSH - secure shell (public key settings for user root) Die für Public Key Authentication des Users root benötigte Datei /root/.ssh/authorized_keys wird aus den Informationen der Konfiguration generiert. Dazu müssen die öffentlichen Teile der mittels ssh-keygen generierten Schlüsselpaare (identity.pub) in der Konfiguration angegeben werden. Das kann auf zwei Arten geschehen: * Direkt in der Konfiguration Der Inhalt von identity.pub wird direkt in der Konfigurationsvariable angegeben (nicht empfohlen) * Referenz auf Datei Der Schlüssel bleibt in einer Datei, in der Konfiguration wird eine Referenz auf die Datei in Form eines absoluten Pfadnamens (beginnend mit '/') angegeben. Bei Übernahme einer Konfigurationsänderung extrahiert das Konfigurationsscript die Schlüssen aus der Konfiguration bzw. den dort referenzierten Dateien und erstellt die Datei authorized_keys neu. ACHTUNG Hat SSH_PUBLIC_KEY_N den Wert '0', so wird die Datei /root/.ssh/authorized_keys gelöscht. Wurde diese Datei unter Umgehung der eisfair Konfigurationsprozesse geändert, so gehen diese Änderungen verloren. SSH_PUBLIC_KEY_N Anzahl der folgenden Angaben SSH_PUBLIC_KEY_x SSH_PUBLIC_KEY_x Public Key (identity.pub), entweder direkt oder als absoluter Dateiname SSH - secure shell (additional settings) SSH_MAX_STARTUPS Maximale Anzahl gleichzeitig zulässiger noch nicht authentifizierter Verbindungen. Dies ist nicht die maximale Anzahl gleichzeitiger Verbindungen, sondern betrifft nur die Anzahl der Verbindungen, für die noch keine Authentifizierung (z.B. gültiges Passwort) durchgeführt wurde. SSH_ENABLE_PRIV_SEPARATION Legt fest, ob der sshd jeweils nicht privilegierte Kind-Prozess erzeugen soll. Wird SSH_ENABLE_PRIV_SEPARATION auf 'yes' gesetzt, so ist ggf. SSH_COMPRESSION auf 'no' zu setzen. Siehe dazu [8]http://www.afp548.com/Articles/security/ssh34p1.html Gültige Werte: yes,no SSH_COMPRESSION Erlaube Datenkompression. Gültige Werte: yes,no SSH_STRICTMODES Legt fest, ob der sshd die Zugriffsrechte und den Besitzer des Home-Verzeichnisses beim Login prüfen soll Gültige Werte: yes,no SSH_PASSWDAUTH Erlaube Passwort-Authentifizierung 'yes' oder nicht 'no'. Ist die Passwort-Authentifizierung ausgeschaltet 'no', so muss zwingend Key-Authentifizierung genutzt werden. ACHTUNG Bitte zunächst überprüfen, ab die Key-Authentifizierung auch funktioniert, erst dann SSH_PASSWDAUTH auf 'no' setzen. Gültige Werte: yes,no SSH_USEPAM Schalte die Authentifizierung über das sog. Pluggable Authentication Module interface (PAM) ein oder aus. Dies ist eine Vorbereitung, um zukünftig eine zentrale Ablage von Rechten in LDAP zu ermöglichen. Gültige Werte: yes,no ACHTUNG SSH_PASSWDAUTH='no' erfordert ebenfalls SSH_USEPAM='no' SSH_CH_RESPONSEAUTH Erlaube sog. response authentication, ja oder nein. Diese Variable wird später, im Zusammenhang mit PAM Authentifizierung benötigt. Gültige Werte: yes,no SSH_CLIENTALIVEINTERVAL Timeout Interval in Sekunden für sog. Client Alive Messages. SSH_CLIENTALIVECOUNTMAX Anzahl der Client Alive Messages bis die Verbindung unterbrochen wird. SSH - secure shell (subsystem settings) SSH_ENABLE_SFTP Legt fest, ob die Benutzung des sftp-Dienstes erlaubt wird. Gültige Werte: yes,no SSH - secure shell (log level settings) SSH_LOGLEVEL Stufe der Ausführlichkeit, mit der der sshd Meldungen in die Datei /var/log/messages schreibt. Es sind folgende Werte möglich: QUIET FATAL ERROR INFO VERBOSE DEBUG DEBUG1 DEBUG2 DEBUG3. Default: INFO Bitte beachten: Wird hier eine DEBUG-Stufe eingestellt, so werden ggf. Informationen mitgeschrieben, die in den Privatbereich eines User fallen können. Eine solche Ausführlichkeit sollte nur wenn unbedingt notwendig eingeschaltet werden. Die Menge der Informationen, die mitgeschrieben werden, steigt ggf. in gewaltige Größenordnungen. Gültige Werte: QUIET,FATAL,ERROR,INFO,VERBOSE,DEBUG,DEBUG1,DEBUG2,DEBUG3 pure-ftpd (general settings) START_FTP Legt fest, ob der pure-ftp FTP-Server gestartet wird. Gültige Werte: yes,no FTP_START_METHOD Legt fest, wie der pure-ftpd FTP-Server gestartet werden soll. Bei Angabe von 'st' wird der pure-ftpd FTP-Server als sog. Standalone Server gestartet. Bei Angabe von 'xi' erfolgt der Start über den xinetd. Hier muss auch START_XINETD='yes' angegeben werden. Gültige Werte: st,xi FTP_HARDKILL Legt fest, ob alle pure-ftpd Prozesses gestoppt werden sollen, wenn der Hauptprozess beendet wird: 'yes' alle pure-ftpd Prozesses werden gestoppt 'no' nur der Hauptprozess wird gestoppt Diese Option ist nur bei FTP_START_METHOD='st' möglich. Gültige Werte: yes,no FPT_PORT Definiert den Port, auf den der FTP-Server ''lauschen'' soll. Default: 21 FTP_NAT_MODE Ein Schalter, mit dem man spielen kann, wenn das FTP über einen masquerading Router (beispielsweise fli4l) nicht funktioniert. Gültige Werte: yes,no pure-ftpd (file related settings) FTP_UMASKS Format :. Beim Erstellen von Dateien bzw. Verzeichnissen zu nutzende umask Angabe. Der von pure-ftpd benutzte Default-Wert ist 133:022. Siehe umask Kommando. Gültige Werte: Zahl:Zahl FTP_LIST_DOT_FILES Bei Angabe von 'yes' werden Dateien, die mit einem Punkt ('.') beginnen auch dann angezeigt, wenn der benutzte FTP-Client das list Kommando nicht mit der Option '-a' verwendet. Diese Option ist eine Umgehungslösung für schlecht konfigurierte FTP-Clients. Gültige Werte: yes,no FTP_DISALLOW_RENAMING Bei Angabe von 'yes' ist das Umbenennen von Dateien verboten. Gültige Werte: yes,no FTP_DISALLOW_ANONYMOUS_UPLOAD Bei Angabe von 'yes' ist es anonymous Zugängen verboten Dateien auf dem FTP-Server abzulegen (kein Upload). Gültige Werte: yes,no pure-ftpd (timeout settings) FTP_HANGUP_TIME Anzahl der Minuten, nach der eine FTP-Verbindung wegen Inaktivität getrennt wird. Gültige Werte: Zahl pure-ftpd (access settings) FTP_USE_PAM Nutzung der sog. PAM authentication an Stelle der normalen Unix authentication (/etc/passwd Datei). Wird FTP_USE_PAM='yes' gesetzt, so wird beim Login via FTP die Datei /etc/ftpusers durchsucht. Diese Datei enthält diejenigen Benutzer, die nicht den PureFTPd benutzen dürfen (Negativliste). Beispiel: die Zeilen bill paul in /etc/ftpusers verbieten es bill und paul den FTP Zugang zu nutzen. Gültige Werte: yes,no FTP_ALLOW_ROOT_ACCESS Legt fest, ob sich root per FTP einloggen darf (yes) und ob es ihm verboten wird (no). Per Default ist 'no' voreingestellt, weil ansonsten das root-Passwort unverschlüsselt über die Leitung geht. Gültige Werte: yes,no FTP_ONLY_USERS Beeinflusst den Zugang als anonymous. Verbietet den Zugang (yes) oder auch anonyme User dürfen sich einloggen (no). Gültige Werte: yes,no FTP_ONLY_ANONYMOUS Bei Angabe von 'yes' sind ausschließlich anonymous Zugänge erlaubt. Gültige Werte: yes,no FTP_DONT_CHROOT_GROUP Standardmässig kann jeder User (ausser root) mit FTP nicht über sein Homeverzeichniss herauskommen. D.h. der FTP-User ''sieht'' nur sein eigenes Homeverzeichnis incl. darunter liegende Verzeichnisse und Dateien, nicht aber Verzeichnisse oberhalb des Homeverzeichnisses. Hier kann eine Gruppe (numerische GID) angeben werden, deren Mitglieder nicht auf ihre Homeverzeichnisse beschränkt sind. Wenn du nicht weisst, was du damit anstellst, bitte leer lassen. Gültige Werte: Zahl pure-ftpd (limit settings) FTP_MAX_USER Anzahl der User, die gleichzeitig auf dem FTP-Server eingeloggt sein dürfen. Gültige Werte: Zahl FTP_LIMIT Erlaube keine FTP Uploads wenn die Ziel-Partition zu mehr als FTP_LIMIT Prozent gefüllt ist. Gültige Werte: Zahl FTP_MAXCON_PER_IP Maximale zulässige Anzahl von FTP-Verbindungen pro IP-Adresse. Diese Option ist nur bei FTP_START_METHOD='st' möglich. Jeder weitere Versuch einer FTP-Verbindung über die in FTP_MAXCON_PER_IP angegebene Zahl wird abgelehnt. Gültige Werte: Zahl FTP_MAX_CPU_LOAD Ist die CPU Auslastung höher als der hier angegeben Wert, so wird der Download von Dateien für anonymous Zugänge verboten. Gültige Werte: Zahl FTP_MAX_LOGINS Format :. Maximale Anzahl von normalen Benutzern bzw. anonymous Benutzern, die mit dem FTP-Server verbunden sein dürfen. Weitere Verbindungswünsche werden abgelehnt. Der Wert 0 bedeutet unlimitierte Anzahl von Logins. Gültige Werte: Zahl:Zahl pure-ftpd (quota/bandwidth/ratio settings) FTP_FILE_QUOTA Format :. Beschränkung der Anzahl der Dateien bzw. der Summe der Dateigröße, die ein Benutzer auf dem FTP-Server ablegen darf. Die Angabe max Größe ist in Megabytes. Diese Beschränkung ist nur wirksam für Aktionen, die über den FTP-Server durchgeführt werden (virtual Quota). Die Beschränkung gilt nicht für Benutzer die speziellen Gruppen (siehe FTP_DONT_CHROOT_GROUP) angehören. Dise Option benötigt .ftpquota Dateien im jeweiligen Home-Verzeichnis des Users. Siehe Kommando pure-quotacheck und Beispielskript /usr/share/doc/inet/examples/create_dot_ftpquota.sh. Gültige Werte: Zahl:Zahl FTP_USER_BANDWIDTH Format []:[]. Beschränkung der zulässigen Banbreite bei normale Unix User, dem User anonymous und virtuelle User (wenn für diese nicht manuell über pure-pw usermod spezielle Einstellungen gemacht werden). Angabe in Kilobyte pro Sekunde. Beispiele: 256:64 256 KB/s für Uploads, 64 KB/s für Downloads 256: 256 KB/s für Uploads, keine Grenze für Downloads :64 keine Grenze für Uploads, 64 KB/s für Downloads Gültige Werte: Zahl:Zahl FTP_ANONYMOUS_BANDWIDTH Wie FTP_USER_BANDWIDTH, aber nur für den User anonymous. Gültige Werte: Zahl:Zahl ACHTUNG Es darf nur FTP_USER_BANDWIDTH oder FTP_ANONYMOUS_BANDWIDTH gesetzt werden. FTP_ANONYMOUS_RATIO Angabe eines sog. Ratios für anonymous Zugänge. Format :. Angabe jeweils in MByte. Eine Angabe von 2:5 bedeutet, dass ein Benutzer zunächst 2 MByte Daten auf den Server ablegen muss, um dann bis zu 5 MByte herunterladen zu dürfen. Gültige Werte: Zahl:Zahl FTP_ALL_USER_RATIO Ratio für nomale und anonymous Zugänge. Siehe FTP_ANONYMOUS_RATIO. Gültige Werte: Zahl:Zahl pure-ftpd (log settings) FTP_LOG Legt fest, ob ein Protokoll der Up- und Downloads in einem speziellen Format (siehe FTP_LOG_FORMAT) erfolgen soll. Gültige Werte: yes,no FTP_LOG_FORMAT Format des Protokolls der Up- und Downloads. Gültige Werte: CLF Stats W3C Xferlog FTP_LOG_PATH Pfad für die Protokolldatei pure-ftpd (upload settings) FTP_UPLOADSCRIPT_ARGS Über das Programm pure-uploadscript kann nach jedem Upload einer Datei ein Programm/Shell-Skript (z.B. ein Virenscanner) gestartet werden. Bei FTP_UPLOADSCRIPT_ARGS sind die vollständigen Argumente für den Aufruf von pure-uploadscript, z.B. '-r /tmp/scanner.sh' anzugeben. Unter /usr/share/doc/inet/examples findet sich als scanner.sh ein unvollständiges Beispielskript. pure-ftpd (additional settings) FTP_ADD_ARGS Zusätzliche Argumente beim Start des pure-ftpd. Hier sollten nur erfahrene Anwender Angaben machen. Einer der häufigsten Anwendungsfälle für diesen Parameter ist eine Angabe der Form -L :, also z.B. -L 5000:10. Der pure-ftpd listet defaultmäßig nur 2000 Dateien mit einer Verzeichnistiefe von 5. Diese Limitierung kann über eine entsprechende Angabe bei FTP_ADD_ARGS umgangen werden. FTP_SHOW_ARGS Eine Angabe 'yes' sorgt dafür, dass alle Parameter für den Start des pure-ftpd angezeigt werden. Dies ist bei einer Fehlersuche sinnvoll. Gültige Werte: yes,no pure-ftpd (virtual Users) FTP_ENABLE_VIRTUAL_USERS Unterstützung für die virtuellen FTP-User einschalten (yes) oder abschalten (no). Gültige Werte: yes,no FTP_VIRTUAL_USERS_DELETE Diese Variable legt fest, ob virtuelle FTP-User die nicht mehr in einer FTP_VIRTUAL_USERS_#_USERNAME Variablen definiert sind gelöscht werden oder, wie in den älteren Versionen des Inet-Paketes, bestehen bleiben. Wird FTP_VIRTUAL_USERS_DELETE='yes' gesetzt, so sind nach Aktivierung der Konfiguration nur die aktuellen virtuellen FTP-User verfügbar. Alle anderen werden gelöscht, wobei allerdings die Homeverzeichnisse bestehen bleiben. ACHTUNG Wird die Variable auf dem Defaultwert 'no' belassen, so kann es zu folgendem Effekt kommen. Ein virtueller FTP-User ist nicht mehr in der Konfigurationsdatei durch eine FTP_VIRTUAL_USERS_#_USERNAME Variablen beschrieben, er ist aber in den Konfigurationsdateien des pure-ftpd Servers weiterhin vorhanden und kann sich auch weiterhin anmelden. Gültige Werte: yes,no FTP_VIRTUAL_USERS_N Anzahl der definierten virtuellen User. Gültige Werte: Zahl FTP_VIRTUAL_USERS_x_USERNAME Definiert für den virtuellen User x den Benutzernamen. Gültige Werte: Username FTP_VIRTUAL_USERS_x_HOME Definiert das Homeverzeichniss für den virtuellen User x. Gültige Werte: absoluter Verzeichnissname FTP_VIRTUAL_USERS_x_PASSWD Definiert das Passwort für den virtuellen User x. Wird ein Passwort leer gelassen (also ''), so wird beim Anlegen des Users nach dem Passwort gefragt. Wird ein Passwort angegeben, so bekommt der User dieses Passwort. Um die Sicher heit des Users nicht zu gefährden, wird das Passwort nach der Anlage des Users auf '******' gesetzt. xinetd (general settings) START_XINETD Soll der xinetd-Daemon gestartet werden (yes) oder nicht (no)? Gültige Werte: yes,no time service (general settings) ENABLE_TIME_SERVICE Soll der sog. time service sowohl via UPD, als auch via TCP bereitgestellt werden (yes) oder nicht (no)? Über diesen Dienst auf Port 37 können andere Rechner einen Zeitabgleich mit dem Eisserver durchführen. ENABLE_TIME_SERVICE='yes' benötigt START_XINETD='yes'. Gültige Werte: yes,no telnetd (general settings) START_TELNET Soll der Telnet-Server gestartet werden (yes) oder nicht (no). Wenn Telnet werden soll, muss auch der xinetd gestartet werden. Gültige Werte: yes,no tftpd (general settings) START_TFTPD Soll der tftp-Server gestartet werden? Wenn der tftpd gestartet werden soll, muss auch der xinetd gestartet werden. Gültige Werte: yes,no TFTPD_ADD_ARGS Zusätzliche Argumente beim Aufruf des tftpd. Näheres siehe Dokumentation des tftpd. Hier sollten nur erfahrene Anwender Angaben machen. Die Funktion des xinetd Der xinetd ist als Superserver konzipiert und kann gewissen Dienste starten, wenn sie angefragt werden. Dies kann insbesondere dann ein Vorteil sein, wenn Speicher knapp ist; damit werden dann Dienste nur gestartet, wenn sie auch wirklich gebraucht werden. Beispielsweise wird der telnetd erst dann gestartet, wenn eine Anfrage auf dem zu telnetd gehörenden Port ankommt. So ist es auch zu erklären, daß - bis auf die Zeitpunkte, zu denen ein User per Telnet eingeloggt ist - nie ein telnetd-Prozess in der Prozessliste zu finden ist. FTP: Virtuelle User Virtuelle User sind nur auf den pure-ftpd beschränkt, der Login und das Passwort gelten nur für FTP, nicht für SSH oder andere Dienste. Virtuelle User sind dann sehr nützlich, wenn bestimmte User nur FTP-Zugriff haben sollen und keine anderen Rechte haben sollen. In Verbindung mit dem Apache Webserver lassen sich damit z.B. einfach sehr grosse Mengen von virtuellen Hosts aufsetzen, denen jeweils ein virtueller FTP-User zugeordnet ist. Damit bleibt die Übersicht im System trotz der grossen Menge an FTP-Usern übersichtlich. Die Homedirectories (Default Verzeichnisse) der virtuellen User liegen standardmäßig unter /home/vftp/. Wichtig: die Verzeichnisse der einzelnen virtuellen User werden erst beim ersten Login als virtueller User eingerichtet. Informationen zu Verzeichnissen Das Homedirectory (Default Verzeichnis) des anonymous Zugangs beim pure-ftpd ist das Verzeichnis /home/ftp. Updates von älteren Versionen des inet-Packages Da in früheren Versionen des inet-Packages teilweise andere Programme verwendet wurden (proftp anstelle des pure-ftpd, inetd anstelle von xinetd), wird bei der Installation geprüft, ob sich diese Programme noch auf dem Rechner befinden. Werden sie gefunden, wird dies gemeldet, und der alte, nicht mehr gebrauchte Dienst wird komplett gelöscht (samt der Konfigurationsdateien, Skripten, usw). Konfiguration des TFTP-Daemon Der TFTP-Daemon (in.tftpd) ist defaultmäßig nicht so konfiguriert, dass er Dateien empfangen kann/darf. Es muß in der inet Konfiguration auf jeden Fall folgender Parameter gesetzt werden: TFTPD_ADD_ARGS='-c' Das reicht aber immer noch nicht, da der in.tftpd als nobody:nogroup arbeitet. Hier gibt es zwei Alternativen: a.) ein chmod og+w /tftpboot (stellt aber ein gewisses Sicherheitsrisiko dar) b.) TFTPD_ADD_ARGS='-c -u root' dann arbeitet der in.tftpd als root:root (auch nicht so schön) Neue inet Konfiguration aktivieren. Jetzt sollte der Befehl tftp put klappen. Zu den Parametern des in.tftpd siehe: ([9]http://www.die.net/doc/linux/man/man8/tftpd.8.html) Konfiguration der Services für den xinetd Es wurde die Bearbeitung sog. .expert Dateien implementiert. Falls eine Datei .expert (z.B. ftp.expert) im Verzeichnis /etc/xinetd.d existiert, so wird diese Datei in die originale Servicedatei eingefügt. Das folgende Beispiel zeigt, was passiert. Originale Servicedatei /etc/xinetd.d/ftp service ftp { server = /usr/sbin/pure-ftpd server_args = -l unix -A -E -k 95% -I 15 -c 20 -S 21 socket_type = stream protocol = tcp wait = no user = root disable = no } Expertdatei /etc/xinetd.d/ftp.expert per_source = 2 only_from = 192.168.1.11 Zusammengefügte Datei /etc/xinetd.d/ftp service ftp { #B Expert per_source = 2 only_from = 192.168.1.11 #E Expert server = /usr/sbin/pure-ftpd server_args = -l unix -A -E -k 95% -I 15 -c 20 -S 21 socket_type = stream protocol = tcp wait = no user = root disable = no } Die Datei /etc/xinetd.d/ftp.expert wurde in die Datei /etc/xinetd.d/ftp nach der öffnenden geschweiften Klammer aber vor dem Inhalt der Originaldatei, eingefügt. Zwei spezielle Kommentarzeilen wurde hinzugefügt #B Expert #E Expert Siehe: ([10]http://www.die.net/doc/linux/man/man5/xinetd.conf.5.html) für eine Beschreibung der xinetd Konfigurationsdatei. Das obige beispiel limitiert den Zugriff via ftp auf eine einzige IP-Adresse (only_from = 192.168.1.11) und limitiert zusätzlich die Anzahl der Verbindungen auf 2 (per_source = 2). Achtung: Bitte vorsichtig mit dieser Option umgehen, da es so sehr einfach ist eine fehlerhafte Konfigurationsdatei für den xinetd zu erzeugen. Bitte in Datei /var/log/messages nachschauen, ob der xinetd erfolgreich startet. Bitte auf keinen Fall die beiden speziellen Kommentarzeilen verändert oder löschen. Sie sind sehr wichtig, wenn .expert Dateien gelöscht bzw. verändert werden und dadurch natürlich auch die Inhalte der Servicedatei geändert werden müssen. Die Behandlung der .expert Dateien wird bei jedem Start des xinetd durchgeführt (z.B. bei /etc/init.d/xinetd start). Die Idee für .expert Dateien stammt von Tobias Becker. Einstellungen beim Übersetzen der Packages Mit folgenden Einstellungen wurden die einzelnen Programme übersetzt: pure-ftpd -with-ftpwho -with-puredb -with-virtualchroot -with-language=english -with-throttling -with-altlog -with-quotas -with-uploadscript -with-peruserlimits -with-ratios -with-pam -with-largefile -with-certfile=/usr/local/ssl/certs/pure-ftpd.pem -with-tls -with-sysquotas -with-mysql -with-virtualhosts openssh Keine, die die Funktionalität beeinflussen xinetd -with-libwrap _________________________________________________________________ Ansgar Puester 2007-06-23 References 1. http://www.pureftpd.org/ 2. http://www.openssh.org/ 3. http://www.xinetd.org/ 4. http://hcs.harvard.edu/~dholland/computers/netkit.html 5. http://www.kernel.org/pub/software/network/tftp/ 6. http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html 8. http://www.afp548.com/Articles/security/ssh34p1.html 9. http://www.die.net/doc/linux/man/man8/tftpd.8.html 10. http://www.die.net/doc/linux/man/man5/xinetd.conf.5.html