Moin,
ich möchte das (wöchentliche/monatliche) Datenvolumen meiner WLAN-Teilnehmer begrenzen.
Die üblichen quelloffenen Firmwares der Router (openwrt, ddwrt) scheinen sowas nicht zu können, geschweige denn die Original-Firmware meines alten TP-Link Routers, auf dem die Opensource-Router-Software läuft.
Da alle intern mit IP-Tables arbeiten, könnte ich direkt über iptables Befehle arbeiten.
Das ist aber mühsam, habe seit Jahren nicht mehr mit iptables gearbeitet.
Meine ganz grobe Idee geht so:
Mit iptables lese ich täglich/stündlich (cronjob) das Datenvolumen gewisser MAC-Adressen aus.
Ein Bashscript wertet die Daten logisch aus und spuckt dann einen passenden iptables-Befehl zum sperren oder freigegeben der Adressen aus.
Kann ich das mit iptables??? Datenvolumen per MAC-Adressen zählen?
Danke für Info, auch wenn mein Problem nicht wirklich Debianspezifisch ist.
Grüße
Solved: Datenvolumen auf MAC-Adresse auslesen und begrenzen
Solved: Datenvolumen auf MAC-Adresse auslesen und begrenzen
Zuletzt geändert von HenningJ am 23.09.2019 16:39:32, insgesamt 1-mal geändert.
Re: Datenvolumen auf MAC-Adresse auslesen und begrenzen
Schreibe für jede MAC, die gezählt werden soll, die Regeln für
- Accept from Internet to mac (Download)
- Accept from mac to Internet (Upload)
jeweils in der FORWARD Kette. Wie genau kannst du hoffentlich selber in der Suchmaschine deiner Wahl rauskriegen. (1)
Dann noch einen cronjob der Regelmäßig
aufruft.
Der erste Befehl gibt alle Ketten und Regeln aus, incl. der Angabe, wieviele Pakete und Bytes je Regel verarbeitet worden sind (die Werte die du haben willst) Das von dir erwähnte Bash-Skript kann darauf aufbauend dann Nutzer ggf. per iptables sperren.
Der zweite Befehl setzt die Counter auf null zurück.
(1) ein Treffer z. b. https://askubuntu.com/questions/317151/ ... -filtering
- Accept from Internet to mac (Download)
- Accept from mac to Internet (Upload)
jeweils in der FORWARD Kette. Wie genau kannst du hoffentlich selber in der Suchmaschine deiner Wahl rauskriegen. (1)
Dann noch einen cronjob der Regelmäßig
Code: Alles auswählen
iptables -L -vn
iptables -Z
Der erste Befehl gibt alle Ketten und Regeln aus, incl. der Angabe, wieviele Pakete und Bytes je Regel verarbeitet worden sind (die Werte die du haben willst) Das von dir erwähnte Bash-Skript kann darauf aufbauend dann Nutzer ggf. per iptables sperren.
Der zweite Befehl setzt die Counter auf null zurück.
(1) ein Treffer z. b. https://askubuntu.com/questions/317151/ ... -filtering
Re: Datenvolumen auf MAC-Adresse auslesen und begrenzen
Ja fätt, @mludwig.
Dank für die ausführlichen Tipps! Das werde ich die Tage mal umsetzen, resp. ausprobieren
*Lach* "iptables -Z" am Ende
ist wie das Amen in der Kirche, erinnere mich dunkel .
Wird aber noch ein paar Tage dauern, muss noch andere Rahmenbendingungen klären und den ganzen ssh-Zugang zum Router noch klarmachen, der ganze Tüdelkram.
Aber das ist ne Sache, die will ich seit Jahren schon, und nun wirds hier im Schrebergarten mit 3-4 Leuten umgesetzt.
Mir fehlen nur die iptables-Befehle, die ich dann im Konkreten googlen werde.
Ich sag dann Bescheid, wie es so läuft.
Dank für die ausführlichen Tipps! Das werde ich die Tage mal umsetzen, resp. ausprobieren
*Lach* "iptables -Z" am Ende
ist wie das Amen in der Kirche, erinnere mich dunkel .
Wird aber noch ein paar Tage dauern, muss noch andere Rahmenbendingungen klären und den ganzen ssh-Zugang zum Router noch klarmachen, der ganze Tüdelkram.
Aber das ist ne Sache, die will ich seit Jahren schon, und nun wirds hier im Schrebergarten mit 3-4 Leuten umgesetzt.
Mir fehlen nur die iptables-Befehle, die ich dann im Konkreten googlen werde.
Ich sag dann Bescheid, wie es so läuft.
SOLVED Datenvolumen auf MAC-Adresse auslesen und begrenzen
Bin ein bisschen weitergekommen, für mich der letzte Schritt der Recherche, jetzt habe ich die Zahlen.
Datenvolumen pro IP-Adresse oder wahlweise
Datenvolumen pro MAC-Adresse
messbar.
Damit habe ich die (fast genaue) Datenmenge (hier: 2460 plus 0 bytes) eines spezifischen Teilnehmers (192.168.8.111) am Wickel
Cool.
Das macht ein Vierzeiler in der /etc/config/firewall:
Diese Rule verändert den Datenfluß nicht ein Stück, sie dient allein dazu, die Bytes auf der Adresse zu zählen. Momentan ist die 8.111 nur als source gelistet, da muss wohl noch ein destination rein.
Obwohl... Uploads der clients ins Netz brauch ich net zählen...
Feintuning kommt noch.
Ein
iptables -L -vn liefert nach dem /etc/config/firewall-Eintrag ; /etc/init.d/firewall restart dann Ergebnisse. Die dann mittels cron alle 10 Min auf Platte geschrieben / aktualisiert werden.
Ich bastel nur noch ein paar Additions / Auswertungsscripte und puhle mit awk die Zahlen aus den Rohdaten raus.
So kann ich allen 4-6 Teilnehmern ein gewisses Kontingent garantieren. Wenn Kontingent erschöpft, gibts ein DENY von iptables und gut.
Ab sofort bekommen meine Töchter nur noch einen Teil des Gesamtvolumens, sonst hamse mir immer das Volumen leergelutscht, die Schlawiner .
Schönes Projekt.
Datenvolumen pro IP-Adresse oder wahlweise
Datenvolumen pro MAC-Adresse
messbar.
Code: Alles auswählen
root@OpenWrt:/tmp# iptables -L -vn|grep 8.111
41 2460 ACCEPT tcp -- * * 192.168.8.111 0.0.0.0/0 /* !fw3: @rule[0] */
0 0 ACCEPT udp -- * * 192.168.8.111 0.0.0.0/0 /* !fw3: @rule[0] */
Cool.
Das macht ein Vierzeiler in der /etc/config/firewall:
Code: Alles auswählen
config rule
option src lan
option src_ip 192.168.8.111
option target ACCEPT
# option target REJECT
# option src_mac 00:00:00:00:00:00
Obwohl... Uploads der clients ins Netz brauch ich net zählen...
Feintuning kommt noch.
Ein
iptables -L -vn liefert nach dem /etc/config/firewall-Eintrag ; /etc/init.d/firewall restart dann Ergebnisse. Die dann mittels cron alle 10 Min auf Platte geschrieben / aktualisiert werden.
Ich bastel nur noch ein paar Additions / Auswertungsscripte und puhle mit awk die Zahlen aus den Rohdaten raus.
So kann ich allen 4-6 Teilnehmern ein gewisses Kontingent garantieren. Wenn Kontingent erschöpft, gibts ein DENY von iptables und gut.
Ab sofort bekommen meine Töchter nur noch einen Teil des Gesamtvolumens, sonst hamse mir immer das Volumen leergelutscht, die Schlawiner .
Schönes Projekt.