1

Utiliser iptables pour monitorer la bande passante

Récemment j'ai acheté un Linksys E4200, la rolls des routeurs grand-public du moment (2,4 et 5Ghz à 300Mbits, port USB, processeur puissant) en espérant pouvoir y mettre mon firmware alternatif préféré : DD-WRT. Seulement voilà, je n'étais pas au courant que Linksys avait sorti une version 2 de ce modem (E4200v2) qui à cause de ses chipsets Marvell est (sans aucune raison logique) totalement incompatible avec DD-WRT, ainsi que OpenWRT ou Tomato pour ce que ça vaut.

Il marche très bien avec le firmware de base, mais récemment j'ai remarqué que la bande passante du kot était fortement monopolisée par un de mes cokotteurs. Rien dans l'interface d'administration du routeur ne me permet de l'identifier mais une "faille" m'a permis d'installer un serveur SSH sur ce petit boitier Linux.

IPtables

Une fois connecté en SSH j'ai de nouveau été déçu par la quantité fort limitée d'utilitaires disponibles mais un m'a tapé dans l'oeil : iptables. J'ai quand même passé plusieurs heures à essayer de cross-compiler iftop sans succès avant de me résoudre à scripter pour exploiter iptables.

J'ai remarqué que de base la configuration iptables est très touffue mais deux chains sont très intéressantes : lan2wan et wan2lan (LAN = réseau local, WAN = internet). Aucun soucis pour différencier l'upload du download donc !

Nouvelles chains

J'ai simplement créé une chain pour chacun des ordinateurs du réseau et l'ai liée à la bonne "parent chain" :

# iptables -N Omega
# iptables -A lan2wan -s 192.168.42.70 -j Omega
# iptables -A wan2lan -d 192.168.42.70 -j Omega
(répété pour chaque poste)

Il m'est maintenant très facile d'obtenir l'upload :

# iptables -nvL lan2wan
Chain lan2wan (1 references)
 pkts bytes target     prot opt in     out     source               destination        
58559 6201K lan2wan_plugins  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
51917 4544K Omega      all  --  *      *       192.168.42.70        0.0.0.0/0          
 6218 1581K Sigma      all  --  *      *       192.168.42.69        0.0.0.0/0          
  105  9834 Kappa      all  --  *      *       192.168.42.116       0.0.0.0/0          
   40 10992 Theta      all  --  *      *       192.168.42.138       0.0.0.0/0

Ou le download :

# iptables -nvL wan2lan
Chain wan2lan (1 references)
 pkts bytes target     prot opt in     out     source               destination        
 124K  163M wan2lan_plugins  all  --  *      *       0.0.0.0/0            0.0.0.0/0          
 117K  159M Omega      all  --  *      *       0.0.0.0/0            192.168.42.70      
 6905 4160K Sigma      all  --  *      *       0.0.0.0/0            192.168.42.69      
   87 17925 Kappa      all  --  *      *       0.0.0.0/0            192.168.42.116      
   27  7452 Theta      all  --  *      *       0.0.0.0/0            192.168.42.138

Et à coups de grep et awk, je peux aussi générer un joli petit tableau :

      Host      Up    Down
     Omega   4984K    167M
     Sigma   1617K   4174K
     Kappa    9834   17925
     Theta   22396   15332

Voilà, une petite astuce simple donc pour surveiller un minimum mon réseau. À noter que si votre routeur ne possède pas les chains wan2lan et lan2wan, vous devrez sans doute vous accrocher à FORWARD (ou INPUT/OUTPUT ou encore PREROUTING/POSTROUTING) et créer deux chains par machine : une pour l'upload et l'autre pour le download.

Et finalement si vous voulez remettre à zéro les compteurs :

# iptables -Z wan2lan
# iptables -Z lan2wan

Enjoy!

Source principale : http://www.leftlogical.net/How-Tos/iptables_bandwidth_monitoring.html

  1. de app ondersteunt i - OS4 multitasking , dat houdt verbindingen naar chatrooms
    geopend gedurende 10 minuten na de app gaat in de achtergrond .

    Touring met Morgan Pagina we soort van gewoon alle werkende spullen bij elkaar nu .
    Spots is video chatten op sociale netwerksites goed gedaan en biedt snelle -
    streaming live chatten , werkt uitstekend met Google
    + ' s Circles voorzien die het mogelijk maakt te communiceren met
    specifieke groepen van vrienden , ondersteunt multi - chats en schakelt zelfs tussen verschillende vrienden - afhankelijk van wie aan het praten is op
    het moment .