OPT_PFTPD 3.0.2

-------------------------------------------------------------------------------
Einfhrung
-------------------------------------------------------------------------------

Mit OPT_PFTPD ist es mglich, einen FTP-Server auf FlI4L auf Basis von PureFTP
(siehe auch http://www.pureftpd.org) laufen zu lassen.

fli4l ist eigentlich nicht fr Serverdienste gedacht. Um einen "richtigen"
ftp-Server einzurichten, eignet sich EISFAIR besser (http://www.eisfair.org).

Ich bernehme keine Verantwortung fr Fehler, die durch dieses Paket entstehen.
Wer einen sicheren FTP-Server haben will sollte sich selbst einlesen, und
kontrollieren, ob alles so luft wie es soll.

Diese Version basiert auf OPT_PFTPD 0.7 von Florian Zierer und wurde auf
FLI4L 3.0.0 getestet. Sie ist nicht lteren Versionen benutzbar!

Fr FLI4L 2.0.8 ist Version 0.7 geeignet. Die Version 0.8 war eine
Zwischenversion fr FLI4L 2.1.9 und sollte nicht mehr verwendet werden.

Da dieses Paket aktuellen Binaries, basierend auf PureFTP 1.0.20, verwendet,
ist OPT_LIBC5 nicht mehr erforderlich!


Hinweise zur Installation
-------------------------

VOR der Installation muss man die Verzeichnisse fr die Benutzerdaten
(/data/conf) und fr die Dateiablage (/data/ftp) anlegen.

In der Konsole:

mkdir /data/conf
mkdir /data/ftp

NACH der Installation und dem ersten Neustart von FLI4L muss man das
Verzeichnis fr die Dateiablage dem richtigen User/Gruppe zuweisen.

Dazu kann man folgenden Befehle an der Konsole bzw. ber SSH eingeben:

chown -R ftpuser:ftpgroup /data/ftp

Dies ist nur einmalig ntig.

Man sollte sich ggf. noch in die Dokumentation von chmod einlesen,
um die Rechte fr die Dateien entsprechend zu vergeben.


Arno Welzel
(privat@arnowelzel.de)


-------------------------------------------------------------------------------
nderungen gegenber OPT_PFTPD 0.7
-------------------------------------------------------------------------------

1) HTTP-Oberflche

Die HTTP-Oberflche wurde an die neue Oberflchengestaltung von FLI4L 3.0.0
angepasst und untersttzt derzeit die Sprache Deutsch (de) und Englisch (en).

Des weiteren wurden intern zahlreiche nderungen vorgenommen, um die
CGIs abzuspecken und an die neue Umgebung von FLI4L 3.0.0 anzupassen.

2) Anonymous FTP

Die untersttzung von anonymen Usern ber die Konfiguration wurde ausgebaut.
Sprich: Ohne Handarbeit werden keine anonymen Logins mehr untersttzt!

Dies dient sowohl zur Verbesserung der Sicherheit (ein "offener" FTP-Server
kann erhebliche Probleme schaffen, da sowas gerne von Dritten ausgenutzt
wird, um illegale Inhalte zu verbreiten!) und andererseits hat dies
Option bei meinen Tests auch nicht wirklich zuverlssig funktioniert.

Wer sich daran strt, dass er sich lokal bei FTP immer anmelden muss,
kann auch Clients verwenden, die das Passwort speichern knnen, wie z.B.
FileZilla (http://filezilla.sourceforge.net/). FileZilla beherrscht brigens
auch SCP (Dateibertragung ber SSH) - wer also OPT_PFTPD nur deswegen
einrichtet, weil er auf die Dateien seines FLI4L zugreifen will, soll
sich erst mal FileZilla ansehen, bevor er einen FTP-Server konfiguriert.

3) Warnung beim Zulassen von Systemusern

Die Option, auch Systemuser zuzulassen, bedeutet bei FLI4L faktisch, dass
jemand mit root-Login auf den gesamten Router zugreifen kann. Das sollte
nur als Notlsung verwendet werden, wenn man sonst keine andere Mglichkeit
hat - sftp oder scp (aus dem SSH-Paket von FLI4L) sind in der Regel
sinnvoller. Deshalb erscheint beim Aktivieren dieser Option eine entsprechende
Warnung beim Bauen der neuen Startdateien fr FLI4L.

-------------------------------------------------------------------------------
Konfiguration
-------------------------------------------------------------------------------

OPT_PFTPD

  Mit OPT_PFTPD='yes' wird das Paket aktiviert

PFTPD_PORT

  Der Port, auf dem der FTP-Server lauschen soll
  
  Standardeinstellung: PFTPD_PORT='21'

