Letzte Änderung:
$Id: onco.html 22 2006-03-12 18:45:59Z sirprize $
Überblick
OnCo ist ein Opt-Paket für fli4l, mit
dem man den Internetzugang für die einzelnen PCs im lokalen Netzwerk
steuern kann. Damit ist auch der Betrieb eines "Internetcafes"
möglich.
Funktionsweise
OnCo sperrt alle ihm bekannten Rechner. Per Webinterface (oder zeitgesteuert)
kann man dann einzelne PCs freischalten, und zwar entweder unbeschränkt
oder für eine gewisse Zeit. Nach Ablauf dieser Zeit wird der
entsprechende PC wieder gesperrt. So kann man z.B. den Kindern eine Stunde
Surfzeit geben. Dies geht auch automatisiert, z.B. Montags bis Freitags
18:00 bis 19:00.
Bitte beachten: diese Art der Freischaltung funktioniert nur, wenn der Rechner
vor dem Freischaltungszeitpunkt schon hochgefahren ist.
Dies liegt an der internen Funktionsweise von OnCo.
Features
- Dauerhaftes Freischalten von Clients für den Internetzugang.
- Freischalten von Clients für 15, 30, 60, 120 oder 240 Minuten.
- Verlängern von Onlinezeit um 15, 30, 60, 120 oder 240 Minuten.
- Sofortiges Sperren einzelner oder aller Clients.
- Anzeige der Restsurfzeit.
- Zeitabhängige Freischaltung einzelner Clients.
- Sperren von ICMP und UDP optional auch möglich.
- Optional: Anzeige, ob und welche Rechner gerade eingeschaltet sind.
Voraussetzungen
- httpd
- Die benötigten Rechte (HTTPD_USER_x_RIGHTS), um
die Rechnerliste anzuzeigen, sind "onco:view". Zum Ändern
der Freischaltung ist es "onco:change" bzw. "onco:all".
Natürlich funktioniert es auch mit "all" ;-)
- easycron
Beide sind bei den fli4l-3-Downloads zu finden.
Installation
- Sicherstellen, dass httpd und easycron (aus den Grundpaketen)
installiert sind.
- In config/httpd.txt muss OPT_HTTPD='yes' stehen, und ein Benutzer muss
angelegt sein
- In config/easycron.txt muss lediglich OPT_EASYCRON='yes' stehen. Eine
weitere Konfiguration ist nicht nötig
- Die gepackte Datei "NNNN-onco-3.x.x-fli4l-3.x.x.zip" ins
fli4l-Verzeichnis entpacken
- config/onco.txt öffnen und anpassen, Hinweise dazu gibt es weiter
unten in dieser Datei
- Bei Unklarheiten mir (Michael
Mattes) eine E-Mail schicken (Vorsicht: lange Wartezeit!)
- Diskette erstellen und rebooten.
- Fertig!
Konfigurationshinweise
Übersicht der Konfigurationsvariablen
- OPT_ONCO: Bestimmt, ob OnCo überhaupt installiert
werden soll. Ist Voraussetzung für alle anderen Einstellungen von OnCo
- ONCO_BLOCKALL_HOSTS: Falls diese Variable auf yes steht,
werden beim Booten des Routers alle Rechner gesperrt, die fli4l kennt.
Ansonsten ist der Internetzugang für alle frei, bis man ihn über das
Webinterface sperrt.
- ONCO_BLOCK_UDP: Normalerweise blockt OnCo nur TCP-Pakete.
Manche Spiele (und auch andere Programme) verwenden jedoch manchmal UDP.
Falls diese Option auf yes gesetzt ist, wird auch UDP geblockt.
- ONCO_BLOCK_ICMP: Wie bei ONCO_BLOCK_UDP, nur mit
ICMP-Paketen. Verhindert z.B. das Anpingen von Rechnern im Internet.
- ONCO_BLOCK_DNS: Wenn diese Option auf yes gesetzt ist,
können gesperrte Rechner keine DNS-Anfragen an den fli4l-Router schicken.
Dies verhindert eine evtl. unnötige Einwahl ins Internet und ist deshalb
für Leute ohne Flatrate sehr zu empfehlen. Für Flatrate-Nutzer ist
diese Option eher unnötig und kann auch zu Problemen im lokalen Netzwerk
führen (da auch lokale Namen nicht mehr aufgelöst werden
können). Achtung:
Auch wenn ich die Einstellungen teste, kann ich nicht dafür garantieren,
daß nicht doch eine Einwahl durch einen gesperrten Rechner irgendwie
geschehen kann. Falls so etwas auffällt: bitte mir eine E-Mail mit
möglichst vielen Informationen dazu schreiben!
- ONCO_PORTBLOCK_N: Dies gibt die Anzahl der TCP-Ports an,
die für gesperrte Rechner auf dem Router nicht erreichbar sind.
Wichtig für Proxy-Benutzer! Die Proxy-Ports müssen
hier eingestellt werden. Sonst würde ein gesperrter Rechner zwar nicht
direkt ins Internet kommen, aber der Proxy würde es trotzdem
ermöglichen.
- ONCO_PORTBLOCK_x: Der x. TCP-Port, der nicht für
gesperrte Rechner erreichbar ist. Wenn hier die IP des Webinterfaces steht,
kann sich ein gesperrter Rechner nicht selbst wieder entsperren (denn er kommt
gar nicht auf das Webinterface!).
-
ONCO_HOSTLIST: Eine sehr wichtige Einstellung!
Sie bestimmt, woher OnCo seine Rechnerliste bekommt. OnCo wird keinen Rechner
beeinflussen, der nicht auf dieser Liste steht. Das bedeutet: hat der Router
die IP-Adresse 192.168.0.1/24 (in der base.txt unter IP_NET_x
zu finden), dann ermöglicht er dem gesamten Subnetz von 192.168.0.1 bis
192.168.0.254 den Internetzugang. Ist jedoch die Hostliste von OnCo nur von
192.168.0.1 bis 192.168.0.10, so sind alle Rechner ab 192.168.0.11 immer
freigeschaltet! Mögliche Einstellungen sind:
- base: Die Hostliste wird aus den Rechnern generiert,
die in der base.txt eingetragen sind. Um alles abzudecken, wird man also
im Normalfall 254 solcher Einträge benötigen
(HOSTS_N='254')!
- file: Die Hostliste wird aus
files/usr/local/onco_hostlist.txt übernommen. Also einfach die
IP-Adressen und Namen anpassen, fertig.
- ONCO_NEVERBLOCK_N: Gibt die Anzahl der IP-Adressen an,
die nie gesperrt werden dürfen. Die IP des Routers selbst muss da nicht
eingetragen werden. Sie wird automatisch nie gesperrt.
- ONCO_NEVERBLOCK_x: Die x. IP, die nie gesperrt wird.
- OPT_FPING: Falls diese Option auf yes gesetzt ist, wird
fping auf den Router kopiert. Damit kann OnCo regelmäßig alle
Rechner in der Hostliste anpingen, um zu sehen ob diese gerade an sind.
Diese Option ist nicht notwendig, aber ganz nett für den Überblick.
- ONCO_HOSTUPDATE_DELAY: Falls fping aktiviert ist, gibt
diese Einstellung die Häufigkeit von Online-Status-Updates an (also wie
oft der Router alle Rechner im Netzwerk anpingen soll). Die Zeit ist in
Minuten angegeben. 10 bedeutet, alle 10 Minuten erfolgt ein Update.
- ONCO_TIMECTL_N: Dies gibt die Anzahl der Zeitsteuerungen
an.
- ONCO_TIMECTL_x_IP: Welche IP soll zeitgesteuert werden?
- ONCO_TIMECTL_x_START: Wann soll die Zeitsteuerung
starten? Dies ist cron-Syntax. Das bedeutet, es sind 5 Felder: Minute, Stunde,
"Tag des Monats", Monat, "Tag der Woche". Wenn alle Felder
zutreffen, wird die Zeitsteuerung aktiv. Mehr Informationen zur cron-Syntax
gibt es
im Internet. Am Ende dieser Datei sind noch ein paar Beispiele.
- ONCO_TIMECTL_x_TIME: Für wie lange soll die
Zeitsteuerung den Rechner freischalten? Angabe in Minuten.
Versionsinformationen:
Version 3.0.0:
Anpassung an fli3l 3.0.0 (und an die Versionsnummer :-) )
Viele Änderungen im Code. Support für ältere OnCo-Versionen
wird somit eingestellt. Ebenso ist die Versionshistorie nun nutzlos und wird
zurückgesetzt.>
Version 3.0.0.1:
Kleiner Bugfix. Danke an Andreas Städer für die Meldung.
Version 3.0.0.2:
Größere Änderungen in fast allen Skripten. Bugfixes,
Optimierungen usw..
Sehr empfehlenswert!
Vielen Dank an Jean Wolter für die Änderungen und Anregungen!
Version 3.0.0.3:
Bug beim Herunterzählen der Onlinezeit behoben. Vielen Dank an Mario
Möller und an Jan Reimers für die fast gleichzeitige Meldung des
Bugs.
Außerdem wurde noch ein Bug im Zusammenhang mit einem Proxyserver
behoben. Vielen Dank an Volker Staeblein fürs Melden.
Version 3.0.1.1:
Anpassung des Versionschecks an fli4l 3.0.1
Bugfix beim Blocken der Ports. Danke an Michael Schweikert für die
Meldung.
Bugfix für die Zugriffsrechte beim Sperren aller PCs. Danke an Uwe Helms
für die Meldung.
Danksagungen
Vielen Dank an alle, die mich mit Bugreports versorgt haben. Insbesondere
möchte ich mich allerdings bei folgenden Leuten bedanken, die alle
einen größeren Beitrag zu OnCo gemacht haben:
(bitte melden, falls noch eine E-Mail-Adresse dazugeschrieben oder entfernt
werden soll)
- Dr. Robert Probst - Gruppen-Blocking (in 3.0.x vorerst rausgenommen)
- Alexander Schaber - Dokumentation
- Jürgen Mackiol - Anpassung an
fli4l 2.1.x sowie Aufräumen in den Skripten
- Jean Wolter - Bugfixes und Optimierungen in OnCo 3.0.0.2
Beispiele zur Zeitsteuerung
Die IP 123.234.123.234 soll jeden Tag von 14:00 bis 17:00
freigeschaltet werden. Wie geht das?
Freischaltungsdauer bestimmen: 14:00-17:00 sind 3 Stunden, also
180 Minuten.
Freischaltungsbeginn: 14:00, jeden Tag. Das bedeutet, das Minutenfeld muss 00
sein, das Stundenfeld 14, und der Rest ist egal:
00 14 * * *
Gesamtergebnis:
ONCO_TIMECTL_1_IP='123.234.123.234'
ONCO_TIMECTL_1_START='00 14 * * *'
ONCO_TIMECTL_1_TIME='180'
Die IP 1.2.3.4 soll unter der Woche (Montag bis Freitag)
von 17:00 bis 17:30 freigeschaltet werden.
Freischaltungsdauer bestimmen: 17:00-17:30 sind 30 Minuten.
Freischaltungsbeginn: 17:00, Montag bis Freitag. Das bedeutet, das
Minutenfeld muss 00 sein, das Stundenfeld 17, Tag und Monat sind egal,
und das "Tag der Woche"-Feld muss Montag bis Freitag lauten.
Dabei gilt: 0 ist Sonntag, 1 ist Montag, etc.. bis Samstag mit Wert 6. Sonntag
kann auch als Wert 7 gesehen werden. Das Ergebnis ist jedenfalls
00 17 * * 1-5
Möglich wäre auch folgendes: 00 17 * * 1,2,3,4,5
Gesamtergebnis:
ONCO_TIMECTL_1_IP='1.2.3.4'
ONCO_TIMECTL_1_START='00 17 * * 1-5'
ONCO_TIMECTL_1_TIME='30'
Die IP 2.3.4.5 soll unter der Woche (Montag bis Freitag)
von 16:30 bis 17:30 freigeschaltet werden. Am Wochenende soll die
Freischaltung von 09:15 bis 20:00 gehen.
Hier können wir einen Trick anwenden: wir machen einfach 2
Zeitsteuerungen für dieselbe IP-Adresse. Hier ohne weitere
Erklärungen das Gesamtergebnis:
ONCO_TIMECTL_1_IP='2.3.4.5'
ONCO_TIMECTL_1_START='30 16 * * 1,2,3,4,5'
ONCO_TIMECTL_1_TIME='60'
ONCO_TIMECTL_2_IP='2.3.4.5'
ONCO_TIMECTL_2_START='15 09 * * 0,6'
ONCO_TIMECTL_2_TIME='645'