Linux – zliczanie ruchu

Zajmuje się tym (no proszę zgadnąć…) iptabels i jego reguły zliczania (brawo proszę państwa, już się państwo uczą…)

Zliczanie pakietów wychodzących i wchodzących najlepiej jest zrobić na routerze. Wykorzystując iptables (czyli jądro 2.4) wpisujesz regułki typu

iptables -A lancuch reguly_okreslające_kogo_tycza

np.

iptables -A FORWARD -s 192.168.1.1

Jak widzisz doda to regułę do łańcucha FORWARD, ponieważ nie ma wskazanego żadnego celu ( -j ) to automatycznie zacznie zliczać pakiety. Wskazaliśmy tylko stację źródłową czyli skąd pakiet idzie, podobnie możesz zrobić wskazując _dokąd_ pakiet idzie (-d 192.168.1.1) W wyświetlaniu reguł powinieneś mieć coś takiego:

gateway:root# iptables -L FORWARD -n Chain FORWARD (policy ACCEPT) target     prot opt source               destination                 all     --  192.168.1.2          0.0.0.0/0                 all     --  192.168.1.3          0.0.0.0/0                 all     --  192.168.1.1          0.0.0.0/0

I tak bedzie to zliczało ruch.

Wyświetlanie liczników

Najprostszy sposób obejrzenia wartości liczników to wydanie polecenia: iptables -L -v np.

gateway:root# iptables -L FORWARD -v -n Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)  pkts bytes target     prot opt in     out     source    destination     0     0            all  --  *      *       192.168.1.2 0.0.0.0/0     0     0            all  --  *      *       192.168.1.3 0.0.0.0/0     0     0            all  --  *      *       192.168.1.1 0.0.0.0/0

Gdy chcesz dokładne wyniki dodaj przełącznik -x

Zerowanie liczników

Liczniki zerujemy całkiem prosto. służy do tego przełącznik -Z Np.

gateway:root# iptables -L FORWARD -Z -n Chain FORWARD (policy ACCEPT) target     prot opt source               destination            all  --  192.168.1.2          0.0.0.0/0            all  --  192.168.1.3          0.0.0.0/0            all  --  192.168.1.1          0.0.0.0/0

Praktyczne zastosowania

Jeżeli masz dużo hostów to użyj skryptu go generowania zasad dotyczących zliczania (albo copy-past). Pamiętaj iż możesz później użyć skryptów iptables-save (zapisuje bieżące ustawienia iptables) i iptables-restore (przywraca zapisane ustawienia). Statystki najlepiej zapisywać do osobnego pliku przy pomocy crona, z jednoczesnym czyszczeniem statystyk. np.

59  23 * * * iptables -L FORWARD -v -n > `date +"%d_%m".txt; iptables -L FORWARD -Z

 

Spowoduje to codziennie dokładnie o 23:59 zapisanie statystyk do pliku z bieżącą datą i automatycznie wyczyści liczniki…

Odpowiedzi do ćwiczeń

ćwiczenie 2 (zliczanie ruchu)

Jeżeli Państwa adres to: 192.168.1.15 a adres IP komputera nauczycielskiego to 192.168.1.2 to regułki spełniające warunki to:

  • iptables -A FORWARD -s 192.168.1.15
  • iptables -A FORWARD -s 192.168.1.15 -d 192.168.1.2
  • iptables -A FORWARD -d 192.168.1.15 -dports 80
  •  

    Dodaj komentarz