PFTPD_NUM_OF_CLIENTS  

  Anzahl der Clients, die sich gleichzeitig verbinden knnen
  
  Standardeinstellung: PFTPD_NUM_OF_CLIENTS='5'

PFTPD_MAX_CON_PER_IP

  Anzahl der Verbindungen, die von einer IP-Adresse aus maximal
  gleichzeitig hergestellt werden drfen.
  
  Standardeinstellung: PFTPD_MAX_CON_PER_IP='1'

PFTPD_TIMEOUT

  IDLE Zeit nach der man vom Server gekickt wird, d.h. die Zeit,
  die eine Verbindung ohne aktive Datenbertragung erhalten bleibt.
  
  Standardeinstellung: PFTPD_TIMEOUT='5'
  
PFTPD_AVOID_DNS='yes'

  Wenn PFTPD_AVOID_DNS='yes', wird nicht versucht, die IP-Adressen der
  Clients ber DNS in Namen aufzulsen.
  
  Standardeinstellung: PFTPD_AVOID_DNS='yes'

PFTPD_LIMIT

  Limit der maximal zulssigen Festplattenbelegung in %, bis zu dem
  ein Upload zugelassen wird (maximal 100, niedrigere Werte machen
  aber mehr Sinn).

  Standardeinstellung: PFTPD_LIMIT='95'
  
PFTPD_BANDWIDTH=':15'

  Bandbreite in kb/s fr Download und Upload fr jeden User im
  Format 'd:u', wobei d = Download und u = Upload. Soll kein Limit
  vorgegeben werden, lsst man die jeweilige Zahl leer. Soll
  sowohl Download wie auch Upload unbegrenzt mglich sein,
  lsst man die gesamte Variable leer (PFTPD_BANDWIDTH='').
  
  Die Angabe '40:15' wrde z.B. festlegen, dass man mit maximal
  40 kb/s zum Server Daten schicken kann und und mit maximal
  15 kb/s Daten vom Server herunterladen.

  Standardeinstellung: PFTPD_BANDWIDTH=':15'

PFTPD_LOG

  Ist PFTPD_LOG='yes', wird ein Logfile geschrieben.
  
  Standardeinstellung: PFTPD_LOG='yes'
  
PFTPD_LOG_FORMAT

  Hiermit wird das Format des Logfiles festgelegt, wahlweise
  clf, stats oder w3c. Genaueres siehe http://www.pureftpd.org/README
    
  Standardeinstellung: PFTPD_LOG_FORMAT='stats'

PFTPD_LOG_PATH

  Gibt den vollstndigen Pfad und Namen der Logdatei an.
  
  WICHTIG: Man sollte daran denken, dass die Logdatei u.U. viel
  Platz braucht, wenn sie nicht regelmssig gelscht wird!
  Es empfiehlt sich der Einsatz eines logrotate-Verfahrens.

  Standardeinstellung: PFTPD_LOG_PATH='/var/log/pureftpd.log'

PFTPD_PASSWD_FILE

  Gibt den vollstndigen Pfad und Namen der Passwortdatei fr die
  virtuellen FTP-User an. Diese sollte auf einer Festplattenpartition
  liegen, damit nderungen zur Laufzeit ber die HTTP-Oberflche
  nicht verloren gehen.
  
  Standardeinstellung: PFTPD_PASSWD_FILE='/data/conf/pureftpd.passwd'

PFTPD_DEFAULT_FTP_PATH='/data/ftp'

  Hier wird das Standardverzeichnis fr FTP festgelegt. Dieses Verzeichnis
  muss existieren (ggf. manuell anlegen) und Zugriffsrechte fr ftpuser
  und ftpgroup enthalten. Nach dem ersten Neustart von FLI4L mit aktivem
  OPT_FTPD kann man das Verzeichnis wie folgt anlegen:
  
  mkdir /data/ftp
  chown -R ftpuser:ftpgroup /data/ftp
  
  Danach ist noch fr jeden User ein eigenes Unterverzeichnis sinnvoll,
  dass in der gleichen Weise angelegt wird.
  
  Standardeinstellung: PFTPD_DEFAULT_FTP_PATH='/data/ftp'
  
PFTPD_VUSER_N

  Anzahl der virtuellen FTP-User. Fr jeden User folgt dann ein Abschnitt
  mit Angabe von Usernamen, Passwort und dem lokalen Verzeichnis, auf das
  der User Zugriff haben soll.
  
  Es mssen keine User in der Konfiguration angelegt werden. Man kann
  diese auch erst spter in HTTP-Oberflche einrichten (dazu auch die
  Angabe PFTPD_PASSWD_FILE prfen!). Wenn man aber User aber bereits
  in der Konfiguration festlegt, mssen die Verzeichnisse der User
  existieren und die richtigen Rechte haben, damit sie sich verbinden
  knnen.
  
  Standardeinstellung: PFTPD_VUSER_N='0'
  
