Hi, On Wed, 19 Oct 2005 13:17:04 +0200 Raffael Schmid <raffael.schmid@yup.ch> wrote:
# iptables -vxnZL INPUT (Anzeigen der Byte-Counter und Rückstellen auf 0) tönt gut... aber:
dn1:~ # iptables -vxnZL INPUT Bad argument `INPUT' Try `iptables -h' or 'iptables --help' for more information.
Mist bei mir auch, ich hatte mich da auf die Manpage verlassen. Dann musst du -Z und -L hintereinander machen (wobei du natürlich möglicherweise ein paar Byte verlierst, da die beiden Aktionen nicht in eins ausgeführt werden): # iptables -vxnL INPUT # iptables -Z INPUT
dn1:~ # iptables -vxnL INPUT Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 9232 723003 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 90 12678 ACCEPT udp -- eth1 * 0.0.0.0/0 0.0.0.0/0 state NEW,RELATED,ESTABLISHED udp dpts:137:138 3 984 DROP all -- eth0 * 0.0.0.0/0 255.255.255.255 0 0 DROP all -- eth0 * 0.0.0.0/0 213.196.133.255 0 0 DROP all -- eth2 * 0.0.0.0/0 255.255.255.255 71 8455 DROP all -- eth2 * 0.0.0.0/0 192.168.7.255 7868 638867 input_ext all -- eth0 * 0.0.0.0/0 0.0.0.0/0 0 0 input_dmz all -- eth2 * 0.0.0.0/0 0.0.0.0/0 0 0 input_int all -- eth1 * 0.0.0.0/0 0.0.0.0/0 0 0 LOG all -- eth1 * 0.0.0.0/0 213.196.133.5 LOG flags 6 level 4 prefix `SFW2-IN-ACC_DENIED_INT ' 0 0 DROP all -- eth1 * 0.0.0.0/0 213.196.133.5 0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- * * 0.0.0.0/0 213.196.133.5
hoffentlich könnt Ihr das so lesen... Was mache ich falsch?
Hm, nix? Da steht doch schon alles drin?!? Allerdings recht verteilt, das kann aber schon sein, wenn man sich seine iptables nicht explizit zum "Traffic-Messen" eingerichtet hat (dann würde man wohl mit "iptables -N ACCEPT-count", "iptables -A ACCEPT-count -j ACCEPT" eine neue Table aufmachen und nur die auswerten. Statt "-j ACCEPT" kann man dann in allen anderen Regeln eben "-j ACCEPT-count" schreiben. Alternativ kannst du auch einfach die wichtigen Zeilen aus dem Ergebnis oben herausschneiden und summieren. Deine zweite Regel oben fängt ja den Samba-Traffic auf, wenn du also den analysieren willst, reicht dir ja diese Zeile. Ein warnendes cron-Skript sähe dann so aus: ---snip--- #!/bin/sh ADMINEMAIL=root@localhost TRAFFICMAX=5000000000 BYTECOUNT=$(iptables -vnxL INPUT | awk 'FNR==4 { print $2 }') iptables -Z INPUT if [ $BYTECOUNT -ge $TRAFFICMAX ]; then sendmail $ADMINEMAIL <<EOT Subject: Traffic Warning! Hi, wir haben mehr als $TRAFFICMAX bytes empfangen! . EOT fi ---snip--- kann man natürlich noch gut erweitern, aber so für die Idee schonmal... Gruß, -hwh