
Ip-Accounting mit ipchains
Datum: Sonntag, 26.Mai. @ 00:01:50 CEST Thema: Netzwerke
Netzwerklasten auswerten
Vorwort :
Wenn es Sie schon immer interessiert hat was für Daten und in welchen Umfang Sie über ein Netzwerkinterface übertragen werden, Sie aber keine zusätzlichen Programme installieren wollen, werden sie sich schnell mit dem IP-Accounting von Daten mit Bordmitteln auseinandersetzen müssen. Das wird sich spätestens dann bemerkbar machen, wenn sie sich einen neuen Server aufstellen wollen und wissen müssen wie er ausgestattet ist.
Ziel dieses Mini Tutorials :
ist die schnelle Einführung in das Ip Accounting mit ipchains.
Voraussetzungen:
In diesem Tutorial wird davon ausgegangen, dass Ihnen der Syntax von ipchains bekannt sind. Desweiteren sollten Sie Grundkenntnise über das Erstellen von Shellscripten haben.
IP-Accounting mit ipchains: (Kernel 2.2.x)
Da ich Ihnen hier das Accounting mit ipchains beschreibe, dürfte Ihnen, wenn sie eine Firewall damit betreiben, der Syntax bekannt vorkommen:
ipchains -A chain Regel
Beachten sollte man bei diesen Beispiel nur, dass man beim Accounting keine "Policy Regeln" angibt, es sei denn, sie benutzen selbst defienirte Ketten!
Nehmen wir mal an Sie wollen wissen wieviele Daten von Ihren Rechner aus übertragen werden... Sie besitzen eine Netzwerkarte und eine Internetverbindung mit einen Modem. Um festzustellen wieviele Daten Ihr Modem durchlaufen, würden wir folgenden Syntax verwenden:
ipchains -A input -i ppp -d 127.0.0.1
ipchains -A output -i ppp -s 127.0.0.1
Für die Netzwerkarte :
ipchains -A input -i eth0 -d 127.0.0.1
ipchains -A output -i eth -s 127.0.0.1
Um uns das Ganze anzeigen zu lassen, geben wir folgendes in die Komandozeile ein:
ipchains -L -x -v
Das Ergebnis kann man auch ganz einfach mit einer "pipe" an sendmail übergeben und an die eigene E-Mailadresse senden.
ipchains -L -x -v | sendmail -m waldemar@domain.com
Natürlich kann man die Accounting Funktionen noch erweitern indem man die Bytes zwischen zwei Netzen zählt.
ipchains -A forward -s 192.168.1.0/24 -d 192.168.44.0/24 -b
Wenn wir nun die Bytes anhand von Service Ports bestimmen wollen, brauchen wir in unseren script nur das Protokol angeben.
Für FTP eine Ftp Verbindung:
ipchains - A input -i ppp -p tcp -s 0/0 ftp-data:ftp
oder für Smtp:
ipchains -A input -i ppp -p tcp -s 0/0 smtp
Beispiel Script:
Anmerkung zu dieses Script: Beachten sie, dass ich hier mit selbst definierten Ketten gearbeitet habe!
#!/bin/sh
#Ip Statistik für FTP ,SMTP und WWW
ipchains -N a-std
ipchains -N a-and
ipchains -A a-std -j ACCEPT
ipchains -A a-and -j ACCEPT
ipchains -A forward -i ppp0 -p tcp -s 0/0 ftp-data:ftp -j a-std
ipchains -A forward -i ppp0 -p tcp -s 0/0 smtp -j a-std
ipchains -A forward -i ppp0 -p tcp -s 0/0 www -j a-std
ipchains -A forward -i ppp0 -j a-and
Erläuterungen zu Script:
ipchains -N a-std
ipchains -N a-and
ipchains -A a-std -j ACCEPT
ipchains -A a-and -j ACCEPT
Hier erzeugen wir zwei Ketten in denen wir die Daten sammeln, wobei a-stp zum zählen von Service Ports genutzt wird und in a-and die anderen Verbindungen auswertet!
ipchains -A forward -i ppp0 -p tcp -s 0/0 ftp-data:ftp -j a-std
ipchains -A forward -i ppp0 -p tcp -s 0/0 smtp -j a-std
ipchains -A forward -i ppp0 -p tcp -s 0/0 www -j a-std
hier weisen wir der Kette die zu zählende Service Ports zu.
ipchains -A forward -i ppp0 -j a-and
Als letztes zählen wir die restlichen Verbindungen.
Accounting von icmp Datagrammen:
Da icmp nichts mit Portnummern zutun hat, sondern mit Icmp-type, müssen wir den Typ bestimmen, der gezählt werden soll. Als Beispeil nehmen wir das Jedem bekannte ping (ping 1.1.1.1)
Für die Ping Anfragen ECHO REGUEST: (type 8)
ipchains -A forward -p icmp -s 0/0 8
und die Antworten ECHO REPLY
ipchains -A forward -p icmp -s 0/0 0
Accounting anhand von Protokollen:
Um zu bestimmen welches Volumen an Trafic von welchen Protokoll verursacht wird, nutzen wir diese Regeln:
Für Tcp :
ipchains -A forward -i eth0 -p tcp -d 0/0
oder udp :
ipchains -A forward -i eth0 -p udp -d 0/0
Sollten Sie hierzu noch Fragen haben, stellen Sie sie doch im Forum!
|
|