Monitoring réseau en temps réel avec IPTraf

Page 1 / 1

Iptraf est un programme de monitoring réseau qui vous permettra d'analyser le trafic réseau entrant et sortant de votre serveur, mais aussi d'analyser le trafic de votre réseau local.

Ce programme vous permettra de :

  • détecter des attaques DDOS et de connaitre l'adresse IP de l'attaquant (à moins que le pirate n'utilise un botnet pour son attaque DDOS).
  • trouver qui utilise le plus la bande passante de votre réseau ou de la connexion Internet.
  • détecter l'utilisation des logiciels de partage de fichiers (qui sont gourmands en trafic réseau) comme : eMule, Bittorrent, ... *

* Vous pouvez aussi tenter de bloquer ce type de programme en transformant votre serveur en routeur. Ensuite, il suffira d'autoriser uniquement les ports principaux (80 : HTTP, 443 : HTTPS, 21 : FTP, ...). Cette solution n'est pas sûre à 100% mais cela bloquera l'utilisation de ces programmes par la plupart des utilisateurs.

Attention : Ce programme ne fonctionnera pas si vous l'exécutez dans une machine virtuelle créée via OpenVZ (si vous avez une interface "venet", cela ne fonctionnera pas). Donc, ce programme ne fonctionnera pas sur les VPS Classic d'OVH.

 

  1. Installer Iptraf
  2. Analyser le réseau de votre serveur
  3. Configuration d'Iptraf
  4. Aperçu des options "Reverse DNS lookups" et "TCP/UDP service names"
  5. Aperçu du mode de promiscuité (Force promiscuous mode)
  6. Enregistrement de l'historique réseau (Logging)
  7. Inclure les adresses MAC des périphériques réseau
  8. Statistiques générales d'une carte réseau (General interface statistics)
  9. Statistiques détaillées d'une carte réseau (Detailed interface statistics)
  10. Statistical breakdowns
    1. By packet size (statistiques par taille de paquets)
    2. By TCP/UDP port (statistiques par port TCP/UDP)
  11. Surveillance du réseau local (LAN station monitor)
  12. Les filtres (Filters)

 

1. Installer Iptraf

Pour installer Iptraf, il suffit d'installer le paquet "iptraf".

Bash

apt-get install iptraf

 

2. Analyser le réseau de votre serveur

Pour analyser le réseau de votre serveur, lancez iptraf :

Bash

iptraf

Ensuite, sélectionnez "IP traffic monitor".

Sélectionnez l'interface à "écouter" parmi la liste :

  • All interfaces : toutes les interfaces réseau de la machine ou du serveur
  • lo (loopback) : boucle locale (l'adresse IP "127.0.0.1").
  • eth0 : la carte réseau Ethernet (carte réseau câblée).
  • wlan0 : la carte réseau Wifi (sans-fil)

Nous avons laissé tourner le programme pendant quelques minutes pour vous donner un aperçu du programme :

Dans la partie supérieure, vous verrez les connexions "TCP" (mode connecté) :

  • le client "10.0.0.3:49197" (IP : 10.0.0.3 / Port 49197) est connecté sur notre serveur ssh (IP : 10.0.0.9 / Port 22). En l'occurrence, nous sommes connectés en ssh sur notre serveur. IP Client "10.0.0.3" (donc port aléatoire) - IP Serveur "10.0.0.9" (donc port 22).
    Pour ne pas influencer l'analyse du réseau, vous devriez vous connecter via une interface réseau dédiée à l'accès à distance. En effet, le nombre de paquets monte très vite, car nous recevons les statistiques en tant réel via notre connexion ssh. C'est le principe du serpent qui se mord la queue.
  • ce même client est connecté sur notre serveur FTP (port 21) mais il ne l'utilise presque pas. (seulement 53 paquets)

Dans la partie inférieure, vous verrez les paquets "UDP" (mode déconnecté) :

  • notre routeur (IP : 10.0.0.1) passe son temps à envoyer des paquets à l'adresse IP de broadcast (pour que ce paquet soit envoyé à toutes les machines du réseau).
  • la personne ayant l'adresse IP 10.0.0.3 ping notre serveur (IP : 10.0.0.9) / ICMP echo req ... Et notre serveur lui répond / ICMP echo rply. Si le ping provient toujours de la même adresse IP, il peut s'agir du serveur de monitoring de votre hébergeur ou d'un pirate qui effectue une attaque DDOS contre votre serveur.

Note : les lignes vont par paires. Ex : Les lignes "10.0.0.9:22" et "10.0.0.3:49197" permettent de savoir qu'il y a une connexion entre ces points réseau. Le ":" sépare l'adresse IP du port.

 

3. Configuration d'Iptraf

Dans le menu d'Iptraf (au lancement de celui-ci), allez dans "Configure".
Dans la configuration, vous pourrez :

  • Reverse DNS lookups : tenter de résoudre automatiquement les adresses IP en nom de domaines.
  • TCP/UDP service names : afficher les noms des ports (ex : ssh, ftp, http, ...) au lieu des numéros de ports (ex : 22, 21, 80, ...).
  • Force promiscuous mode (en français : mode de promiscuité) : par défaut (état : Off), la carte réseau n'accepte que les paquets qui lui sont destinés ou qu'elle envoit. Si vous voulez analyser toutes les connexions du réseau (si l'équipement réseau utilisé vous le permet), vous devez activer ce mode promiscuité.
  • Color : Permet d'activer la coloration ou non.
  • Logging : permet d'enregistrer le monitoring du réseau dans un fichier.
  • Activity mode : il s'agit de l'unité à utiliser (kbits/s ou kbytes/s). En sachant qu'un octet (un byte en anglais) est égal à 8 bits.
  • Source MAC addrs in traffic monitor : permet d'afficher l'adresse MAC correspondant à l'adresse IP source dans la partie inférieure du programme.
  • Timers
    • TCP timeout : permet de définir après combien de temps une connexion est considérée comme inactive
    • Logging interval : permet de définir l'intervalle de temps entre 2 sauvegardes de l'historique
    • Screen update : permet de définir l'intervalle de temps du rafraichissement des données affichées en temps réel.
    • TCP closed/idle persistence : permet de définir après combien de temps une connexion fermée doit disparaitre de l'écran.
  • Additional ports / Delete port/range : permet d'ajouter ou de supprimer des ports à surveiller.

 

4. Aperçu des options "Reverse DNS lookups" et "TCP/UDP service names"

Comme vous pouvez le voir :
- notre machine qui avait l'adresse ip 10.0.0.9, possède le nom de domaine "debian.local".
- le client "10.0.0.3" est connecté sur notre serveur SSH (port 22).
- le client "10.0.0.3" est connecté sur notre serveur FTP (port 21).

 

5. Aperçu du mode de mode de promiscuité (Force promiscuous mode)

Comme vous pouvez le voir :
- il y a une machine nommée "lionel-PC" sur le réseau
- le client "10.0.0.3" est connecté à notre serveur ssh
- la machine de lionel-PC est connectée à un serveur de messagerie instantanée fonctionnant avec XMPP
- l'utilisateur de la machine "lionel-PC" est actuellement connecté au serveur de facebook sur le port 443 (protocole https)
- Etc.

 

6. Enregistrement de l'historique réseau (Logging)

Si vous activez l'option "Logging", l'historique réseau sera enregistré en temps réel dans le fichier spécifié lors du choix du type de monitoring (IP traffic monitor, lan station monitor, ...).
Note : Il est recommandé d'indiquer un nouveau chemin à chaque fois pour éviter d'écraser le fichier de log précédent.

Par défaut, les logs seront enregistrés dans le dossier "/var/log/iptraf/".

Bash

ls /var/log/iptraf/

Plain Text

iface_stats_detailed-eth0.log  ip_traffic-1.log      packet_size-eth0.log
iface_stats_general.log        lan_statistics-1.log  rvnamed.log

Voici une partie du log d'IP Monitor (ip_traffic-1.log) :

Sat Jun  6 12:01:41 2015; ******** IP traffic monitor started ********
...
Sat Jun  6 12:18:36 2015; TCP; eth0; 52 bytes; from 10.0.0.3:49667 to debian.local:56526 (source MAC addr 000c29b99462); first packet (SYN)
Sat Jun  6 12:18:36 2015; TCP; eth0; 52 bytes; from debian.local:56526 to 10.0.0.3:49667 (source MAC addr 000c29c363eb); first packet (SYN)
Sat Jun  6 12:18:36 2015; TCP; eth0; 40 bytes; from debian.local:56526 to 10.0.0.3:49667 (source MAC addr 000c29c363eb); FIN sent; 4 packets, 3046 bytes, avg flow rate 24,00 kbits/s
...
Sat Jun  6 12:18:37 2015; UDP; eth0; 201 bytes; source MAC address xxxxxxxxxxxx; from WNDR4300.local:34563 to 255.255.255.255:7423
...
Sat Jun  6 12:18:46 2015; ******** IP traffic monitor stopped ********

 

7. Inclure les adresses MAC des périphériques réseau

Si vous avez activé l'option "Source MAC addrs in traffic monitor", vous verrez les adresses MAC correspondantes aux adresses IP sources.
Comme vous pouvez le voir dans la partie inférieur, les adresses MAC sont précédées de "src HWaddr" (qui signifie : adresse matérielle ou Hardware address en anglais).

 

8. Statistiques générales d'une carte réseau (General interface statistics)

General interface statistics vous permet d'avoir les statistiques générales pour chaque interface réseau.

 

9. Detailed interface statistics

Detailed interface statistics vous permet d'avoir des informations détaillées concernant l'interface réseau sélectionnée.

 

10. Statistical breakdowns

10.1. By packet size (statistiques par taille de paquets)

Cette fonction vous permet de trier les paquets par leur taille.

10.2. By TCP/UDP port (statistiques par port TCP/UDP)

Cette fonction vous permet de trier les paquets par port.
Ainsi, il est possible de voir le nombre de paquets transitant sur des ports spécifiques : 21 (FTP), 22 (SSH), 53 (DNS), 80 (HTTP), ...

 

11. LAN station monitor

LAN station monitor vous permet de surveiller la bande passante utilisée par les machines de votre réseau local.
Comme vous pouvez le voir, le programme affiche l'adresse MAC au lieu de l'adresse IP.

Pour connaitre les adresses IP qui correspondent à ces adresses MAC, vous pouvez utiliser la commande "nmap" :
Note : 10.0.0.1 correspond à l'adresse IP de notre routeur.

Bash

nmap -sP 10.0.0.1/24

Cette commande affichera un résultat comme ceci :

Plain Text

Starting Nmap 6.00 ( http://nmap.org ) at 2015-06-06 12:19 CEST
Nmap scan report for 10.0.0.1
Host is up (0.00080s latency).
MAC Address: 04:A1:51:XX:XX:XX (Unknown)
Nmap scan report for 10.0.0.3
Host is up (0.0023s latency).
MAC Address: 00:0C:29:B9:94:62 (VMware)
Nmap scan report for 10.0.0.4
Host is up (0.000098s latency).
MAC Address: 78:24:AF:XX:XX:XX (Unknown)
Nmap scan report for 10.0.0.9
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 10.32 seconds

Pour connaitre l'adresse MAC de votre serveur, utilisez la commande "ifconfig".

Bash

ifconfig

Dans les informations affichées, vous verrez la ligne :

Plain Text

eth0      Link encap:Ethernet  HWaddr 00:0c:29:c3:63:eb

 

12. Les filtres (Filters)

Les filtres vous permettent de surveiller le trafic réseau selon :

  • l'adresse IP source et/ou l'adresse IP de destination
  • le ou les ports (ex : 80 et 443 pour le web, 21 pour le transfert de fichier par FTP, ...) sources et/ou de destination
  • les protocoles (TCP, UDP, ICMP utilisé pour le ping, ...)

La configuration du filtre pourra servir à inclure ou exclure ce trafic réseau de l'historique en temps réel.

Pour créer un filtre, allez dans "Filters".
Dans notre cas, nous allons utiliser un filtre "IP".
Note : Comme vous pouvez voir, pour le moment, il n'y a pas de filtre IP actif.

Sélectionnez "Define new filter".

Indiquez un nom pour ce filtre.

Pour le moment, il n'y a pas de réglages pour ce filtre.
Pour en ajouter un, appuyez sur la touche i (pour l'option Insert).

Pour ce tutoriel, nous allons récupérer uniquement le trafic :
- ayant comme adresse IP source : 10.0.0.3
- utilisant le protocole TCP ou ICMP (pour détecter les éventuelles attaques DDOS utilisant le ping)

Si vous le souhaitez, vous pouvez ajouter d'autres réglages pour ce filtre.
Ensuite, quittez cette fenêtre en appuyant sur "CTRL+X".

Sélectionnez "Apply filter".

Sélectionnez le filtre à appliquer et appuyez sur Enter.

Comme vous pouvez le voir, maintenant, le filtre IP est actif.

Dans notre cas, nous allons utiliser "IP traffic monitor".

Sur notre machine "10.0.0.3", nous avons utilisé :
- un client FTP pour nous connecter au serveur (IP : 10.0.0.9)
- la commande ping pour pinguer notre serveur. (les requêtes ICMP echo affichées en bas)