Iptables/Traffic

Od HLDS.pl
Wersja PawelS (dyskusja | edycje) z dnia 20:50, 28 wrz 2009
(różn.) ← poprzednia wersja | zobacz aktualną wersję (różn.) | następna wersja → (różn.)
Skocz do: nawigacji, wyszukiwania

Simple Traffic Logger

Tworzymy nowy łańcuch:

# iptables -N TRAFFIC

Podpięcie łańcucha odpowiedzialnego za ruch do nowo utworzonego FORWARD w przypadku bramy i/lub routera, opcjonalnie można dołożyć INPUT i OUTPUT:

# iptables -I FORWARD -j TRAFFIC

Możemy także zrobić to po sieciówkach, jeżeli mamy jedną odpowiedzialną za wszystko to będzie to wyglądać tak:

# iptables -A TRAFFIC -o eth0 # upstream
# iptables -A TRAFFIC -i eth0 # downstream

Co zliczamy? TCP? UDP? ICMP? A może coś bardziej konkretnego? No to bierzemy się za ruch WWW (HTTP requests and response):

# iptables -A TRAFFIC -p tcp -m multiport --ports www

Możemy także zrobić tak samo z mailami, a więc:

# iptables -A TRAFFIC -p tcp -m multiport --ports pop3,smtp

Można także z konkretnym portem, czyli:

# iptables -A TRAFFIC -p tcp --sport 31337

Listing naszego łańcucha:

# iptables -L TRAFFIC -nvx

Zerowanie naszego łańcucha:

# iptables -Z TRAFFIC

Wyświetla adresy IP i ilość ruchu w bajtach:

# iptables -L TRAFFIC -nvx | awk '$1 ~ /^[0-9]+$/ { printf "Adres IP: %s, %d bajtów\n", $8, $2 }'

Możemy to wszystko trochę bardziej zautomatyzować i przy okazji skomplikować, a więc dodajemy prosty skrypcik do crona, niech się wykonuję raz na godzinę. Zależnie od tego jak bardzo chcemy mieć dokładne dane ten czas możemy zmieniać zależnie od potrzeb.

Tworzymy plik Traffic.sh:

touch Traffic.sh

I zamieszczamy w nim poniższy skrypt:

#!/bin/sh
date >> ~/Traffic.dat
iptables -L -Z TRAFFIC -nvx >> ~/Traffic.dat

Co dalej? Może jakiś eksport do bazy danych? Jakieś wykresy?

Scripts

Osobiste
Przestrzenie nazw
Warianty
Działania
HLDS.pl - Menu:
Inne
IRC
Inne sekcje:
Znajomi:
Narzędzia