c3Surf: Dies ist das Free Surf Interface von Frank Saurbier (c3surf@arcor.de).
-------------------------------------------------------------------------------
Kurzfassung:
  Du definierst welche Hosts oder komplette Netzwerke von c3surf verwaltet werden
  Diese sind nach einem Routerstart zunächst gesperrt
  http Anfragen dieser Hosts oder Netzclients werden auf die c3surf Anmeldeseite geleitet
  Nach der Registrierung eines Benutzers auf der Anmeldeseite kann Dein Netz auf Zeit von ihm genutzt werden
  Alles wird gelogged - Du kannst über das Web Admin-Interface von c3Surf alles steuern
-------------------------------------------------------------------------------


Installation
============

Wichtig: Der fli4l muss als DNS-Server bei den Clients eingetragen sein, 
         sonst klappt die automatische Umleitung auf die Anmeldeseite nicht!

Wie gehabt:
 - opt_c3surf_<versionsinfo>.tar.gz in das fli4l Verzeichnis (Buildrechner) entpacken.
 - c3surf.txt den eigenen Bedürfnissen anpassen (alles dort beschreiben)
 - ggf. in Deine httpd.txt die Rechte 'c3surf:view,admin' hinzufügen.
 - Build erstellen

Wichtig: Der fli4l muss als DNS-Server bei den Clients eingetragen sein und
muss befähigt sein Namen aufzulösen. Dazu
  – benötigt er einen "Forward" auf den DNS-Server des Netzes oder
  – er ist selbst der DNS-Server und kann ggf. automatisch Verbindugen
    aufbauen.
Sonst gibt es Probleme automatisch auf die Anmeldeseite umzuleiten. Die
kann aber immer noch manuell durch die Eingabe ihrer URL aufgerufen
werden.


Migration zur Version 2.3.0 (von 2.2.2)
 - Will man keine Gutscheine nutzen, sind keine Änderungen an der Konfiguration nötig.
 - Pflege die neue Variablen für das OPT_C3SURF_VOUCHER, sofern man die Gutscheinfunktion nutzen möchte. 
   Der neue Bereich ist in der config.txt so 
   "# + new 2.3.0 + begin ------------------ delete this line" gekennzeichnet.

Migration zur Version 2.2.2 (von 2.2.1)
 - Pflege die neue Variablen. Sie sind in der config.txt so 
   "# + new 2.2.2 + begin ------------------ delete this line" gekennzeichnet.
 - C3SURF_CONTROL_SQUID: optional zur Kontrolle von squid, 
                         da squid sich in den Listen vordrängelt 
                         ist diese option nötig.
 - Die Variablen zum Überschreiben der Quota-Defaults bei LOGINUSR_ACCOUNT sind jetzt optional

Migration zur Version 2.2.1 (von 2.2.0)
 - Pflege die neue Variablen. Sie sind in der config.txt so 
   "# + new 2.2.1 + begin ------------------ delete this line" gekennzeichnet.
 - C3SURF_WORKON_TMP: Empfehlung für Festplattenschlaf 'yes' sonst 'no' auch bei FLASH Medien (s.u.)
 - C3SURF_SAVE_QUOTA: Empfehlung 'yes' (s.u.) 

Migration zur Version 2.2.0 (von 2.1.0)
 - Pflege die neue Variable "C3SURF_CHECK_ARP" in der config nach (Empfehlung: 'yes', s.u.). 
   Sie ist in der config.txt so 
   "# + new 2.2.0 + begin ------------------ delete this line" gekennzeichnet.

Migration zur Version 2.1.0 (von früheren Versionen)
 - Pflege die neuen Variablen nach. Sie sind in der config.txt so 
   "# + new 2.1.0 + begin ------------------ delete this line" gekennzeichnet.
 - Die MAC-Blackliste (so Du eine gepflegt hast) musst Du manuell ins Verzeichnis 
   C3SURF_PERSISTENT_PATH kopieren.
 - Das Format der c3surf_login.log wurde um eine Spalte erweitert.
   Am besten die alte log sichern und in C3SURF_LOG_PATH löschen.


Config Datei und die Parameter
==============================

OPT_C3SURF='no'
  Name des Opt, ist es aktiv ('yes') oder nicht ('no').


C3SURF_LOG_PATH='/var/log/c3surf'
  Definiert das Verzeichnis für log-Dateien von FreeSurf. 
  Du musst mit moderatem Wachstum rechnen. 
  Im Einzelen ist die bei den noch folgenden Einträgen für die Log-Dateien genannt.
  Bein Herunterfahren solltest Du die Logdateien auf ein permanentes Medium sichern,
  oder den Pfad gleich dorthin einstellen, wenn Du die Dateien nicht verlieren willst. 
  Der Pfad muss dann auf dem permanenten Medium existieren.

  Wichtig: die 'c3surf_mac.blacklist' liegt ab sofort (v2.1.0) nicht mehr im C3SURF_LOG_PATH, 
  sondern im persistenten Verzeichnis C3SURF_PERSISTENT_PATH. 
  Falls Du eine Blacklist gepflegt hast, 
  musst Du diese ins Verzeichnis C3SURF_PERSISTENT_PATH kopieren.

  Weiter unten legst Du fest, was gelogged werden soll.


C3SURF_DOLOG_LOGIN='yes'            
  zeichne Login / Logout auf: c3surf_login.log (default: 'yes')

C3SURF_DOLOG_INVALID='yes'          
  zeichne ungültige Logins auf: c3surf_invalid.log (default: 'yes'). 
  Wenn die OPT_LOGINUSR='yes' gewählt ist, 
  kann eine fehlerhafte Anmeldung zu Zeit nicht aufgezeichnet werden.

C3SURF_DOLOG_PAGE='no'              
  Zeichne den Aufruf der html-Seite auf: c3surf_page.log (default: 'no').
  Jeder Zugriff auf die Anmeldeseite wird gelogged.
  Das page-log wächst vermutlich am 2. schnellsten von allen Logs 
  - nur für Neugierige, die regelmäßig nachsehen.

C3SURF_DOLOG_HTTPD='no'
  Zeichne alle mini_httpd Anfragen auf: c3surf_httpd.log (default: 'no')
  Zusätzlich die Mini-httpd Logfunktion starten, aber hier ist Vorsicht geboten, 
  richtig schnelles Wachstum, bitte nur für Test oder Debug verwenden. 
  Wenn eingeschaltet, empfielt es sich wirklich täglich die log-Datei zu prüfen, 
  oder anders: Für ganz Neugierige - heißt regelmäßig prüfen und löschen.

  opt_cpmvrmlog: kann zum regelmäßigen wegsichern benutzt werden. 
  Damit danach wieder korrekt gelogged wird, muss der mini_httpd neu gestartet werden. 
  Dazu gibt es das script "/usr/local/bin/c3surf_kill_httpd.sh" 
  (Config Beispiel siehe weiter unten)

