• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

iptables: problem mit quota und expire

Epfi

Newbie
Moin :)

Habe den Plan mir ein Webinterface zu bauen, wo ich über einen Skriptaufruf bestimmten IPs im Netzwerk zugriff aufs Internet gewähren kann. Das ganze soll es dann in zwei Versionen geben - einmal mit einem zeitlimit und dann noch mit einem trafficlimit.

Also hab ich mir mal quota und expire aus dem patch-o-matic-ng base repository installiert. Oder es zumindest versucht. Expire kann im iptables nicht kompiliert werden, ungefähr 10-20 Fehler. Und das ist das erste problem mit expire.

Das andere Problem hab ich mit quota. Das lässt sich problemlos in den Kernel backen, iptables meckert auch nicht beim kompilieren und installieren.

$IPT -A FORWARD -j ACCEPT -i $INT -m quota --quota $LIMIT -s $USER

($LIMIT: Das trafficlimit; wird beim skriptaufruf übergeben. $USER: IP des users, der freigeschalten werden soll, wird auch übergeben)

Dieser aufruf bringt mir aber nur ein iptables: Unknown error 4294967295 und keine neue Regel. Und das war auch schon das zweite Problem, quota funktioniert einfach nicht...

System und vorgehen:
Debian, 5 tage jung (testing)
Kernel 2.6.12, quellen über apt geholt
iptables-1.3.4-20051114 (snapshot)
patch-o-matic-ng-20051112 (snapshot)
iptables und patch-o-matic-ng beide von ftp.netfilter.org

Kernel wurde mit make-kpkg gebacken und installiert. In der iptables.c und noch ner anderen datei wollten noch ein, zwei zeilen entfernt werden, weil da IPT_F_GOTO (oder so ähnlich) verwendet wurde, was aber nicht gesetzt war...

Irgendwie hab ich das gefühl, dass ich auf dem falschen ftp gelandet bin, allein, dass ich noch in der iptables.c rumfrickeln muss kanns ja nicht wirklich sein und die nicht-snapshot versionen sind noch von 2004...

Oder ist netfilter.org ganz einfach eingeschlafen und keiner kümmert sich mehr drum? Die HowTos auf der Seite sind ja auch schon seit mehr als nem Jahr nicht mehr aktuell...


EDIT: hoppla - bin ja in nem suseforum gelandet und ich wunder mich grad, warum hier alle suse benutzen *g* Das Problem besteht aber trotzdem noch, denke mal nicht, dass es debian-spezifisch ist ;) make-kpkg baut ein paket, mit dem ich den kernel übers paketmanagement installieren kann, nur zur information, der rest sollte sich wohl nicht unterscheiden...
 

Frankie777

Advanced Hacker
Wäre es nicht einfacher die Zeitschranke mit timestop zu realisieren und die bytes einfach auszulesen und zu vergleichen.
 
OP
E

Epfi

Newbie
time ist natürlich auch ne möglichkeit, hatte ich auch schon angedacht - mit expire wärs halt einfacher gewesen, weil ich dann nicht noch extra die auslauf-zeit "berechnen" muss... Muss ich aber auch erst extra mitm patch-o-matic reinbacken, oder?

Wie meinste das mit dem Bytes auslesen? Die lage ist die, dass da bis zu 200 leute getrennt voneinander gesetzte regeln bekommen können - soll für ne LAN-party sein. Also einfach mit ifconfig die übertragenen bytes raus-grep-pen klappt nicht... Oder kann iptables auch von selbst bytes zählen?
 

Frankie777

Advanced Hacker
die time Funktionen sollten drin sein..

Volumen aus /proc/net entnehmen
In iptables -L -v tauchen Sie schließlich auch pro Regel auf.

Ich wollte demnächst auch so ein Tool über Volumen -d ! LAN pro IP schreiben. Die squid Auswertungen reichen mir nicht.

Oder Du schaust in einem der diversen Traffic Tools nach, wie die das gelößt haben. Die setzen schließlich auch nur iptables Befehle ab und werten die dann aus.
 
OP
E

Epfi

Newbie
time kennt er bei mir noch nicht - weder der kernel noch iptables... Werds *mal eben* reinbacken und schauen, ob das geht.

EDIT: Kernelpatch für time geht natürlich auch nicht... Wo bekommst Du denn dein iptables (bzw. die kernelpatches) her? ftp.netfilter.org? Und welches da? Irgendwie hab ich das gefühl ich bin aufm falschen server, kann ja nicht sein, dass 2/3 aller getesteten sachen nicht funktionieren - oder ist das 'testing' bzw. 'unstable' wirklich mal ernst gemeint da? ;)

iptables -L -v sieht schonmal sehr gut aus. Da sollte sich ja was rausholen lassen. Ist aber trotzdem ungleich aufwändiger als mit quota, weil ich ja noch ständig werte auslesen muss und mit dem erlaubten vergleichen und dann ggf. die regel wieder löschen muss... Quota wär halt nen Einzeiler gewesen und wenn einer auf die Idee kommt, dass er während die alte Regel noch greift doch mehr runterladen will, wärs vermutlich auch ganz einfach erweiterbar gewesen, das wird so leicht wirr... :/


Ganz so versiert, dass ich irgendwelche tools analysier bin ich dann doch nicht, aber vielleicht findet sich ja tatsächlich was, was ich da verwerten kann...
 

Frankie777

Advanced Hacker
Stimmt es ist nicht dabei.
libipt_time.so fehlt schlicht.

Hast Du mal stable aus 2004 ausprobiert, soll auch für kernel 2.6 sein.
 
OP
E

Epfi

Newbie
lol, nicht zu glauben... mit iptables v1.2.10 geht quota einwandfrei - sogar noch schöner als ich erwartet hab. Mit iptables -L -v sagt er gleich noch an, wieviel noch übrig ist...

Nun hab ich nur noch ein ganz tolles problem... time gibt mir fehler beim kernel backen, expire lässt sich nicht ins iptables kompilieren... also hab ich weder das eine noch das andere zur verfügung... Werd da aber noch ein bisschen weiterfrickeln...

Danke auf jeden fall für den tipp mit der alten version, jetzt geht wenigstens schonmal die hälfte :)


EDIT: Der fehler beim iptables kompilieren war -bei genauerer betrachtung- nur im ipv6-expire drin (kernelmodul ist drin), nach dem rausnehmen hat er es dann ordentlich zusammengebacken mit folgendem resultat: ./fw_zeitlimit: line 11: 12074 Speicherzugriffsfehler
 
Oben