Managen der Onlinezeiten. Es wird für die einzelnen User eine tägliche Internetzeit vergeben.
Dieses OPT ist aus einer Kopie des OPT_ONCO von Michael Mattes entstanden. Ich habe es meinen Bedürfnissen angepaßt. Bei ONCO wird für einen festgelegt Zeitraum den Anwendern die Internetnutzung erlaubt. Mein Interesse lag daran, für die Anwender eine tägliche Internetzeit festzulegen unabhängig davon, wann die Internetnutzung erfolgt.
Mail den Autor
:
Volker_Krause@gmx.net
Ich übernehme keinerlei Verantwortung für
eventuelle Schäden, die durch dieses Skript verursacht werden
könnten. Die Benutzung erfolgt ausdrücklich auf eigene
Verantwortung.
installiert und in der base.txt/isdn.txt müssen aktiviert sein:
der mini-httpd für Web Interface Ausgabe, die Logs können auch mittels Editor der Wahl betrachtet und weiter ausgewertet werden
das opt_extratools (enthält benötigten grep e.c.) muss installiert sein
das opt_easycron muss installiert sein
Imond muß aktiviert sein (ab Version 0.1.0 pre)
nicht installiert sein darf das OPT_PROXY, da die Zeitsteuerungen nicht mit Proxy funktioniert
Man entpacke das Archiv und kopiere alles in das
Fli4L-Basisverzeichnis
-Editieren der ouma.txt in /config
OPT_OUMA='yes' ( 'yes oder 'no' ) Package aktivieren
OUMA_STARTTIME='60' Internetzeit , die bei Neustart für alle zeitgesteuerten IP vergeben wird
OUMA_START_SPERRE='no' Nur wichtig bei OUMA_STARTTIME=0, bei "yes" werden alle Client gesperrt, bei "no" alle frei
OUMA_BLOCK_UDP='yes' auch UDP Pakete blocken? (sperrt die meisten Spiele)
OUMA_BLOCK_ICMP='yes' auch ICMP (Ping) Pakete blocken?
OUMA_NEVERBLOCK_N='0' wieviele IPs niemals sperren?
OUMA_NEVERBLOCK_1='192.168.6.2' 1. IP, die nicht gesperrt werden kann
OUMA_NEVERBLOCK_2='192.168.6.3' 2. IP, die nicht gesperrt werden kann
OUMA_TIMECTL_N='1' Anzahl der Zeitsteuerungen
OUMA_TIMECTL_1_IP='192.168.6.4' 1. IP, die zeitabhaengig gesteuert werden soll
OUMA_TIMECTL_1_START='01 04 * * *' Wann soll die Onlinezeit neu vergeben werden (cron-Syntax)
OUMA_TIMECTL_1_TIME='90' Onlinezeit, die der User täglich bekommt (täglich bei mir, cron Syntax läßt natürlich beliebige Zeitsteuerungen zu). Will man dem Client seine Onlinezeit ab einem bestimmten Zeitpunkt wegnehmen, kann man das durch Vergabe einer Zeit von 1 bei einer zweiten Zeitsteuerung zu dieser IP.
OUMA_TIMECTL_1_KZ='0' Kennung zur Mehrfach-Steuerung einer IP, normalerweise 0, für weitere Steuerung 1 und 2 angeben
OUMA_TIMECTL_ADD_N='1' Anzahl der Zeitsteuerungen für Addtime
OUMA_TIMECTL_ADD_1_IP='192.168.6.1' 1. IP, die zeitabhaengig gesteuert werden soll
OUMA_TIMECTL_ADD_1_START='01 03 * * *' Wann soll die Onlinezeit neu vergeben werden (cron-Syntax)
OUMA_TIMECTL_ADD_1_TIME='30' Onlinezeit, die der User aufaddiert bekommt
OUMA_MITBYTE='yes' Wird mit Byte-Begrenzung gearbeitet ?
OUMA_MAXBYTE='2000' Maximale Megabyte für jeden Monat. Dazu wird auf dem Mini-Httpd der Gesamtbyteverbrauch angezeigt. Der dortige Monatswert wird ständig verringert bis er am Anfang des nächsten Monats wieder auf Maxbyte gesetzt oder <= 0 wird. Dann schaltet der Router ab um bei Volumentarif eine Kostenexplusion zu verhindern. Um den Router wird zu aktivieren, muß über Mini-Httpd der Dialmode wieder auf auto und der MB-Verbrauch auf einen Wert > 0 gesetzt werden
OUMA_STARTBYTE='50' Anfangbyte für alle Host in MB
OUMA_BYTECTL_N='1' # Anzahl der Zeitsteuerungen
OUMA_BYTECTL_1_IP='192.168.6.2' 1. IP, die byteabhängig gesteuert werden soll
OUMA_BYTECTL_1_START='1 4 * * *' Wann soll Bytewerte gesetzt werden (cron-Syntax)
OUMA_BYTECTL_1_BYTE ='10' Wieviele MegaByte erhält die IP
OUMA_SET_PAKET_TIME='yes' Setzen der Lebensdauer von
Masquerading-Einträgen
!!!!!!!!!!!!!!
Experimentell !!!!!!!!!!!!!!!!!!
Dieser
Versuch, die Lebensdauer zu beschränken, ist äußerst
experimentell, ich habe keinerlei eingehendere Erfahrungen. Ich habe
diese Möglichkeit geschaffen, da es bei größeren
Netzen mit vielen Clients wegen noch bestehenden
Masquerading-Einträge Probleme mit dem Runterzählen der
Restzeit auch bei abgeschalteten Rechner gibt
OUMA_TCP_TIME ='120' Zeitraum, wie lange sich das nächste Paket bei einer bestehenden TCP-Verbindung verzögern darf, ehe der Eintrag gelöscht wird. Empfohlen wird hier in der Literatur 900 bis 7200 Sekunden (15 Minuten bis 2 Stunden). Ein zu niedriger Eintrag macht sich dadurch bemerkbar, dass bestehende Telnet- oder SSH-Sitzungen ohne oder mit zu groß eingestelltem Keep-Alive-Intervall durch die Firewall plötzlich nicht mehr funktionieren.Für ein richtiges Funktionieren des Countdown von OUMA habe ich hier mit 120 Sekunden aber eine viel geringere Zeit gewählt. Deshalb sollte man genau prüfen, ob wirklich alles noch richtig funktioniert
OUMA_TCPFIN_TIME ='30' "tcpfin" ist die Zeitspanne nach dem ersten FIN-Paket. Einseitig ist die Verbindung bereits abgebaut, es wird jedoch noch auf das FIN-Paket für den entgegengesetzten TCP-Kanal gewartet. Brauchbare Werte liegen hier zwischen 10 und 180 Sekunden.
OUMA_UDP_TIME ='60' "udp" ist entsprechend für UDP-Verbindungen zuständig. Eine Zeitspanne zwischen 60 und 300 Sekunden ist hier sinnvoll.
OUMA_OPT_FPING='yes' Optional - Feststellen des
Rechnerzustands.
OUMA_SAVEMODE='yes' Sichern Variable auf Festplatte, damit
nach Neustart alles wieder beim alten ist.
OUMA_DIALMODE='yes' Bei 'yes' wird der Dialmode zwischen
off und auto geschaltet, wenn eine IP
geblockt wird und kein anderer Client aktiv ist. Außerdem
werden alle Sperrstati auf ja gesetzt. Will ein Anwender wieder ins
Internet, muß er sich per User-Time wieder
freischalten. Funktioniert also nur, wenn alle Anwender User-Time
benutzen.
Das habe ich eingebaut, um die unerwünschten
Verbindungsaufbauten in Griff zu kriegen.
Nun noch eine neues opt.tgz erstellen oder den Router per Imonc updaten, und schon kann man loslegen.
Wenn man die Dateien per ftp hochgeladen hat muss man noch darauf achten, dass das CGI ausführbar ist. Am einfachsten führt man dazu ein
chmod 777 /usr/local/htdocs/*.cgi
an der Router-Konsole oder per telnet/ssh aus.
On boot werden die Onlinezeit der zeitabhängigen IP auf die STARTTIME und wenn MITBYTE = yes die Startbytes gesetzt, die CRON-Prozesse für die zeitabhängige Onlinezeitvergabe und Bytevergabe gestartet.
Geht der Router Online, wird der Main-Prozeß zur
Zeitsteuerung gestartet. Dieser kontrolliert minütlich , welcher
User das Internet gerade nutzt und dessen Zeit und Byteanzahl wird
heruntergezählt. Bei Null wird dieser gesperrt und erst durch
Zeitsteuerung oder Mini-Httpd wieder freigegeben.
Durch die Vielfältigkeit von CRON ist eine nazu unbegrenzt vielfältige Zeitsteuerung möglich. Durch mehrfache Zeitsteuerung der selben IP kann man den Client zu beliebigen Zeiten Internetnutzung erlauben oder die Erlaubnis wegnehmen.
Die Bytesteuerung ist relativ primitiv, es erfolgt eine Gleichverteilung der Bytes auf alle Onlineuser, unabhängig davon, wieviel Travel jeder wirklich hat.
Berechtigungsprüfung über ouma:manage (HTTPD_RIGHTS_X='ouma:manage' in httpd.txt).
Es wird folgendes angezeigt:
Rechnerstatus an/aus (nur bei OUMA_OPT_PING)
Internet (Rechner ist im Internet an/aus)
Internetstatus (ja/nein/noch verfügbare Onlinezeit)
MB-Anzeige (ja/nein/ohne/noch verfügbare MB - Für den Router wird auch ein Wert heruntergezählt, dieser kann beliebig kleiner 0 werden, muß also per Cron-Steuerung wieder auf 0 zurückgesetzt werden)
Zeiten (30min,1,2,4 Stunden ) zum individuellen vergeben
Formular zum individuellen Setzen von Zeit,MB und MB-Verbrauch
Gesamtbyteverbrauch
Aktualisieren (nur bei OUMA_OPT_PING), -> Rechnerstatus wird neu ermittelt
alle sperren
alle freigeben
Berechtigungsprüfung über ouma:list.
Es wird folgendes angezeigt:
Internet (Rechner ist im Internet an/aus)
Restzeit (ja/nein/noch verfügbare Onlinezeit)
Wo finde ich die Auswertungen, wenn
ich keinen Httpd einsetze ?
Gar nicht.
Funktioniert Ouma auch bei DSL ?
Da
ich kein DSL nutze, weiß ich das nicht.
Ab Version 1.0.0
:Nach einer Änderung die mir Frank Neitzel empfohlen hat,
sollte DSL jetzt funktionieren
Brauche ich IMOND unbedingt ?
Nein,
aber dann tritt das Problem auf, das je Onlineverbindung der Client
eine Minute zuviel abgezogen bekommt.
Kann ich
die Internetzeitzuweisungen zur Laufzeit ändern:
Dafür
habe ich ein eigenes OPT_UpCron geschrieben, wo man die Cron-Tabelle
ändern kann. Die Änderungen gehen aber bei Neustart
verloren.
Wie
erfährt ein User, wieviel Onlinezeit er noch hat ?
Dafür
gibt es jetzt den Menüpunkt User-Time im MiniHttpd
mit eigenem Berechtigungseintrag ouma:list
OUMA
zeigt an, das Rechner im Internet ist, obwohl er bereits
ausgeschaltet wurde.
Dieses Problem kann auftreten,
wenn ein Rechner z.B. abstürzt und noch eine Verbindung eines
Programmes aktiv war (Problem tritt auch auf, wenn man die
Internetverbindung per MiniHttpd beendet oder dort auf einen anderen
Provider umschaltet). Ein Verbindungseintrag (Masquerading-Eintrag)
kann dann noch weiter bestehen bleiben, der Rechner wird als 'im
Internet' geführt und solange läuft auch noch der
Countdown. Die meisten Verbindungen werden dann von der Gegenseite
nach einigen Minuten gekappt - es gibt aber Ausnahmen, z.B. offenbar
icq-Server, das zählt dann bis zu einer Stunde runter.
Um
das Problem abzumildern habe ich die Prüfung eingebaut, daß
es nur einen Countdown gibt, wenn eine Internetverbindung
besteht.
Für Lösungsvorschläge bin ich
offen.
!!!!!!!!!!!!!!!!
Lösungversuch mit OUMA_SET_PAKET_TIME. Ich warte auf
Rückmeldungen.
Läuft
OUMA und DHCP ?
So wie OUMA jetzt ist sicher nicht. Ich
benutze selber kein DHCP, aber OUMA benötigt feste IP-Adressen,
da alle Variablen die IP als Kennung enthalten. Wenn jemand eine
Lösung findet, kann er sie gerne an mich weitergeben, damit ich
sie in OUMA integriert.
Kann ich
eine andere Fehlermeldung ausgeben als Seite nicht gefunden
?
Bei Installation des OPT_ERRPAGE (enthalten in OPT_DOMBLK)
wird dessen Errorpage ausgegeben.
Ich
möchte gern die Shell-Script mit Notepad oder Editor öffnen,
bekomme aber keinen ordentlichen Seitenumbruch.
Die
Shell-Script, CGI-Dateien e.c. Sind als UNIX-Text abgespeichert. Es
muß also eine Textverarbeitung verwendet werden, die diese
Text lesen kann (ich verwende StarOffice 5.2).
Wieso
verbrauche ich soviele Byte, obwohl ich ganz wenig mache ?
Die
Bytesteuerung ist relativ primitiv, es erfolgt eine Gleichverteilung
der Bytes auf alle Onlineuser, unabhängig davon, wieviel Travel
jeder wirklich hat.
Es fehlen
ein paar Byte !
Es werden die Byte bei jeder vollen Minute
gezählt. Bei der Trennung der Onlineverbindung erfolgt keine
abschließende Zählung. Hat es in der letzten Minute noch
Traffic gegeben, geht diese Information verloren.
Ich habe
meine Config OUMA.txt geändert(z.B. Neverblock entfernt), aber
die Änderungen ziehen nicht !
Du arbeitest mit SAVEOUMA
! Von dort werden beim Neustart die alten Daten kopiert. Du muß
jetzt alle Dateien auf dem Router aus /usr/local/data/saveouma
löschen !
Warum
wird ein Verbindung aufgebaut, obwohl der Client gesperrt ist
?
Hierfür habe ich keine Lösung! Der Client ist zwar
per Firewall (ipchains) gesperrt und kann nichts machen, aber eine
Einwahl erfolgt trotzdem und wird dann wegen keinen Traffic
wieder gekappt. Vielleicht kann mir jemand, der sich besser
auskennt, hier einen Hinweis geben.
Mit OUMA_DIALMODE habe ich
eine einfache Lösung programmiert, nach der optimalen muß
noch gesucht werden.
SAVEOUMA
funktioniert nicht.
Es gibt kein Verzeichnis
/usr/local/data/saveouma. Lege es an.
Ich habe mir die Dateien
zeitanzeige.html und zeitanzeige1.html von www.k-on-line.de
heruntergeladen, die Seite kann aber nicht angezeigt werden .
Dazu
habe ich folgenden Artikel gefunden:
Seit einiger Zeit,
vermutlich seit dem automatischen Einspielen eines
Sicherheits-Updates, kann ich URLs im Internet Explorer keine
Anmeldeinformationen mehr mitgeben. Der Aufruf einer Seite in der
Form http://nutzer:kennwort@www.seite.de bringt jedes Mal eine
Fehlermeldung. Wie kann ich den Internet Explorer dazu bringen,
solche URLs wieder zu akzeptieren?
Dieses Verhalten
kommt in der Tat durch das Einspielen eines Update zustande, und
zwar durch den kumulativen Patch KB 832894.
Vor
diesem Patch war es möglich, Benutzer in die Irre zu führen,
indem man sie zum Beispiel per E-Mail aufforderte, einen Link mit
einer Adresse in der Form http://www.ebay.com:verify@www.spion.com
anzuklicken und dort ihre Anmeldeinformationen einzugeben. Bei
flüchtigem Hinsehen entsteht der Eindruck, der Link verweise
auf eine eBay-Seite; tatsächlich landet der Surfer aber auf
www.spion.com. Schlimmer noch: Durch geschickte Manipulation des
Links konnte man dafür sorgen, dass der Internet Explorer den
Teil hinter dem @ gar nicht anzeigt. Beim Beheben dieses Fehlers ist
Microsoft wohl etwas übers Ziel hinausgeschossen: Der Patch
unterdrückt solche URLs generell für alle http- und
https-Adressen.
Wer auf diese Art der
Benutzerauthentifizierung nicht verzichten kann, den Patch (der auch
noch zwei andere Fehler behebt) aber nicht deinstallieren will, kann
sich mit einem Registry-Eingriff behelfen. Dazu steuert man mit dem
Programm Regedit den Schlüssel
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main an,
erzeugt dort einen neuen Schlüssel namens FeatureControl, falls
er noch nicht existiert, und darin einen weiteren Unterschlüssel
mit dem Namen FEATURE_HTTP_USERNAME_PASSWORD_DISABLE. In diesem
Schlüssel ist ein neuer DWORD-Wert mit dem Namen iexplore.exe
und dem Wert 0 anzulegen. Nachdem der Internet Explorer neu
gestartet ist, sollte er Benutzerangaben in URLs wieder akzeptieren.
Durch Zuweisung einer 1 an diesen Wert lassen sich solche Adressen
wieder sperren. Soll die Einschränkung nur für einzelne
Benutzer gelten, meldet man sich unter deren Namen an und führt
die Registry-Änderungen im Zweig HKEY_CURRENT_USER statt in
HKEY_LOCAL_MACHINE durch. Für andere Programme, die den
Internet Explorer als ActiveX-Control einbinden, lässt sich das
Verhalten steuern, indem man weitere DWORD-Werte erzeugt, die dann
nicht iexplore.exe heißen, sondern den Namen des jeweiligen
Programms tragen. Weitere Informationen finden sich in Artikel
834489 der Microsoft Knowledge Base. (ju)
0.0.1pre April 2003 - erstes local lauffähiges Opt nach kopieren von ONCO
0.0.2pre April 2003 - Anpassung an den fli-Standard
0.1.0pre Mai 2003 - Es wird jetzt zusätzlich beim Countdown geprüft, ob noch eine Onlineverbindung besteht. Problem war, das noch runtergezählt wurde, wenn keine Verbindung mehr besteht, aber ipchains noch was findet. Es wurde also immer 1 Minute zuviel abgezogen je Verbindung.
1.0.0 Mai 2003 DSL sollte jetzt funktionieren
1.0.1 Mai 2003 Freischalten der Hosts funktioniert jetzt auch
1.1.0 Juni 2003 Neuer MiniHttpd-Menüpunkt User-Liste
1.2.0 Juni 2003 Interne Änderung: countdown läuft nur noch, wenn Router Online ist. Kkeine DELAY-Zeiten mehr für PING, Rechnerstatus wird jetzt nur upgedatet, wenn man über MiniHttpd den UserManager (Seite hat Refresh von 10 min) aufruft oder dort aktualisiert
1.2.1 Juni 2003 Problem mit Netzwerken mit zweistelligen IP (z.B. *.*.*.11) nach Hinweis durch Till Heidtmann beseitigt
1.2.2 Juni 2003 Lösungsversuch von OUMA zeigt an, das Rechner im Internet ist, obwohl er bereits ausgeschaltet wurde.
1.2.3 Juni 2003 Bessere Verwaltung von STARTTIME oder TIMECTL_X_TIME='0'. Zusätzlich händisches Abschalten des Internetzugangs durch den User per User-List, wenn der seinen Rechner nicht in den Griff kriegt:-) (unerwünschte Verbindungsaufbauten)
1.2.4 Juni 2003 OUMA_START_SPERRE neu
1.3.0 Juni 2003 Wird OPT_ERRPAGE verwendet (enthalten in OPT_DOMBLK) wird bei Sperrung auf dessen Errorpage verzweigt
1.4.0 August 2003 Es kann jetzt auch per Addtime die Zeit aufaddiert statt nur gesetzt werden
1.5.0 August 2003 Traffic kann jetzt begrenzt werden
1.5.3 Septem 2003 Traffic und Time jetzt per HTML-Formular änderbar
1.6.1 Okt 2003 Sicherungsmöglichkeit neu
1.7.0 Mai 2004 Mehrfachzeitsteuerungen
1.7.1 Juni 2004 Dialmodeumschaltung neu
1.8.0 Dez 2004 Gesamtbyteverbrauch und MB-herunterzählen für Router neu
Siehe Wunschliste
Separate Möglichkeit der Ausschließens von Clients für die Volumen-Steuerung(Neverblock für MByte)
Bug-Reports bitte an u.a. eMail-Adresse richten, dafür bin ich offen und dankbar.
MfG,
Volker Krause
mailto:Volker_Krause@gmx.net
vorlage.html doku erstellt von
Daniel H. Reichelt