C3SURF_PERSISTENT_PATH='/tmp/c3surf'
  Unbedingt anpassen, Empfehlung: '/data/c3surf'
  Definiert das Verzeichnes, welches Daten aufnimmt, 
  die nach dem Ausschalten oder nach einem Reboot erhalten bleiben sollen. 
  Idealerweise liegt dies auf einer Festplatte oder CF-Karte ('/data/c3surf'). 
  Wer seine Platte lieber den ganzen Tag ausgeschaltet haben will, 
  der kann auch ein Verzeichnis in der RAM-Disk wählen und sollte dann entsprechend
  seiner Anforderungen das Verzeichnis sporadisch auf die Platte kopieren 
  (opt_sarfile oder opt_cpmvrmlog), sonst sind die Daten nach Reboot weg. 
  Bei einem Absturz oder Stromverlust würden die Daten bis zur letzten Sicherung fehlen.

  Was wird hier gespeichert:
  - MAC-Blackliste: 'c3surf_mac.blacklist', wird bei Bedarf angelegt (siehe Admin Interface). 
    Also wenn Du dort Einträge veranlasst. Die Sperrung für die mac-Adresse wurde bewußt über 
    eine eigene Datei gelöst und nicht in den Paketfilter implementiert, 
    da es bei einer größeren Zahl von Einträgen sonst Probleme geben kann.
    Aber nicht vergessen, geblockte MAC-Adressen halten Standardbenutzer vom Netz fern, 
    was im normalen Anwendungsfall ausreicht, nicht jedoch die Profis. 
    Ausserdem verhindert diese MAC-Blacklist nur die Anmeldung über c3surf / loginusr, 
    weil es eben nicht direkt in der firewall abgelegt wird.

  - Benutzerdaten: <userloginname>.data (z. B. 'frank.data'), 
    diese Dateien enthalten Daten über die Benutzer, wie Vorname, Name und e-mail-Adresse,
    welche auch im Webinterface angezeigt werden. Weiter werden diese Dateien für Statistiken 
    und die Kontrolle der Quotas benötigt. Die Persistenz der Benutzerdaten hat zur Folge, 
    dass die Daten aus der Konfigurationsdatei nur noch beim ersten Mal erzeugt werden. 
    Dass heißt: Ist für den Benutzer "frank" eine 'frank.data' beim Systemstart vorhanden, 
    so werden die Einstellungen in der Config-Datei ignoriert.
    Mittels LOGINUSR_ACCOUNT_n_OVERWRITE='yes' 
    kann das Überschreiben der entsprechenden Benutzerdaten erzwungen werden. 
    Mittels LOGINUSR_DELETE_PERSISTENT_DATA='yes', 
    werden alle *.data Dateien beim reboot gelöscht (gleiches Verhalten wie ein temporäres Verzeichnis)

C3SURF_WORKON_TMP='no'
  Wer eine Festplatte im router verbaut hat und den C3SURF_PERSISTENT_PATH auf diese 
  Festplatte eingestellt hat, der kann hier 'yes' eintragen. 
  Dann werden die persistenten Daten bein router.Start von der Festplatte auf das 
  Verzeichnis C3SURF_TMP_PATH kopoiert und nur noch von dort gelesen. 
  Die Festplatte wird dann von c3surf nicht mehr geweckt. 
  Nur wenn Daten durch den Admin in die persistenten Dateien zrückgeschrieben werden.
  Persistente Daten sind:
  - Benutzer-Accounts
  - MAC-Blackliste
  - System Lock Datei (Verhindern jedern Anmeldung)
    Für FLASH-Speicher kann hier 'no' stehen, da ja im normalen Betrieb von c3surf nur 
    gelesen wird. Schreibzugriffe verursacht nur der Admin.

C3SURF_QUOTA='no'
  Soll der Zugang limitiert werden. Wird hier 'yes' eingetragen, 
  so wird der Zugang für eine IP-Adresse für C3SURF_BLOCKTIME Minuten nach Zeitablauf 
  oder Überschreitung des Anmeldezählers blockiert. 
  Als Standardwert wurde 'yes' gewählt. Ein 'no' entspricht dem Verhalten der c3surf 
  Versionen vor der Version 2.1.0.
  WICHTIG: Auch die individuellen -TIME, -BLOCKTIME und -COUNTER bei den Accounts zum 
  LOGIN_USR werden durch diese Variable aktiviert ('yes') oder deaktiviert ('no').

C3SURF_COUNTER='0'
  Gibt die Anzahl der möglichen Unterbrechungen, innerhalb der Freiminuten an.
  Seit der Version 2.1.0 werden die Freiminuten nicht mehr nur nach dem
  Parkuhrprinzip verwaltet: Einmal angemeldet läuft die Zeit ohne
  Unterbrechungsmöglichkeit. Sondern es kann eine Anzahl von Unterbrechungen
  (Logout/Login) definiert werden. Wird hier z. B. '1' eingetragen, so kann
  man sich innerhalb der Freiminuten einmal abmelden und dann wieder
  anmelden, was 2 Anmeldungen in der Zeit entspricht. Bei der folgenden
  Anmeldung erhält man die von C3SURF_TIME noch verbliebene Differenz von der
  Anmeldung davor. Ist zudem C3SURF_BLOCKTIME='0' gewählt, so wird der
  C3SURF_COUNTER erst nach 0:00 Uhr des Folgetages zurückgesetzt.
  
  Der Wert 0 entspricht dem Parkuhrprinzip und bildet das Verhalten von
  c3Surf vor der Version 2.1.0 ab.
  Mit '-1' wird diese Funktion abgeschaltet = beliebig viele Unterbrechungen
  der Freiminuten sind möglich.
  Mit '-2' gibt es beliebig viele Unterbrechungen (wie ’-1’), aber die
  Blockzeit wird bereits mit der ersten Anmeldung heruntergezählt. Im
  Gegensatz zur ’-1’, wo die Blockzeit erst nach dem Verbrauch der gesamten
  Zeit eingestellt wird.

  Damit kannst Du z. B. 10 Stunden Onlinezeit (C3SURF_TIME=’600’) mit einer
  Blockzeit von einer Woche (C3SURF_BLOCK_TIME=’10080’ : 60sec x 24h x 7Tage)
  kombinieren. Dann können die 10 Stunden innerhalb einer Woche verbraucht
  werden. Wer sie am ersten Tag am Stück verbraucht, der wartet dann eben den
  Rest der Woche. Nach Ablauf der Blockzeit werden wieder 10 Stunden
  bereitgestellt.
  Kurzfassung: Der Nutzer hat ein Wochenkontingent von 10 Stunden, welches er
  sich selbst sinnvoll auf die Woche verteilen kann. Verbraucht er das
  Kontingent langsamer, dann wird er nicht mit einem "Quota-Block" belegt.
  Es entsteht dann keine Wartezeit. Gilt auch für LOGINUSR_ACCOUNT_x_COUNTER.
  Empfehlung: C3SURF_SAVE_QUOTA=’yes’, dann bleiben die Werte auch nach
  einem normalen Neustart erhalten. Bei Stromausfall gehen die Werte verloren.
  Ist C3SURF_QUOTA=’yes’ (Seite 8), so wird nach der Überschreitung des Zählers
  die Sperre entsprechend C3SURF_BLOCKTIME (Seite 10) aktiviert.
 
  Ist C3SURF_QUOTA='yes', so wird nach der Überschreitung des Zählers die
  Sperre entsprechend C3SURF_BLOCKTIME aktiviert.

