Fév 09 2010
Afficher les Stats Réseau sur Linux avec IPtables
Comme tout bon firewall, iptables est aussi capable d’afficher des statistiques réseau. L’option -v (–verbose) associée à –list (-L) permet d’afficher les compteurs de paquets et d’octets. Les stats réseau sont disponibles pour chacune des règles iptables. En voici un exemple appliqué à la chaîne INPUT:
[stats@serveur_linux]$ sudo iptables -nvL INPUT
Chain INPUT (policy DROP 74941 packets, 7900K bytes)
pkts bytes target prot opt in out source destination
1392K 543M ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
1179K 680M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
10 524 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
25 1200 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21
5372 260K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
5842 280K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306 /* Mysql */
97 4536 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:9999 /* APP */
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:69 /* TFTP */
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:161 /* SNMP requests */
73 4380 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
Dans cet exemple, la règle avec l’état RELATED et ESTABLISHED pourrait être démultipliée par port pour obtenir des chiffres plus précis.
Ce n’est pas la peine de redémarrer le service iptables pour remettre les compteurs de paquets et de bytes à zéro, l’option -Z ou –zero est là pour s’en charger:
[stats@serveur_linux]$ sudo iptables -Z INPUT
[stats@serveur_linux]$ sudo iptables -nvL INPUT
Chain INPUT (policy DROP 74945 packets, 7901K bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
7 436 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306 /* Mysql */
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:9999 /* APP */
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:69 /* TFTP */
0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:161 /* SNMP requests */
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 8
En plus de faire son travail de firewall et, même si vous ne vous en servez pas pour filtrer, iptables peut aider à identifier plus précisément la source du trafic réseau ou simplement fournir des statistiques réseau sur ce qui entre et sort des serveurs.