View previous topic :: View next topic |
Author |
Message |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Sat Dec 29, 2012 3:47 pm Post subject: zeitliches Volumen für Internetzugang festlegen [solved] |
|
|
Ich tüftel schon einige Zeit an einer Lösung wie man es schafft einer IP/MAC aus dem LAN nur eine bestimmte Surfzeit zu ermöglichen. Also wie eine Kindersicherung. Und zwar nicht nach festen Zeiten, (das wäre ja viel zu einfach ) sondern einem Gesamtlimit je Tag oder Woche. Also z.B. jeden Tag max. 4 Stunden Internet. Ob nun am Stück oder gestückelt sei erstmal egal. Ideal wäre natürlich stückelbar.
Die Idee die ich hatte wäre ein Cronjob der einen minütlichen Ping auf das betreffende Gerät absetzt. Ist es pingbar, wird per iptables die Verbindung freigegeben und ein Zähler läuft los. Jede weitere Minuten wird nun verglichen ob das Limit voll ist und ggf. per iptables die Verbindung wieder abgedreht. Klingt auf den ersten Blick trivial, wird aber schnell komplex wenn man das in Ruhe durchdenkt.
Hat jemand ein anderer/bessere Idee? Bin doch bestimmt nicht der Erste mit dem Bedarf dazu.
Als Ideallösung schwebt mir was mit -m recent vor, evt. verschachtelt in mehreren Regeln.
Last edited by slick on Thu Jan 10, 2013 3:58 pm; edited 1 time in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
bell Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/21241977654fa2c194802e2.jpg)
Joined: 27 Nov 2007 Posts: 510
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Sat Dec 29, 2012 6:21 pm Post subject: |
|
|
Wenns fürs reine Websurfen wäre ok, aber es geht auch um z.B. die Playstation. Die braucht bissl mehr als http. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
papahuhn l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/gallery/Loony Toons/Looney_Toons_-_Sylvester.gif)
Joined: 06 Sep 2004 Posts: 626
|
Posted: Sun Dec 30, 2012 2:01 am Post subject: |
|
|
Hi,
was hälst Du denn davon:
-A FORWARD -s 1.2.3.4 -m recent --name surf --rcheck --seconds 60 -j ACCEPT
-A FORWARD -s 1.2.3.4 -m limit --limit 240/day --limit-burst 240 -m recent --name surf --set -j ACCEPT
-A FORWARD -s 1.2.3.4 -j REJECT
Idee:
Die zweite Regel öffnet (mittels -m recent --set) bis zu 240 Zeitfenster pro Tag (mittels -m limit), in denen 60 Sekunden lang Pakete durchgelassen werden (erste Regel). Auf die Art hat man durchschnittlich bis 240*60 Sekunden = 4 Stunden Internetzugang täglich. Die erste Regel bestimmt damit die Zeitgranularität, in der die Internetnutzung abgerechnet wird.
Anmerkungen:
- Durch das limit-burst können die 4 Stunden zu Anfang in einem Stück verbraucht werden. Danach ist aber nicht unbedingt 20 Stunden Pause. Da sich der limit Bucket alle 6 Minuten um ein Token füllt, kann auch alle 6 Minuten ein 1-Minuten-Zeitfenster geöffnet werden - oder auch mehrere, wenn man länger wartet.
- Langlebige TCP Verbindungen können die REJECTs der dritten Regel überleben, wenn das REJECT-Zeitfenster nicht allzu lang ist. Mit --reject-with tcp-reset kannst Du das aber den Verbindungsschluss erzwingen.
- Unter Nutzung von hashlimit ließe sich wahrscheinlich das -s loswerden.
Grüße _________________ Death by snoo-snoo! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Sun Dec 30, 2012 1:00 pm Post subject: |
|
|
Gefällt mir sehr gut. Allerdings habe ich noch ein paar (Verständnis-) Fragen dazu.
1) Die Regeln gehen nach meinem Verständnis davon aus die Default-Policy wäre DROP. Wie müßte man das negieren wenn die Default-Policy ACCEPT wäre?
2) Aktuell bräuchte man den Router nur kurz resetten und hätte dann wieder volle 4h. Was könnte man tun um nach dem initialen Durchlauf des Regel-Scripts erst eine gewisse Wartezeit (z.B. 12h) einzufügen bevor das erste Zeitfenster aufgemacht werden kann?
3) Ich kapiere das limit-burst leider nicht. Wenn ich jetzt z.B. 5h am Tage konfigurieren möchte macht das ein limit von --limit 300/day. Wie ändert sich dann --limit-burst? Auch 300?
4) Um das ganze MAC basierend zu machen, könnte ich die Regeln direkt mit -m mac kombinieren oder empfielt sich besser ein eigener Regelsatz in den "umgelenkt" wird? z.B. (ungetestet):
Code: |
-N TIMELIMIT
-A TIMELIMIT -m recent --name surf --rcheck --seconds 60 -j ACCEPT
-A TIMELIMIT -m limit --limit 240/day --limit-burst 240 -m recent --name surf --set -j ACCEPT
-A TIMELIMIT -j REJECT
-A FORWARD -m mac -mac-source 00:11:22:33:44:55 -j TIMELIMIT |
5) Wie müßte ich obigen Regelsatz so abändern das er erstmal nur komplett geloggt wird (z.B. minütlich OK oder GESPERRT) statt wirklich zu begrenzen um zu beobachten das es auch so tut wie es soll. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
papahuhn l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/gallery/Loony Toons/Looney_Toons_-_Sylvester.gif)
Joined: 06 Sep 2004 Posts: 626
|
Posted: Sun Dec 30, 2012 4:09 pm Post subject: |
|
|
Hi,
1) die Regeln gehen von einer ACCEPT-Policy aus, deswegen das REJECT ganz am Ende.
2-3) Unten folgt ein Beispiel ohne -m limit, mit initialer Wartezeit.
4) MAC-basierend geht zunächst mal nicht, da -m recent mit IPs arbeitet. Du müsstest vorfiltern, dass eine IP-Adresse nicht von einer "illegalen" MAC genutzt wird.
Code: | modprobe xt_recent ip_pkt_list_tot=255
-N setwait
-A setwait -s 1.2.3.4 -m recent --name setwait --set
-A setwait -s 1.2.3.4 -m recent --name waiting --set -j REJECT
-A FORWARD -s 1.2.3.4 -m recent --name setwait ! --rcheck -j setwait
-A FORWARD -s 1.2.3.4 -m recent --name waiting --rcheck --seconds 43200 -j REJECT
-A FORWARD -s 1.2.3.4 -m recent --name surf --rcheck --seconds 60 -j ACCEPT
-A FORWARD -s 1.2.3.4 -m recent --name surf --rcheck --hitcount 240 --seconds 86400 -j REJECT
-A FORWARD -s 1.2.3.4 -m recent --name surf --set -j ACCEPT |
- Das modprobe ist notwendig, damit man hitcounts > 20 nutzen kann.
- Die setwait Chain, sowie die recent-Namen setwait und waiting sind für die initialen 12 Stunden Wartezeit. Das Dumme ist hier allerdings, dass das Wartefenster von dem zu regulierenden System (1.2.3.4) gestartet werden muss. Eine Kopplungsmöglichkeit an die Uptime des Routers ist mir ohne Skripting nicht bekannt.
- Die letzten drei Regeln erlauben 240 60-Sekunden-Surffenster in den zurückliegenden 24 Stunden. Wenn Du 5 Stunden pro Tag erlauben willst, wirst Du mit dem 255 Modprobe Limit nicht auskommen (mehr geht nicht). Stattdessen musst du die Granularität runterdrehen, was ich sowieso für angebracht halte. Während ich diesen Beitrag verfasse, gibt es ja keine Internetaktivität, aber dennoch surfe ich ja im Internet. Eine Granularität von 5 oder 10 Minuten kann das besser abdecken als 60-Sekunden Fenster.
Testregeln könnten so aussehen:
Code: | -A setwait -s 1.2.3.4 -m recent --name setwait --set -j LOG --log-prefix "Set wait timer (1/2) "
-A setwait -s 1.2.3.4 -m recent --name waiting --set -j LOG --log-prefix "Set wait timer (2/2) "
-A setwait -s 1.2.3.4 -j ACCEPT
-A FORWARD -s 1.2.3.4 -m recent --name setwait ! --rcheck -j setwait
-A FORWARD -s 1.2.3.4 -m recent --name waiting --rcheck --seconds 43200 -j LOG --log-prefix "Reject during init wait "
-A FORWARD -s 1.2.3.4 -m recent --name waiting --rcheck --seconds 43200 -j ACCEPT
-A FORWARD -s 1.2.3.4 -m recent --name surf --rcheck --seconds 60 -m limit --limit 1/second -j LOG --log-prefix "Accepting in current timeslice "
-A FORWARD -s 1.2.3.4 -m recent --name surf --rcheck --seconds 60 -j ACCEPT
-A FORWARD -s 1.2.3.4 -m recent --name surf --rcheck --hitcount 240 --seconds 86400 -m limit --limit 1/second -j LOG --log-prefix "No timeslices left, rejecting "
-A FORWARD -s 1.2.3.4 -m recent --name surf --rcheck --hitcount 240 --seconds 86400 -j ACCEPT
-A FORWARD -s 1.2.3.4 -m recent --name surf --set -j LOG --log-prefix "Opening new timeslice "
-A FORWARD -s 1.2.3.4 -m recent --name surf --set -j ACCEPT |
Grüße _________________ Death by snoo-snoo! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Mon Dec 31, 2012 2:12 pm Post subject: |
|
|
Fein fein. Nochmal Danke. Für das Sicherstellen das auf der MAC die korrekte IP verwendet wird, nutze ich folgende Regel:
Code: | -A FORWARD -m mac --mac-source $MAC ! -s $IP -j REJECT |
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Tue Jan 01, 2013 4:13 pm Post subject: |
|
|
Ich habe nochmal darüber nachgedacht und evt. gibt es noch eine Verbesserungsmöglichkeit, zumindest für die Praxis, da nicht zwangsläufig 24h einen Tag bedeuten
Also nach meinem Verständnis funktioniert es doch so (ggf. korrigiert mich bitte). (Ich vernachläßige jetzt die initiale Wartezeit)
Ich beginne um sagen wir 15 Uhr online zu spielen und spiele die 4h am Stück durch (jede Minute wurde auch min. ein Paket gesendet). Nun kann ich also frühestens 24h später, also am nächsten Tag um 15 Uhr wieder beginnen online zu spielen. Korrekt?
D.h. möchte ich am nächsten Tag jedoch 14 Uhr beginnen, müßte ich entweder am Vortag auch 14 Uhr beginnen und 4h spielen oder aber 15 Uhr beginnen und darf dann aber nur 3 Stunden spielen. Korrekt?
D.h. das Kontingent von 4h auf 24h ist in der Praxis ungünstig gewählt. Besser wäre hier ein Ansatz von z.B. 4h je 16h, da der normale Mensch ca. 8h schlafen würde und ich die "abziehen" könnte. Damit wäre man in der Verschiebung des Spielbeginnzeitpunktes (je Tag) deutlich flexibler. Das würde allerdings auch bedeuten, wenn ich wirklich die 24h eines Tages voll ausnutzen würde, könnte ich theoretisch max. 2x4h innerhalb 24h, also eines Tages spielen.
Was haltet ihr davon? |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
papahuhn l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/gallery/Loony Toons/Looney_Toons_-_Sylvester.gif)
Joined: 06 Sep 2004 Posts: 626
|
Posted: Tue Jan 01, 2013 7:37 pm Post subject: |
|
|
Du kannst um Mitternacht die Regeln flushen und neu einspielen, dann hast Du harte Tagesgrenzen und einen flexiblen Spielbeginn. _________________ Death by snoo-snoo! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Jean-Paul Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
Joined: 13 Apr 2009 Posts: 307
|
Posted: Tue Jan 01, 2013 8:07 pm Post subject: |
|
|
Stell doch den Minutenzähler um 00:00h wieder auf Null, dann hast du immer die vollen 24h.
Dazu brauchst du eine Datei in der das Datum und der Zähler steht.
Startest du den PC zu einem beliebigen Zeitpunkt, vergleicht dein cron-script das aktuelle Datum mit dem Eintrag in der Datei. Ist das Datum von gestern, wird das neue Datum gesetzt und der Zähler auf Null gestellt. Das verhindert, dass nach einem reboot - am selben Tag - der Zähler auf Null geht und du kannst dein Kontigent beliebig stückeln.
Interessant wird es dann natürlich an der Schnittstelle.
Du kannst von 20:00h - 24:00h dein Kontingent für heute verbrauchen und weil dein script um 00:00h den Zähler auf Null gestellt hat, bis morgens früh um 04:00h weiter spielen
EDIT: ja, zu lang gebraucht zum Schreiben ![Very Happy :D](images/smiles/icon_biggrin.gif) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Tue Jan 01, 2013 8:18 pm Post subject: |
|
|
Jean-Paul wrote: | Interessant wird es dann natürlich an der Schnittstelle.
Du kannst von 20:00h - 24:00h dein Kontingent für heute verbrauchen und weil dein script um 00:00h den Zähler auf Null gestellt hat, bis morgens früh um 04:00h weiter spielen ![Confused :?](images/smiles/icon_confused.gif) |
Und es hat noch einen Nachteil... da man ja jederzeit mitten im Spiel sein könnte (z.B. 22-2 Uhr) wäre zu einem Zeitpunkt dazwischen das Rücksetzen des Counters unschön. Ich finde die 16h Lösung schicker als einen Zeitpunkt für das tägliche Rücksetzen finden zu müssen. Und es gibt eine schöne Zwangspause von min. 12h.
Wie könnte man eigentlich eine Regeln einzeln zurücksetzen ohne das gesamte iptables-Script zu reseten? |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Jean-Paul Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
Joined: 13 Apr 2009 Posts: 307
|
Posted: Tue Jan 01, 2013 8:46 pm Post subject: |
|
|
slick wrote: | Und es gibt eine schöne Zwangspause von min. 12h. |
Es gibt wenig Leute die so hart zu sich selbst sind.
Zu den iptables kann ich leider nichts beitragen, da verstehe ich nichts von. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Tue Jan 01, 2013 10:02 pm Post subject: |
|
|
Jean-Paul wrote: | Es gibt wenig Leute die so hart zu sich selbst sind. ![Very Happy :D](images/smiles/icon_biggrin.gif) |
Zum Glück ist das nicht meine Spielzeit. Ich unterstütze da nur, Stichwort Teenager.
Ich habe da noch eine Verständnisfrage zu dem recent-Modul. Wenn ich mir jetzt die Counter ansehe, sieht das wie folgt aus:
Code: | # cat /proc/net/xt_recent/surf
src=192.168.1.74 ttl: 64 last_seen: 2967520 oldest_pkt: 168 4294913914, 4294931938, 4294949939, 651, 18653, 36658, 54659, 73269, 91283, 109294, 127305, 145309, 163318, 181320, 199322, 217333, 235335, 253997, 272178, 291849, 310944, 330944, 348961, 366970, 384977, 402979, 420986, 438990, 456994, 475000, 493114, 511204, 529207, 547259, 565402, 583423, 602450, 620454, 638456, 656462, 674465, 692467, 710577, 728610, 746636, 764640, 782646, 800649, 818656, 836667, 854675, 872676, 890683, 908685, 926811, 944818, 962829, 980835, 998840, 1016842, 1034845, 1052847, 1070849, 1088851, 1106858, 1124883, 1142892, 1160899, 1178901, 1196903, 1214905, 1232912, 1250920, 1268926, 1286936, 1304944, 1322947, 1341091, 1359236, 1377322, 1395989, 1413998, 1432002, 1450007, 1468011, 1486138, 1504515, 1522522, 1540527, 1558534, 1576541, 1594545, 1612550, 1630558, 1648559, 1666565, 1684568, 1703031, 1721041, 1739060, 1757096, 1775167, 1793171, 1811178, 1829185, 1847186, 1865223, 1883224, 1901225, 1919226, 1937227, 1955230, 1973239, 1991243, 2009246, 2027258, 2045262, 2063265, 2081274, 2099279, 2117287, 2135289, 2153296, 2171299, 2189357, 2207385, 2225395, 2243398, 2261403, 2279410, 2297412, 2315413, 2333446, 2351501, 2369512, 2387515, 2405524, 2423531, 2441539, 2460133, 2478160, 2496169, 2514171, 2532173, 2550180, 2568187, 2586191, 2604192, 2622198, 2640200, 2658201, 2676262, 2694266, 2712268, 2730270, 2748277, 2766282, 2784292, 2802388, 2820822, 2838832, 2859431, 2877447, 2895464, 2913481, 2931498, 2949509, 2967520 |
D.h. ich kann die aktuellen Hits sehen und deren Gesamtzahl (hier 168). Bei 60s je Hit macht das 168 Minuten. D.h. wenn dieser Wert = 240 ist, wird gesperrt? Korrekt? Und der Counter wird mit der Zeit von allein wieder kleiner oder wie läuft das?
Hintergrund: Es ist ziemlich tricky dem Teenager zu erklären wieviel Spielzeit er noch hat, insbesondere wenn er seine Spielzeit nicht am Stück nutzt. Also würde ich auf eine Mini-Website einen Verbrauchsbalken darstellen wollen. Dafür würde ich dann diesen Wert aus proc heranziehen, da dieser (meinem Verständnis nach) die genutzte Zeit in in den letzten 16h gut wiedergibt und damit errechenbar ist wieviel aktuell noch zur Verfügung steht. Spricht da was dagegen?
Nachtrag: Das heißt, gemäß der Ausgabe oben, hätte man noch 240-168 = 72min Spielzeit aktuell (am Stück) noch zur Verfügung ungeachtet dessen wie diese 168 verbrauchten zuvor entstanden sind (am Stück oder in Teilen?) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
fuchur Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/2239953984bf31027ad6ea.png)
Joined: 12 Aug 2003 Posts: 578
|
Posted: Tue Jan 01, 2013 10:39 pm Post subject: |
|
|
slick wrote: | Jean-Paul wrote: | Es gibt wenig Leute die so hart zu sich selbst sind. ![Very Happy :D](images/smiles/icon_biggrin.gif) |
Zum Glück ist das nicht meine Spielzeit. Ich unterstütze da nur, Stichwort Teenager.
...
...
Hintergrund: Es ist ziemlich tricky dem Teenager zu erklären wieviel Spielzeit er noch hat, insbesondere wenn er seine Spielzeit nicht am Stück nutzt. Also würde ich auf eine Mini-Website einen Verbrauchsbalken darstellen wollen. Dafür würde ich dann diesen Wert aus proc heranziehen, da dieser (meinem Verständnis nach) die genutzte Zeit in in den letzten 16h gut wiedergibt und damit errechenbar ist wieviel aktuell noch zur Verfügung steht. Spricht da was dagegen? |
Lol. Was ein Glück das man für Kindererziehung keine Führerschein brauch, der dann natürlich auch nicht abgenommen werden kann.
Jetzt streng dich mal ein bisschen an, damit die Erziehungsgebrechlichen auch wenigstens ein bisschen "hip" rüber kommen solltest du
automatisch in viertelstündlichen Intervallen die Restzeit auf Facebook bekannt geben.
MfG |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
papahuhn l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/gallery/Loony Toons/Looney_Toons_-_Sylvester.gif)
Joined: 06 Sep 2004 Posts: 626
|
Posted: Tue Jan 01, 2013 10:48 pm Post subject: |
|
|
Der Counter wird nicht kleiner, die Zahlen entsprechen Zeitpunken, an denen das --set durchgegangen ist. Bei deinen jetzigen Regeln würde sich die Liste füllen, bis ip_pkt_list_tot erreicht ist. Ich würde daher vor die --hitcount Regel eine --reap Regel einfügen, die die Einträge außerhalb des 16h/24h Zeitfensters herauslöscht. Dann reicht es tatsächlich, die Anzahl der Einträge in der Liste auszulesen. _________________ Death by snoo-snoo! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Tue Jan 01, 2013 11:23 pm Post subject: |
|
|
papahuhn wrote: | Ich würde daher vor die --hitcount Regel eine --reap Regel einfügen, die die Einträge außerhalb des 16h/24h Zeitfensters herauslöscht. |
Ich konnte keine Beispiel finden, nur die (mir nicht ausreichende) Info:
Quote: | --reap reap
This option can only be used in conjunction with --seconds.
When used, this will cause entries older then 'seconds' to be
purged. |
Könntest mir bitte das zu oben passende Beispiel geben wie ich das richtig einsetze? |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
papahuhn l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/gallery/Loony Toons/Looney_Toons_-_Sylvester.gif)
Joined: 06 Sep 2004 Posts: 626
|
Posted: Tue Jan 01, 2013 11:37 pm Post subject: |
|
|
Code: | -A FORWARD -s 1.2.3.4 -m recent --name surf --rcheck --hitcount 240 --seconds 86400 -j REJECT | austauschen durch
Code: | -A FORWARD -s 1.2.3.4 -m recent --name surf --rcheck --hitcount 240 --seconds 86400 --reap -j REJECT | .
Es kann sein, dass Du so wie ich folgenden Fehler gemeldet bekommst:
iptables v1.4.16.3: unknown option "--reap".
Sag bescheid, falls ja. Ich geh erstmal ins Bett. _________________ Death by snoo-snoo! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Finswimmer Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/1672586922424daf205ec26.jpg)
Joined: 02 Sep 2004 Posts: 5467 Location: Langen (Hessen), Germany
|
Posted: Wed Jan 02, 2013 9:32 am Post subject: |
|
|
slick wrote: | Jean-Paul wrote: | Interessant wird es dann natürlich an der Schnittstelle.
Du kannst von 20:00h - 24:00h dein Kontingent für heute verbrauchen und weil dein script um 00:00h den Zähler auf Null gestellt hat, bis morgens früh um 04:00h weiter spielen ![Confused :?](images/smiles/icon_confused.gif) |
Und es hat noch einen Nachteil... da man ja jederzeit mitten im Spiel sein könnte (z.B. 22-2 Uhr) wäre zu einem Zeitpunkt dazwischen das Rücksetzen des Counters unschön. Ich finde die 16h Lösung schicker als einen Zeitpunkt für das tägliche Rücksetzen finden zu müssen. Und es gibt eine schöne Zwangspause von min. 12h.
Wie könnte man eigentlich eine Regeln einzeln zurücksetzen ohne das gesamte iptables-Script zu reseten? |
Ist dafür nicht ein gleitender Zeitintervall der letzten 24 Stunden besser?
Damit wäre sichergestellt, dass er innerhalb der letzten 24 Stunden max 4 Stunden online ist, egal wie das aufgeteilt wird. Zudem ist es unabhängig vom Kalendertag. _________________ Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Wed Jan 02, 2013 4:22 pm Post subject: |
|
|
Finswimmer wrote: | Ist dafür nicht ein gleitender Zeitintervall der letzten 24 Stunden besser?
Damit wäre sichergestellt, dass er innerhalb der letzten 24 Stunden max 4 Stunden online ist, egal wie das aufgeteilt wird. Zudem ist es unabhängig vom Kalendertag. |
Wie ich oben erläuterte halte ich den 4h je 16h Ansatz für am praktischsten. Der Rest waren nur Verständnisfragen, für das "was wäre wenn". |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Wed Jan 02, 2013 7:15 pm Post subject: |
|
|
slick wrote: | Also würde ich auf eine Mini-Website einen Verbrauchsbalken darstellen wollen. |
Vollständigkeitshalber hier das PHP-Script wie es jetzt hier auf dem Router zum Einsatz kommt.
Code: | <?php
$used=intval(exec("cat /proc/net/xt_recent/surf | grep -o 'oldest_pkt: [0-9]*' | cut -d ' ' -f 2"));
$h=floor((240 - $used) / 60);
$m=(240 - $used) % 60;
$p=round(($used * 100) / 240);
?><html>
<head>
<title></title>
<meta charset="utf-8" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="refresh" content="10; URL=." />
<style type="text/css"><!--
body { margin: 20%; background-color: #666; font-size: 1em; font-family: Arial }
.meter-wrap { position: relative; }
.meter-wrap, .meter-value, .meter-text { width: 100%; height: 2em; }
.meter-wrap, .meter-value { background: #693 top left no-repeat; }
.meter-text { position: absolute; top:0; left:0; padding-top: 0.5em; color: #fff; text-align: center; width: 100%; }
.meter-value { background-color: #900; }
--></style>
</head>
<body>
<div class="meter-wrap" style="border: 1px solid white; ">
<div class="meter-value" style="width: <?php echo $p; ?>%;">
<div class="meter-text">aktuell noch <?php echo $h; ?> Stunde<?php if ($h != 1) {echo 'n';} ?> und <?php echo $m; ?> Minute<?php if ($m != 1) {echo 'n';} ?></div>
</div>
</div>
</body>
</html> |
Last edited by slick on Wed Jan 02, 2013 9:04 pm; edited 2 times in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Wed Jan 02, 2013 8:29 pm Post subject: |
|
|
Könnte mir noch jemand erklären welche genaue Bedeutung die Zahlenwerte der einzelnen Hits in /proc/net/xt_recent/* haben. Also die lange Zahlenliste. Ich vermute einen Timer, aber wie und von wo aus gezählt?
Last edited by slick on Wed Jan 02, 2013 8:30 pm; edited 1 time in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
papahuhn l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/gallery/Loony Toons/Looney_Toons_-_Sylvester.gif)
Joined: 06 Sep 2004 Posts: 626
|
Posted: Wed Jan 02, 2013 8:30 pm Post subject: |
|
|
Hat das --reap bei Dir geklappt?
Edit: Die Zahlen sind Kernel Jiffies, und hängen ab von der Kernel Tickrate. Dein System läuft mit 300Hz Tickrate, deshalb sind die Zahlenabstände bei Dir um die 18000. Beim Bootup fängt der Kernel mit einem Jiffie-Counter an, der nach 5 Minuten einen 32 bit Wraparound hat. _________________ Death by snoo-snoo!
Last edited by papahuhn on Wed Jan 02, 2013 8:37 pm; edited 1 time in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Wed Jan 02, 2013 8:32 pm Post subject: |
|
|
papahuhn wrote: | Hat das --reap bei Dir geklappt? |
Jepp, keine Probleme. Werde ja sehen obs auch so tut wie es soll. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
slick Bodhisattva
![Bodhisattva Bodhisattva](/images/ranks/rank-bodhisattva.gif)
![](images/avatars/155298905545589d9986ab5.gif)
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Thu Jan 03, 2013 5:46 pm Post subject: |
|
|
Also das reap hat nichts bewirkt. (Der Befehl gab aber auch keinen Fehler aus, iptables v1.4.6) Der Counter ist bis 255 vollgelaufen und hat dann wieder bei 1 begonnen. Eine Ermittlung der Restzeit ist somit nicht möglich (es sei denn ich resete zu einem gewissen Zeitpunkt wie oben vorgeschlagen) Gemäß iptables -m recent -h gibt es die Option bei mir auch nicht. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
papahuhn l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/gallery/Loony Toons/Looney_Toons_-_Sylvester.gif)
Joined: 06 Sep 2004 Posts: 626
|
Posted: Sat Jan 05, 2013 9:56 pm Post subject: |
|
|
Dann bleibt dir wohl nur die Möglichkeit manuell zu zählen. Die aktuellen jiffies sind in /proc/timer_list zu finden, deine Tickrate ist 300. _________________ Death by snoo-snoo! |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|