Iftop : visualisation en temps réel des connexions
Lors d'une de mes vadrouilles à la recherche d'outils de monitoring, je suis tombée sur un que je ne connaissais pas et qui simplifie pas mal la vie : il s'agit de iftop.
Iftop permet d'afficher à la manière de top l'état des connexions.
Son fonctionnement est le suivant : il écoute le trafic réseau sur une interface donnée ou sur la première qu'il détecte si aucune n'est spécifiée. Il en déduit et affiche la table de l'utilisation de la bande passante, organisée par paire d'host (une source, une destination).
Iftop peut également prendre en argument des expressions afin de filtrer le trafic. Ces expressions peuvent porter sur le sous-réseau, les IP, les ports, les protocoles, bref les éléments principaux d'un paquet.
Un exemple de filtrage pour visualiser toutes les communications destinées au port 22 :
$ ifport -f "port 22" 12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kb ???????????????????????????????????????????????????????????????????????????? *:39957 => *:ssh 640b 928b 1.37Kb <= 2.12Kb 3.08Kb 5.11Kb ???????????????????????????????????????????????????????????????????????????? TX: cumm: 22.2KB peak: 7.66Kb rates: 640b 928b 1.37Kb RX: 66.0KB 29.1Kb 2.12Kb 3.08Kb 5.11Kb TOTAL: 88.2KB 36.8Kb 2.75Kb 3.99Kb 6.48KbPour pouvoir monitorer tout le trafic, il doit pouvoir tourner sous un utilisateur ayant les privilèges de le faire, et comme qui peut le plus peut le moins, root fera très bien l'affaire. Par défaut, iftop opérera la résolution des IP; ce qui implique une surcharge du réseau et donc d'apparaître dans le monitoring. Pour éviter ce cas de figure, il est possible de spécifier à iftop un filtre qui écarterait ce type de trafic, pour tel host et tel service. On peut également mentionner explicitement la non résolution des adresses dynamiquement (R), ou bien au lancement de la commande (-n).
Installation
Ce qui est bien avec ce petit utilitaire, c'est qu'il est intégré dans la plupart des distributions. Il est donc facile de passer outre l'installation manuelle des dépendances en jouant avec votre gestionnaire de package favori. Néanmoins, pour ceux qui n'auraient pas cette chance, ou bien qui désirent être au plus prêt du code original, il est possible de rapatrier les sources du projets. L'installation pour les puristes du genre sera donc :$ wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz $ tar zxf iftop-0.17.tar.gz && cd iftop-0.17 $ ./configure && make $ make installEt hop ! C'est installé !
Un peu de pratique ?
Ici, dynamiquement, nous avons demandé de masquer la source et la destination, mais sachez que par défaut, l'ensemble des connexions et des IP source et destination s'afficheront devant vous (sinon ce ne serait pas intéressant). Juste à titre d'information, les options que j'utilise sont :- -p : port display
- -n : pas de hostname lookup
- -N : pas de résolution du numéro de port
$ iftop -p -N -n * :8116 => *:8116 0b 0b 0b <= 1.44Mb 1.50Mb 1.38Mb * :49756 => *:8100 266Kb 275Kb 255Kb <= 0b 0b 0b * :2152 => *:2152 0b 0b 0b <= 8.50Kb 3.99Kb 3.29Kb * :138 => *:138 0b 0b 0b <= 6.98Kb 3.41Kb 1.31Kb * :8200 => *:8200 2.75Kb 2.54Kb 2.54Kb <= 0b 0b 0b * :137 => *:137 0b 0b 0b <= 1.52Kb 1.95Kb 1.20Kb * :49449 => *:8649 5.77Kb 1.15Kb 312b <= 0b 0b 0b * :46706 => *:8649 0b 1.02Kb 377b <= 0b 0b 0b * :17500 => *:17500 0b 0b 0b <= 1.09Kb 922b 839b * :696 => *:2049 0b 483b 1.70Kb <= 0b 406b 714b * :35999 => *:8649 0b 858b 231b <= 0b 0b 0b * :37316 => *:8649 0b 723b 312b <= 0b 0b 0b ?????????????????????????????????????????????????????????????????????????????? TX: cumm: 454KB peak: 66.4Kb rates: 160b 1.42Kb 17.6Kb RX: 67.5MB 2.61Mb 1.74Mb 1.79Mb 1.76Mb TOTAL: 67.9MB 2.68Mb 1.74Mb 1.80Mb 1.77Mb