C3SURF_TIME='60'
  Anzahl der Minuten, die eine Freischaltung gilt 
  
  Wobei der Wert ’0’ ein unlimitiertes Login bedeutet
  (gilt auch für LOGINUSR_ACCOUNT_x_TIME).

Sonderfall:
   C3SURF_TIME=’0’
    Bedeutet eine unlimitierte Onlinezeit. Der Nutzer sollte sich selbst abmelden. Das
    System (C3SURF) meldet ihn nur ab, wenn der Rechner abgeschaltet wird und
    C3SURF_CHECK_ARP=’yes’ (Seite 10) (Standardeinstellung) gewählt wurde.

C3SURF_BLOCKTIME='240'
  Anzahl der Minuten, die eine IP geblockt wird, 
  wenn die Freiminuten abgelaufen sind oder wenn der Admin dies über das Webinterface veranlasst.
  So kann ein Rechner für diese Zeit aus dem Netz ferngehalten werden und die Nutzung eingeschränkt werden.
  Damit bei Zeitablauf die Sperrung erfolgt, muss C3SURF_QUOTA='yes' eingestellt sein.

Sonderfälle:
   '0': es erfolgt eine Sperrung der Adresse, bzw. des Nutzers bis 00:00 Uhr des Folgetages.
  '-1': es erfolgt keine Sperrung.

  Die Aufhebung der Sperre ist mit einem mittleren Fehler von einer Minute behaftet.

C3SURF_SAVE_QUOTA='yes' 
  Sichere die Quota-Werte beim Herunterfahren und lade sie beim Start des Routers.
  Damit werden bei einem normalen Reboot des Routers die temporären Dateien der 
  Quota-Verwaltung nach C3SURF_PERSISTENT_PATH geschrieben und bein Neustart von dort 
  wieder ind das temporäre Verzeichnis eingelesen.
  So bleibnen die momentanen Verbrauchsdaten der Benutzer erhalten.
  Ein plötzlicher Stromausfall ist damit nicht abgedeckt.
  WICHTIG: LOGINUSR_DELETE_PERSISTENT_DATA='no', sollte eingestellt sein, 
  weil diese Option sonst beim Neustart alle Benutzer-Accounts und die zugehörigen Quota-Daten löscht.

C3SURF_CHECK_ARP='yes'                  
  Prüfe im countdown modul, ob die IP eines Rechners aus der ARP Tabelle verschwunden ist. 
  So kann ein abgeschalteter Rechner erkannt werden. Jedoch manchmal mit erheblichem Zeitversatz.

C3SURF_CONTROL_HOST_OR_NET_N='n'    # Wert: ganze Zahl
  Wieviele und welche IP-Bereiche oder Hosts sollen von 3Surf kontrolliert werden. 
  Dies betrifft die Weiterleitung in ein anderes Netz (FORWARD Chain).

C3SURF_CONTROL_HOST_OR_NET_n='Netzwerk OR Host OR IP-Adresse'
  Hier kann zur Vereinfachnung ein komplettes Netz angegeben werden, 
  z. B. das WLAN, dann müssen alle WLAN-Nutzer die Anmeldeseite benutzen. 
  Oder eine Referenz auf einen Host (@Host) oder eine IP-Adresse. 
  Wer oder was hier eingetragen ist, wird auf die Anmeldeseite umgeleitet 
  und es gelten die weiter unten zu definierenden Sperrregeln.

  Beispiele:
    C3SURF_CONTROL_HOST_OR_NET_1='IP_NET_3'      # Das Netz angeben IP/MASK
    C3SURF_CONTROL_HOST_OR_NET_2='@T8200'        # oder den Host @HOST
    C3SURF_CONTROL_HOST_OR_NET_3='192.168.13.11' # oder eine IP-Adresse

C3SURF_CONTROL_PORT_N='n' # Wieviele TCP-Ports des Routers sollen gesteuert werden? Wert: ganze Zahl.
  Wieviele und welche explizit benannten Ports sollen von 3Surf kontrolliert werden. 
  Betroffen sind die IP-Bereiche und die Hosts von oben "C3SURF_CONTROL_HOST_OR_NET". 
  C3Surf steuert diese Ports und gibt diese nach einer erfolgreichen Anmeldung frei, 
  so dass die über diese Ports existierenden Services des Routers genutzt werden können 
  (betrifft die INPUT chain)

C3SURF_CONTROL_PORT_n='port_nr'
  Angabe der Portnummer, der Zugriff auf die dahinter stehenden Dienste des Routers (fli4l) 
  sind bis zur Anmeldung gesperrt wird.
  Nach erfolgter Anmeldung steht der Dienst dann für die Zeit der Freischaltung zur Verfügung.
  
  Beispiele:
    C3SURF_CONTROL_PORT_1='515'  # z.B. lpdsrv (Drucker benutzbar, nach Anmeldung)
    C3SURF_CONTROL_PORT_2='21'   # z. B. ftp - (wohl gemerkt ftp auf dem router! gibts ja nicht ;-))
    Weitere mögliche Portadressen
      21=ftp, 22=ssh, 5000=imonc, 5001=telmod, 
      8118=privoxy, 9050=tor, 3128=squid, 20000=mtgcapri
      80=http(Admin) 515=lpdsrv
  Aber entscheidend ist die eigene Konfiguration. Es gelten für alle Ports, 
  die nicht angegeben sind natürlich immer die Regeln aus der 'base.txt'. 
  Nach einer Anmeldung gelten im übrigen auch immer noch die Regeln aus der 'base.txt'. 
  3Surf ist diesen Regeln bis zur Anmeldung durch den Benutzer nur vorgeschaltet.
  Es werden also nach der Anmeldung immer noch alle Regeln beachtet.
  So kann man z. B. in der 'base.txt' den Zugriff von WLAN auf das kabelgebundene Netz verbieten.
  Dies Verbot gilt dann natürlich auch für die über c3Surf im WLAN angemeldeten Benutzer.