PFTPD_VUSER_x

  Username (Login) - bitte nur ASCII-Zeichen - also keine Leerzeichen,
  Umlaute etc.
  
PFTPD_VPASS_x

  Passwort

PFTPD_VDIR_1

  Verzeichnis fr den User - dieses Verzeichnis muss existieren und
  Zugriffsrechte fr ftpuser und ftpgroup haben. Am sinnvollsten legt
  man es unter /data/ftp/USERNAME an.
  
PFTPD_ALLOW_SYSTEM_USER

  Wenn PFTPD_ALLOW_SYSTEM_USER='yes', wird auch Systemusern der Zugriff
  via FTP erlaubt. Damit sollte mehr sehr vorsichtig sein, da man so auch
  root Zugriff gibt und damit potentiell auf den gesamten Router!
  
  Standardeinstellung: PFTPD_ALLOW_SYSTEM_USER='no'

OPT_PFTPD_CONTROL

  Wenn OPT_PFTPD_CONTROL='yes', wird die HTTP-Oberflche fr OPT_PFTPD
  eingerichet, ber die man im laufenden Betrieb FTP-User anlegen und
  lschen kann und Zugriff auf den aktuellen Status des FTP-Servers hat
  Vorraussetzung ist natrlich, dass der HTTP-Server von FLI4L ebenfalls
  aktiv ist (OPT_HTTPD='yes' in httpd.txt).
  
  Standardeinstellung: OPT_PFTPD_CONTROL='no'

PFTPD_EXPERT='no'

  Wenn PFTPD_EXPERT='yes' werden _NUR_ die "Expert-Switches" verwendet
  und nicht die Angaben aus der Konfigurationsdatei.
  
  Normalerweise nicht ntig. Details zu den Switches siehe auch
  http://www.pureftpd.org
  
  Standardeinstellung: PFTPD_EXPERT='no'
  
PFTPD_EXPERT_SWITCHES=''

  Gibt die "Expert-Switches" an, falls PFTPD_EXPERT='yes'
  
  Standardeinstellung: PFTPD_EXPERT_SWITCHES=''


-------------------------------------------------------------------------------
FTP-Server von aussen erreichbar machen
-------------------------------------------------------------------------------

WARNUNG:

Das Anbieten eines Dienstes nach aussen kann eine potentielle Sicherheitslcke
schaffen! Bevor man diesen Schritt macht, sollte man unbedingt genau prfen,
dass kein Missbrauch mglich ist!

Ich bernehme keine Haftung fr eventuelle Schden!

Da der FTP-Server auf FLI4L selber luft, muss nur eine zustzliche
INPUT-Policy ergnzt werden, die den entsprechenden Port ffnet:

INPUT_LIST_x='tmpl:ftp ACCEPT'

Statt "x" gibt man die entsprechende Nummer an und passt INPUT_LIST_N ebenfalls
entsprechend an.


-------------------------------------------------------------------------------
HTTP-Oberflche
-------------------------------------------------------------------------------

Das HTTP-Oberflche erreicht man ber den Menpunkt "PureFTP" von FLI4L.

Die Oberflche ist in vier Bereiche aufgeteilt, die ber "Reiter" am oberen
Rand erreicht werden:


Steuerung - Steuerung des FTP-Servers
-------------------------------------

Hier sieht man, ob der Server luft und kann den Server stoppen bzw.
starten und die Bandbreiteneinstellung ndern.

Mchte man die maximal zulssige Bandbreite fr bertragungen begrenzen,
gibt man dazu im Feld "Upload/Download" die gewnschte Bandbreite in
Kilobyte pro Sekunde an. Das Format entspricht der Variablen
PFTPD_BANDWIDTH aus der Konfiguration.

WICHTIG: Diese Angabe wird nicht dauerhaft gespeichert und geht nach
einem Neustart von FLI4L verloren! Auch erfordert eine nderung der
Bandbreite einen Neustart des FTP-Servers!


Benutzer - Anlegen, ndern und lschen von FTP-Benutzern
--------------------------------------------------------

Auf dieser Seite kann man Benutzer hinzufgen oder ndern und vorhandene
Benutzer lschen.

Benutzer anlegen:

Um einen Benutzer hinzuzufgen, gibt man im Bereich
"Benutzer hinzufgen/ndern" den gewnschten Benutzernamen, das Passwort
inklusive Wiederholung und das Datenverzeichnis fr den Benutzer ein.

Wenn man mchte, kann das Datenverzeichnis auch automatisch erzeugt werden
(Option "Verzeichnis erzeugen"). Es ist aber auch mglich, bei mehreren
Benutzern das selbe Verzeichnis anzugeben.