C3SURF_BLOCK_PORT_N='n'  # Wieviele TCP-Ports des Routers sollen geblockt werden? Wert: ganze Zahl.
  Permanentes Blocken von Diensten für oben benannte Netze und Hosts "C3SURF_CONTROL_HOST_OR_NET".
  Wieviele und welche explizit benannten Ports sollen von 3Surf permanent geblockt werden.
  Es gibt dann keinen Zugriff auf die dahinter stehenden Dienste des Routers (fli4l) für die Hosts
  und/oder Rechner der gesperrten Netze. Auch nach dem Anmelden nicht. Betrifft die INPUT-Chain.
  Eigentlich ist diese Funktion nicht notwendig, denn wer bestimmte Dienst dauerhaft sperren will,
  sollte dies besser in der 'base.txt' mit den dortigen Parametern zur INPUT Chain tun.
  Warum: weil diese Regeln hier nicht mehr gelten, sobald man den Parameter OPT_C3SURF='no' setzt.
         Wer also c3surf entsorgt, muss zuvor die hier definierten Regeln in die 'base.txt' übertragen, 
         wenn ihm die Dienstesperre für die oben benannten Hosts oder Netze weiter wichtig ist.

C3SURF_BLOCK_PORT_n='port_nr'
  Angabe der Portnummer, der Zugriff auf die dahinter stehenden Dienste des Routers (fli4l)
  sind dauerhaft für die benannten Hosts oder Rechner in den benannten Netzen gesperrt.
  Auch nach erfolgter Anmeldung steht der Dienst NICHT zur Verfügung.

  Beispiele:
    C3SURF_BLOCK_PORT_1='5000'                 # z.B. imonc
    C3SURF_BLOCK_PORT_2='5001'                 # z.B. telmond
    C3SURF_BLOCK_PORT_3='20000'                # z.B. mtgcapri (OPT_MTGCAPRI)
    C3SURF_BLOCK_PORT_4='22'                   # z.B. ssh
    C3SURF_BLOCK_PORT_5='8118'                 # z.B. privoxy (PROXY)
    C3SURF_BLOCK_PORT_6='9050'                 # z.B. tor (PROXY)
    C3SURF_BLOCK_PORT_7='80'                   # z.B. httpd Admin interface (HTTPD)
    C3SURF_BLOCK_PORT_8='7437'                 # z.B. caiviar (OPT_CAIVIAR)


C3SURF_HTTPD_PORT='8080'
  Auf welchem Port und welcher IP-Adresse soll der mini_httpd für die Benutzeranmeldung lauschen.
  http Anfragen von Rechnern werden auf diese Adresse und diesen Port umgeleitet.
  Port 8080 ist hier default.
  Folgendes ist bei der Wahl der Portnummer zu beachten (WICHTIG):
  - es sollte nicht der Port aus den httpd-Paket sein (normal ist das 80)
  - der httpd für den Web-Admin des fli4l bindet sich im Standard an alle lokalen IPs
  - benutze auch keine Portnummer, die bereits von einem anderen Dienst genutzt wird
  Solltest Du versehentlich einen bereits verwendeten Port erwischt haben,
  versucht der fli4l diesen httpd immer wieder zu starten.
  Was der nicht will, weil der Port schon vom Admin-Interface oder einem anderen Diesnt belegt ist.
  Das kannst Du nur auf der Konsole oder in einem einschalteten Log sehen. Merken tust Du es daran,
  dass c3surf nicht funktionieren wird, und dass Dein fli4l hohe CPU-Belastung hat und furchtbar
  langsam zu laufen scheint.

C3SURF_HTTPD_LISTENIP='Host OR IP-Adresse OR IP_NETx_IPADDR'
  Gibt die angegebene lokale IP an, an die sich das Interface für die Anmeldung binden soll.
  Entweder IP-Adresse oder @hostname hierhin werden http Anfragen der Clients bei Bedarf 
  (also wenn sie nicht angemeldet sind) umgeleitet.
  So kommen die Anwender dann schnell auf die Anmeldeseite.

  Beispiele:
    C3SURF_HTTPD_LISTENIP='@wifi-router'   # Angabe eines Hostnamens in der fli4l-Weise
    C3SURF_HTTPD_LISTENIP='192.168.11.3'   # Angabe einer IP-Adresse
    C3SURF_HTTPD_LISTENIP='IP_NET1_IPADDR' # Angabe einer IP-Adresse mittels Variable
    Der http-Diesnt für c3surf wird immer an genau eine IP-Adresse gebunden.

Optional:
C3SURF_CONTROL_SQUID
  Mit dem Einfügen der Variable C3SURF_CONTROL_SQUID='yes' wird die Kontrolle über squid erzwungen.
  Damit wird die c3surf Portumleitung an den Anfang gesetzt,
  was auch Auswirkungen auf andere Pakete hat (z. B. openvpn).
  Die Empfehlung ist 'no', wer es unbedingt braucht, weil er squid verwendet, der sollte prüfen,
  ob nicht ungewollt noch andere Funktionen dadurch beeinflusst werden.

C3SURF_SLOPPY_MAC Standard-Einstellung: C3SURF_SLOPPY_MAC=’no’
        C3SURF_SLOPPY_MAC=’no’
        (Standard), wenn dieser Parameter nicht angegeben wurde, lasse Login nur mit
        MAC-Adressermittlung aus der ARP-Tabelle zu. Es wird also nicht ’schlampig’ mit
        MAC-Adressen verfahren.
        C3SURF_SLOPPY_MAC=’yes’
        Dann nimmt C3SURF es mit der MAC-Adresse nicht so genau, sollte diese fehlen
        und nicht über die ARP-Tabelle ermittelbar sein, so wird trotzdem die Anmel-
        dung erlaubt. Wer hier ’yes’ wählt sollte C3SURF_CHECK_ARP=’no’ (Seite 10) setzen.
        Sonst erfolgt die automatische Abmeldung (im Mittel nach einer Minute), weil der
        "countdown’"Prozess wegen fehlendem Eintrag in der ARP-Tabelle zur Abmeldung
        aufgefordert wird.
C3SURF_CHECK_CURFEW Standard-Einstellung: C3SURF_CHECK_CURFEW=’yes’
        C3SURF_CHECK_CURFEW=’no’
        schalte automatisches Abmelden beim Erreichen der Sperrstunde ab.
        C3SURF_CHECK_CURFEW=’yes’
        (Standard), wer bei Erreichen der Sperrstunde angemeldet ist, wird rausgeworfen.

OPT_LOGINUSR='yes'    # yes: echte Anmeldung verwenden (wird empfohlen)
  LOGINUSR: Stellt eine echte Anmeldung (User / Password) zur Verfügung.
  Account Pflege im Moment nur hier, stellt sicher, dass Passworte nur verschlüsselt übertragen werden.

LOGINUSR_DELETE_PERSISTENT_DATA='no'
  Benutzerdaten auf einer Platte bleiben seit Version 2.1.0 erhalten. Der Standardwert 'no' 
  stellt dies für die Accountdaten sicher.
  Mit der Eingabe von 'yes' kann die Funktion von früheren c3Surf-Versionen abgebildet werden.
  Alle Benutzer-Accounts werden dann beim Neustart gelöscht (wirklich alle).
  Es Danach erfolgt eine Neuanlage der Accounts, wie unten definiert.
  Das geschieht bei jedem Neustart, bis ein neues Router-Image auf den Router übertragen wird.
  Es wird empfohlen hier 'no' beizubehalten. Dann bleiben die Daten zu den Accounts erhalten.

  Dazu gehören:
  - Benutzer-Accounts
  - Quota-Daten, wenn C3SURF_SAVE_QUOTA='yes' gewählt ist (s.o.)
  (für einen einzelnen Account siehe: LOGINUSR_ACCOUNT_n_OVERWRITE)

LOGINUSR_ACCOUNT_N='n'   # Anzahl Accounts, Wert: ganze Zahl
  Gibt die Anzahl der User-Accounts an.

LOGINUSR_ACCOUNT_n_USER='user1'
  Username für die Anmeldung (Pflicht: '' also leer lassen ist unzulässig)

LOGINUSR_ACCOUNT_n_PWD='user1_secret'
  Password für die Anmeldung (Pflicht: '' also leer lassen ist unzulässig)

LOGINUSR_ACCOUNT_n_FORENAME='Vorname'
  Vorname des Nutzers für die bessere Verwaltung 
  (Optional, leer lassen erlaubt).
   Dieser Inhalt wird im Log und Admin-Interface angezeigt,
  so kann der Admin besser erkennen, wer gerade online ist.

LOGINUSR_ACCOUNT_n_SURNAME='Nachname'
  Nachname des Nutzers für die bessere Verwaltung 
  (Optional, lassen erlaubt). 
  Dieser Inhalt wird im Log und Admin-Interface angezeigt, 
  so kann der Admin besser erkennen, wer gerade online ist.

LOGINUSR_ACCOUNT_n_EMAIL='usr1@home.de'
  Email des Nutzers für die bessere Verwaltung 
  (Optional, lassen erlaubt). 
  Dieser Inhalt wird auch Log und Admin-Interface angezeigt,
  so kann der Admin besser erkennen, wer gerade online ist.

LOGINUSR_ACCOUNT_n_OVERWRITE='yes'      
  Optional: Überschreibe persistente Nutzerdaten beim Router-Neustart.
  Seit Version 2.1.0 kann ein Verzeichnis für persistente Daten angegeben werden.
  Dort werden die Daten für die Accounts gespreichert.
  Damit stehen diese Daten unverändert nach einem Reboot zur Verfügung.
  Mit dieser Option können der Benutzer-Account und alle zugehörigen persistenen Daten
  (Statistiken) überschrieben werden.

LOGINUSR_ACCOUNT_n_TIME='60'            
  Optional: Anzahl der Minuten nur für diesen Nutzer, überschreibt C3SURF_TIME.
  Siehe auch C3SURF_TIME. Fehlt dieser Parameter, so gilt C3SURF_TIME.
  Das Überschreiben macht natürlich nur Sinn, wenn C3SURF_QUOTA='yes' eingestellt ist.

LOGINUSR_ACCOUNT_n_BLOCKTIME='240'
  Optional: Sperrzeit nur für diesen Nutzer, überschreibt C3SURF_BLOCKTIME
  Siehe auch C3SURF_BLOCKTIME. Fehlt dieser Parameter, so gilt C3SURF_BLOCKTIME.
  Das Überschreiben macht natürlich nur Sinn, wenn C3SURF_QUOTA='yes' eingestellt ist.

LOGINUSR_ACCOUNT_n_COUNTER='1'
  Optional: Anzahl der Anmeldungen nur für diesen Nutzer, überschreibt C3SURF_COUNTER
  Siehe auch C3SURF_COUNTER. Fehlt dieser Parameter, so gilt C3SURF_COUNTER.
  Das Überschreiben macht natürlich nur Sinn, wenn C3SURF_QUOTA='yes' eingestellt ist.

LOGINUSR_ACCOUNT_x_CURFEW LOGINUSR_ACCOUNT_x_CURFEW=’Liste Sperrstunden’
    Format: (Liste von Sperrstunden 0-23 durch Leerzeichen getrennt)
    Beispiele:
              LOGINUSR_ACCOUNT_x_CURFEW=’0 1 2 3 4 5 6 7 21 22 23’
    Bedeutung: Eine Anmeldung ist nur zwischen 8:00-20:59 Uhr erlaubt. Die Anmeldung
    wird immer unterbunden, wenn der Nutzer sich innerhalb der Stunde (plus 0-59 Minu-
    ten), die in der Liste steht, versucht anzumelden.
    Ist der Benutzer angemeldet und läuft in die Sperrstunde, so wird er ohne Warnung
    automatisch abgemeldet. Das Abmeldeverhalten kann durch den optionalen Parameter
    C3SURF_CHECK_CURFEW (Seite 16)=’no’ unterbunden werden.
    Mit dieser Liste kann ein Zugang sehr flexibel eingeschränkt werden. Die Liste kann auch
    wie gewohnt im Webinterface gepflegt werden. Bei der Eingabe findet keine Prüfung der
    Liste statt. Es sind nur die Zahlen von 0 bis 23 sinnvoll! Du achtest selbst auf
    das richtige Format.
    Zugehöriger OPT_C3SURF Parameter:
    C3SURF_CHECK_CURFEW (Seite 16)=’no’
       • C3SURF_CHECK_CURFEW=’no’
         schalte automatisches Abmelden beim Erreichen der Sperrstunde ab.
       • C3SURF_CHECK_CURFEW=’yes’
         (Standard), wer bei Erreichen der Sperrstunde angemeldet ist, wird rausgeworfen.