Mit einem Klick auf "OK" wird der Benutzer angelegt und ggf. auch das
Verzeichnis erzeugt.

Passwort ndern:

Dazu gibt man im Bereich "Benutzer hinzufgen/ndern" den Benutzernamen an,
dessen Passwort gendert werden soll und das NEUE Passwort inklusive
Wiederholung und whlt die Option "Nur Passwort ndern".

Nach einem Klick auf "OK" wird dann das Passwort des angegebenen Users
gendert.

Benutzer lschen:

Hierzu gengt ein Klick auf "lschen" neben dem Benutzernamen im
unteren Abschnitt "Benutzer lschen".

WICHTIG: Benutzer werden ohne weitere Nachfrage gelscht! Das lokale
Verzeichnis wird aber nicht angerhrt, so dass die Dateien, die der
Benutzer hochgeladen hat, auch weiterhin vorhanden sind. Diese mssen ggf.
manuell ber SSH oder einen anderen FTP-User gelscht werden.

Man kann einen versehentlich gelschten Benutzer auch jederzeit wieder
hinzufgen und das alte Verzeichnis weiter verwenden.


Verbindungen - bersicht der aktuell aktiven Verbindungen
---------------------------------------------------------

Hier werden die alle aktiven Verbindungen ausgegeben. Mit einem Klick
auf "Aktualisieren" wird die Liste neu aufgebaut.

Die Spalten im Detail:

Aktion            Hier kann man mit einem Klick auf "beenden" die
                  zugehrige Verbindung trennen
             
PID               Prozess-ID des zur Verbindung gehrenden FTP-Prozesses

Benutzer          Name des Users, der die Verbindung aufgebaut hat

Time              Dauer der Verbindung in Sekunden

Status            "IDLE" oder "UL" fr Upload zum Server und "DL" fr Download
                  vom Server. Bei "UL"/"DL" wird zustzlich noch angegeben,
                  wieviel Prozent der gerade bertragenen Datei bearbeitet
                  wurden.

Geschwindigkeit   bertragunsgeschwindigkeit in Kilobyte pro Sekunde

Dateiname         Name der gerade bertragenen Datei

Entfernter Host   Name oder IP-Adresse des Computers, von dem aus die
                  Verbindung aufgebaut wurde

Aktuell Kb        Aktuell bertragene Datenmenge in Kilobyte

Total Kb          Gesamtdatenmenge in Kilobyte

Lokaler Host      Normalerweise die lokale IP-Adresse des FLI4L


Logdatei - Tabellarische Ausgabe des Logfiles
--------------------------------------------

In der Logdatei protokolliert PureFTP alle durchgefhrten bertragungen. Welche
Angaben im Detail vorhanden sind, hngt auch vom ausgewhlten Format ab
(PFTPD_LOG_FORMAT), siehe auch http://www.pureftpd.org/README.


-------------------------------------------------------------------------------
History
-------------------------------------------------------------------------------

3.0.2 - Binaries geSTRIPT, nachdem sie doch etwas arg gross waren

3.0.1 - Neue Binaries auf Basis von PureFTP 1.0.20 fr FLI4L 3.0.0 erstellt
        --without-inetd
        --with-puredb
        --with-throttling
        --with-ratios
        --with-ftpwho
        --with-altlog

3.0.0 - Paket an FLI4L 3.0.0 angepasst und berarbeitet
      - Bufix im Startscript fr den Aufruf durch die HTTP-Oberflche
      
0.8   - Paket an FLI4L 2.1.9 angepasst
      - anonymous ftp wieder ausgebaut (Sicherheit!)
      - Doku berarbeitet und erweitert
      - HTTP-Oberflche komplett berarbeitet (u.A. auch Vermeidung der
        zahlreichen Verwendung von temporren Dateien bei der Verarbeitung von
        URL-Parametern und Verwendung von proccgi)
      
0.7   - Man kann jetzt per httpd die Upload/Downloadbegrenzung ndern.
        laufende Sessions sind davon nicht betroffen, man kann diese aber killen.
      - Man kann den PFTPD jetzt per httpd starten und stoppen
        laufende Up/Downloads werden nicht abgebrochen.
      - Logs knnen jetzt im HTTPD angezeigt werden
      - Man kann sich jetzt auch mit den Systemusern aus /etc/passwd einloggen.

0.6   - Funktionen fr anonymous ftp hinzugefgt

0.5   - pure-ftpd neu compiliert (pftpd 1.0.12)
        --without-inetd
        --with-puredb
        --with-throttling
        --with-ratios
        --with-ftpwho
        --with-altlog
        CFLAGS: -O3 -fomit-frame-pointer -ffast-math -fexpensive-optimizations

      - Logfiles knnen nun geschrieben werden.

0.4   - Um sec-lib des httpd erweitert.