1.4 OPT_C3SURF_VOUCHER
Das OPT_C3SURF_VOUCHER ermöglicht einen anonymen Zugang in das Internet. Es wer-
den Gutscheine erstellt, die in unterschiedlichen Kategorieen eingerichtet werden können. Das
Opt kann dann über das Web-Admin-Interface manuell oder automatisch verwaltet werden.
OPT_C3SURF_VOUCHER OPT_C3SURF_VOUCHER=’no’
     Das Opt C3SURF_VOUCHER benutzen (’yes’), Standard ist ’no’. Es soll das Gut-
     scheinsystem von C3SURF verwendet werden. Gutscheine sind anonyme aber sichere
     Einmal-Accounts, die zur Anmeldung verwendet werden können. Voraussetzung ist die
     Einstellung "OPT_LOGINUSR=’yes’" (Seite 17).
     Die Erzeugung und Löschung der Gutscheine übernehmen zwei nächtliche cron JOBs,
     welche jederzeit auch manuell(Admin-Interface) gestartet werden können. Weiter unten
     erfährst Du, wie Du diese Jobs selbst einplanen oder komplett abschalten kannst. So
     kannst Du entscheiden, ob alles automatisch und zu welcher Zeit ablaufen soll oder ob
     Du es lieber manuell aus dem Admin-Interface des fli4l heraus erledigst.
     Alle neu generierten Gutscheine werden an eine Druckliste angehängt. Nur in der Druck-
     liste ist das zum Gutschein gehörende Kennwort im Klartext gespeichert. Du kannst diese
     Liste jederzeit Herunterladen, Drucken oder Löschen. Nach dem Löschen der Liste, kann
     das Kennwort nicht wieder ermittelt werden. Der normale Ablauf ist, zuerst die Liste
     drucken und dann die Liste löschen. Es liegt in Deiner Verantwortung dafür zu sorgen,
     dass es immer nur ein gedrucktes Exemplar eines Gutscheines gibt. Die implementierte
     Druckfunktion ist rudimentär in html implementiert. Es wird keine Rücksicht auf Sei-
     tenumbruch genommen. Ehrlich gesagt weiß ich nicht, ob es überhaupt möglich ist im
     html darauf zu reagieren, da es sich um eine Beschreibungssprache für Bildschirmprä-
     sentation handelt. Da sind gute Vorschläge oder Ratschläge an mich willkommen. Die
     Gutscheine, die dem Seitenwechsel zum Opfer fallen, kannst Du ja einfach vernichten.
     Das Verfallsdatum eines Gutscheines erledigt dann ja irgendwann den Rest. Oder du
     lädst die Liste herunter und löscht sie dann. Mit der heruntergeladenen Liste könntest
     Du mittels Tabellenkalkulation oder Textverarbeitung (Serienbrief) ein eigenes schönes
     Layout erstellen, welches dann auch Seitenwechsel sauber berücksichtigt. Wenn Du da
     etwas schönes erstellt hast, schicke es mir an c3surf@arcor.de. Ich würde es dann in das
     nächste Paket, natürlich unter Deinem Namen, im source Ast veröffentlichen. Ich habe
     es noch nicht gemacht, da ich das Gutscheinsystem von C3SURF selbst nicht benötige.
C3SURF_VOUCHER_N C3SURF_VOUCHER_N=’n’
     Wertebereich: 0 und Natürliche Zahlen
     Es wird angegeben, wie viele verschiedene Gutscheinkategorien erzeugt werden sollen.
     Wichtigstes Kriterium für Gutscheine ist die Zeit, die man damit angemeldet bleiben
     kann. Daneben gibt man noch die Anzahl der Gutscheine und deren Gültigkeit in Tagen
     an. Siehe auch die folgenden Variablen.

C3SURF_VOUCHER_x_TIME C3SURF_VOUCHER_x_TIME=’30’
    Wertebereich: Natürliche Zahlen
    Beispiel: Gutscheine der Kategorie ’n’ sind für 30 Minuten ausgelegt.
    Hier gibst Du die Anzahl der Minuten für einen Gutschein dieser Kategorie (’n’ siehe
    oben) an.
C3SURF_VOUCHER_x_COUNT C3SURF_VOUCHER_x_COUNT=’3’
    Wertebereich: Natürliche Zahlen
    Beispiel: Es werden insgesamt 3 Gutscheine für diese Zeitkategorie erzeugt.
    Hier gibst Du an, wieviele Gutscheine dieser Kategorie erzeugt werden sollen.
C3SURF_VOUCHER_x_DAYS C3SURF_VOUCHER_x_DAYS=’90’
    Wertebereich: 0 und Natürliche Zahlen
    Beispiel: Diese Gutscheine sind 90 Tage nach der Erzeugung gültig.
    Hier gibst Du an, wie viele Tage ein solcher Gutschein ab seiner Erzeugung gültig sein
    soll. Daraus erzeugt C3SURF bei der Generierung ein Verfallsdatum für diesen Gutschein.
    Entsprechende Jobs sorgen für die Löschung, oder du wählst die manuelle Variante. Ein
    Gutschein erlischt normalerweise früher, nämlich dann, wenn er das erste Mal verwendet
    wird.

1.4.1 Optionale Parameter OPT_VOUCHER
C3SURF_VOUCHER_x_LIVES C3SURF_VOUCHER_x_LIVES=’n’
     Wertebereich(n): -1, 0, Natürliche Zahlen
     Angabe von Stunden, die der Voucher noch nach der ersten Anmeldung weiterlebt.
     Sonderfälle:
        • C3SURF_VOUCHER_x_LIVES=’-1’
           Lebt bis zum ursprünglich generierten Verfallsdatum aus C3SURF_VOUCHER_DAYS
           weiter.
        • C3SURF_VOUCHER_x_LIVES=’0’
           (Standard), bedeutet Voucher wird mit erster Anmeldung ungültig.
        • C3SURF_VOUCHER_x_LIVES=’Natürl. Zahl’
           Anzahl der Stunden, die der Voucher weiterlebt nach erster Anmeldung - ggf. ein
           neues Verfallsdatum berechnen.
     Diese Gutscheine werden nicht mit der ersten Anmeldung ungültig, sondern leben ’n’
     Stunden weiter. Sobald der Gutschein benutzt wird, wird daraus ein zeitlich limitierter
     LOGINUSR-Account generiert oder es wird das Verfallsdatum des Vouchers neu berech-
     net. Dieser Account / Voucher darf sich beliebig oft an und wieder abmelden. Es wird das
     von LOGIN_USR gewohnte Quota-System für diesen Account verwendet. Erst wenn die
     gesamte Zeit verbraucht ist oder wenn das Verfallsdatum (C3SURF_VOUCHER_DAYS_n)
     erreicht wurde, wird dieser Account automatisch von C3SURF gelöscht.
C3SURF_VOUCHER_DEL_CRON C3SURF_VOUCHER_DEL_CRON=’0 4 * * *’
     Wertebereich: ’cron-Syntax’ oder ’never’
     Der oben angegebene Wert ist der Standard, wenn diese Variable in der config-Datei
     ’c3surf.txt’ fehlt. Standard: lösche täglich morgens um 4 Uhr alle verfallenen Guscheine.
     Die cron-Syntax ist einzuhalten, wird nicht geprüft. Zusätzlich kann der Wert ’never’
     verwendet werden. Dann wird der Job vom System überhaupt nicht eingeplant. Du kannst
     im Admin-Interface jederzeit manuell alle verfallenen Gutscheine löschen lassen.

C3SURF_VOUCHER_GEN_CRON C3SURF_VOUCHER_GEN_CRON=’15 4 * * *’
    Wertebereich: ’cron-Syntax’ oder ’never’
    Der oben angegebene Wert ist der Standard, wenn diese Variable in der config-Datei
    ’c3surf.txt’ fehlt. Standard: generiere täglich morgens um 4:15 Uhr neue Gutscheine,
    falls weniger als C3SURF_VOUCHER_COUNT vorhanden sind.
    Die cron-Syntax ist einzuhalten, wird nicht geprüft. Zusätzlich kann der Wert ’never’
    verwendet werden. Dann wird der Job vom System überhaupt nicht eingeplant. Du kannst
    im Admin-Interface jederzeit manuell neue Gutscheine bis zur Menge
    C3SURF_VOUCHER_x_COUNT (Seite 22) erzeugen lassen.
    Alle neu generierten Gutscheine werden an eine Druckliste angehängt. Nur in der Druck-
    liste ist das zum Gutschein gehörende Kennwort im Klartext gespeichert. Sorge selbst
    dafür, dass jeder Gutschein nur einmal gedruckt wird, indem Du die Liste sofort nach dem
    Ausdruck oder Herunterladen löscht. Lasse Unbefugte nicht an die Liste herankommen.

Web-Admin Interface
===================
Rechte: c3surf:view,admin

  view:  den Eintrag im Admin Menü anzeigen
  admin: für die Nutzung der Funktionen im Web-Interface

  in httpd.txt einpflegen für Admins oder Nutzer die nicht über das Recht "all" verügen,
  aber mit FreeSurf arbeiten sollen.

  Der fli4l-Admin mit dem Recht "all" sieht es sowieso und kann alles damit tun.
  Zu finden in Web-Admin unter Opt:
  als "3Surf", wenn OPT_LOGINUSR='no' (sprich: FreeSurf)
  als "LoginUsr", wenn OPT_LOGINUSR='yes'

LOGINUSER Option
================
  Es wird eine echte Benutzeranmeldung, ähnlich der von Hotspot Portalen benutzt.
  Nur wer über einen Benutzer-Account und ein Kennwort verfügt kann das Internet
  und die Dienste des Routers nutzen.

Was macht 3Surf
===============
  Du kannst ein Netz oder einzelne Hosts angeben, die nach Hochfahren zunächst gesperrt sind.
  Diese können dann über ein eigenen Webinterface von den Benutzern selbst auf Zeit freigeschaltet werden.
  Dazu registriert sich der Benutzer formlos über das Webinterface.
  Ist die LOGINUSR - Option aktiviert, dann können sich nur Benutzer anmelden,
  die einen gültigen Account besitzen. Die Benutzernamen und Passworte pflegst Du.

  Du kannst über das Admin-Interface Deines Routers die Benutzer sehen, Ausloggen,
  temporär Sperren oder die MAC-Adresse dauerhaft sperren.
  Die Sperrung betrifft immer nur die Anmeldung über 3Surf und wird von 3Surf verwaltet.
  Kommt der Rechner über eine andere NIC an Deinen Router, hat die Sperre keine Wirkung.

  Die Anmeldung erfolgt durch Vorname, Name und e-mailadresse oder durch User/Password.
  Nach Ablauf einer eingestellten Zeit, wird der Zugang wieder gesperrt und kann durch
  neue Anmeldung wieder freigeschaltet werden.

  Du kannst die Anmeldeseite auch für die Benutzer sperren 
  (siehe FreeSurf bzw. LoginUsr im OPT-Menue des Webinterfaces).

  Du kannst das alles im Admin-Web-Interface nachvollziehen.

  Willst Du bestimmte Rechner dauerhaft freischalten, so kannst Du dies im Webinterface tun.
  Siehe dazu die ARP-Liste oder die DHCP-Leases.

  Jede Nutzung kann seit Version 2.1.0 mit Quotas versehen werden.
  Damit kann die Nutzung in der Zeit eingeschränkt werden.
  Mit den Parametern "-TIME", "-BLOCKTIME" und "-COUNTER" lässt sich dabei sehr viel einstellen,
  auch Benutzerbezogen.

Beispiele
  TIME  BLOCK COUNTER  ergibt QUOTA, wenn C3SURF_QUOTA="yes"
        TIME
  60    -1       0     60 Min Zeit, keine Sperre nach Ablauf, mit jeder Anmeldung (Verhalten wie vor v2.1.0)
  60    240      0     60 Min Zeit, danach für 240 gesperrt, mit Anmeldung läuft die Zeit (wie Parkuhr)
  60     0      -1     60 Min Zeit, nach Ablauf bis 00:00 Uhr gesperrt, beliebige An- Abmeldungszahl
  60    -1       1     60 Min Zeit, keine Sperre nach Ablauf, die Zeit kann 1x unterbrochen werden
  60    -1      -1     60 Min Zeit, keine Sperre nach Ablauf, beliebige An- Abmeldungszahl

Systemanforderungen
===================
  Wichtig: Der fli4l muss als DNS-Server bei den Clients eingetragen sein und muss
  befähigt sein Namen aufzulösen. Dazu
   • benötigt er einen "Forward" auf den DNS-Server des Netzes oder
   • er ist selbst der DNS-Server und kann ggf. automatisch Verbindugen aufbau-
     en.
Sonst gibt es Probleme automatisch auf die Anmeldeseite umzuleiten. Die kann
aber immer noch manuell durch die Eingabe ihrer URL aufgerufen werden.


  Die Entwicklung begonnen habe ich unter 3.1.4. 
  Verwendet wird es jetzt unter 3.4.0.
  Nicht für Version 3.0.x oder frühere, definitiv NICHT!!

OPT_LOGINUSER
=============
  Stellt ein pseudoechte Anmeldung für Benutzer bereit. 
  Damit kann nicht mehr jeder das Internet oder die Dienste Deines Routers nutzen.
  Ich habe es so entwickelt, dass im laufenden Bertrieb eine Umschaltung erfolgen kann.
  Diese ist aber nicht implementiert.

  Pseudoecht: es ist eben keine echte Benutzeranmeldung, 
  aber die Software substituiert seit Version 2.1.0 jeden Benutzer auf eine Rechneradresse
  und handhabt das alles transparent. So wird nach Ablauf der Quota nicht der Rechner (IP-Adresse),
  sondern der Benutzer geblockt.

WARNUNG:
========
  Ohne OPT_LOGINUSR='yes' ist es jeder Person möglich, die für ihren Rechner eine IP-Adresse 
  vom Router zugewiesen bekommen hat (z. B. aus einem offenen WLAN), 
  einen freien Zugriff auf das Internet und die Dienste Deines Routers, 
  die Du nicht geblockt hast, zu bekommen. c3Surf unterstützt beim Blocken der Dienste,
  ist aber kein Ersatz für eine "ordentliche" Konfiguration der Firewall in der "base.txt".

  Empfehlung: 
    Achte darauf, dass Du Deinen Router mit einer "Recovery-Version" versehen hast - für alle Fälle.
    Ich habe die zwar noch nicht gebraucht, aber sicher ist sicher.
    Mit einer unglücklichen Konfiguration kannst Du Dich komplett aussperren.

PROBLEME, ÄNDERUNGEN und FEHLER:
================================
  Änderungen, die Du gemacht hast, schickst Du mir bitte. Mit einer kurzen Beschreibung,
  ich verspreche, dass ich die Änderungen bei Gefallen in das nächste Release übernehme.
  Falls gar nix läuft : Fehlerbeschreibung erstellen, mit Config-Info und mailto:c3surf@arcor.de.
  Oder die fli4l-foren nutzen, ich lese diese.

LITERATUR
=========
  Wer gerne sein Netz für andere zur Verfügung stellt, der sollte sich auch einmal mit der 
  rechtlichen Situation auseinander setzen.
  Es gibt ein unter CC stehende Arbeit dazu: 
  Rechtsfragen offener Netze: http://digbib.ubka.uni-karlsruhe.de/volltexte/1000007749

Autor     : Mantz, Reto
Reihe     : Schriften des Zentrums für Angewandte Rechtswissenschaft / ZAR, 
            Zentrum für Angewandte Rechtswissenschaft, Universität Karlsruhe (TH)
Band      : 8
Verlag    : Universitätsverlag Karlsruhe
ISBN      : 978-3-86644-222-1
Erschienen: 10.04.2008

LIZENZ
======
  Ich stelle diese meine Arbeit unter GNU General Public License in Version 2 oder folgende.
  Damit ist diese Software frei für Benutzer, Entwickler und Firmen.
  Es ist guter Stil, wenn Urheber in einer weiteren Verwertung oder Veröffentlichung genannt werden. 
  Daran solltest Du immer denken.
  --------------------------------------------------------------------------
  ## This program is free software; you can redistribute it and/or modify ##
  ## it under the terms of the GNU General Public License as published by ##
  ## the Free Software Foundation; either version 2 of the License, or    ##
  ## (at your option) any later version.                                  ##
  --------------------------------------------------------------------------

----------------------------------------------------------------------------
SPENDEN
=======
PayPal    : c3surf@arcor.de
            mit Hinweis: c3surf Spende

  Ich habe viel meiner Zeit investiert, das war diese Software mir wert. 
  Wenn die Software Dir etwas wert ist, freue ich mich über eine Spende. 
----------------------------------------------------------------------------


----------------------------------------------------------------------------
ANHANG
======
  Wie ist c3surf entstanden
  =========================
     Meine alten Rechner konnten nur WLAN WEP Verschlüsselung mit 48bit. 
     Da kann ich auch gleich ein offenes, nicht verschlüsseltes WLAN betreiben. 
     Aber ich möchte schon wissen wer das Netz bei mir nutzt. 
     Also brauchte ich ein Paket, welches eine formlose Registrierung in 
     meinem Netz ermöglicht. 
     Pate stand "opt_onco" (onco is Copyright (c) 2001-2007 Michael Mattes),
     einen Dank an Ihn als Ideenlieferant für mich.
     Jedoch fehlte mir dort die eigene Registrierung durch den Benutzer.
     Also baute ich etwas drum herum. Später dann ein eigenes "opt_c3surf".
     Was eigentlich opt_3surf heißen (sprich: FreeSurf) sollte.
     Doch als das Paket fertig gebaut war, scheiterte das '3surf'
     an den fli4l-Namenskonventionen. Da hatte ich viel Spass bei der Überarbeitung.

     Später erweiterte ich es um die OPT_LOGINUSR Option. Seit dem kann eine "fast"
     echte Anmeldung nachgestellt werden.

     Seit der Version 2.3.0 kann c3surf auch Gutscheine generieren.

ANDERE OPTS HOWTOS
==================
  cpmvrmlog Config
  ================
      Beispiel für das c3surf-Logverzeichnis, mit restart des mini_httpd

      # archive c3surf log dir
      # einmal im Monat am 1. um 01:30
      # maximal 12 Archive aufbewahren
      CPMVRMLOG_n_ACTION='move'
      CPMVRMLOG_n_SOURCE='/var/log/c3surf/c3surf_*.log'
      CPMVRMLOG_n_DESTINATION='/data/Archive/log/c3surf'
      CPMVRMLOG_n_CUSTOM='/usr/local/bin/c3surf_kill_httpd.sh'
      CPMVRMLOG_n_MAXCOUNT='12'
      CPMVRMLOG_n_CRONTIME='30 1 1 * *'

  samba ohne Anmeldung erlauben
  =============================
      Man nehme das opt_usercmd und trage dort folgendes ein.
      USERCMD_BOOT_N='3'
      USERCMD_BOOT_1='/sbin/iptables -I c3surf_control 1 -v -p udp --dport 137:138 -j RETURN' # samba thru c3surf
      USERCMD_BOOT_2='/sbin/iptables -I c3surf_control 1 -v -p tcp --dport 455 -j RETURN'     # samba thru c3surf
      USERCMD_BOOT_3='/sbin/iptables -I c3surf_control 1 -v -p tcp --dport 139 -j RETURN'     # samba thru c3surf

      Durch hinzufügen der Option "-d IPsambaHOST" in den oberen Zeilen, 
      kann die jeweilige Regel noch um den Zielrechner erweitert werden.

      Damit werden die samba ports normal durch die FORWARD-chain geleitet und nicht mehr von c3surf geblockt. 
      Solltest Du in der FORWARD-chain samba weiterleitung verbieten, so ändern diese Eintragungen nichts daran.

      Es gelten also immer noch die Einstellungen Deiner base.txt.
