ngrep – Un analyseur de paquets réseau pour Linux

Ngrep (network grep) est un analyseur de paquets réseau simple mais puissant. C’est un outil de type grep appliqué à la couche réseau – il correspond au trafic passant sur une interface réseau. Il vous permet de spécifier une expression régulière ou hexadécimale étendue pour correspondre aux charges utiles de données (les informations ou messages réels dans les données transmises, mais pas les métadonnées générées automatiquement) des paquets.

Cet outil fonctionne avec différents types de protocoles, y compris IPv4/6, TCP, UDP, ICMPv4/6, IGMP ainsi que Raw sur un certain nombre d’interfaces. Il fonctionne de la même manière que l’outil de reniflage de paquets tcpdump.

Le paquet ngrep peut être installé à partir des dépôts système par défaut des distributions Linux grand public à l’aide de l’outil de gestion des paquets comme indiqué.

$ sudo apt install ngrep$ sudo yum install ngrep$ sudo dnf install ngrep

Après avoir installé ngrep, vous pouvez commencer à analyser le trafic sur votre réseau Linux à l’aide des exemples suivants.

1. La commande suivante vous aidera à faire correspondre toutes les demandes de ping sur l’interface de travail par défaut. Vous devez ouvrir un autre terminal et essayer de cingler une autre machine distante. L’indicateur -q indique à ngrep de fonctionner silencieusement, de ne pas produire d’informations autres que les en-têtes de paquets et leurs charges utiles.

Vous pouvez appuyer sur Ctrl + C pour le terminer.

2. Pour faire correspondre uniquement le trafic vers un site de destination particulier, par exemple ‘google.com ‘, exécutez la commande suivante, puis essayez d’y accéder à partir d’un navigateur.

3. Si vous surfez sur le Web, exécutez la commande suivante pour surveiller les fichiers demandés par votre navigateur: .

4. Pour voir toutes les activités croisant le port source ou de destination 25 (SMTP), exécutez la commande suivante.

$ sudo ngrep port 25

5. Pour surveiller tout trafic syslog basé sur le réseau pour détecter l’apparition du mot ” erreur “, utilisez la commande suivante.

 $ sudo ngrep -d any 'error' port 514

Il est important de noter que cet outil peut convertir les noms de ports de service stockés dans “/etc/services” (sur des systèmes de type Unix tels que Linux) en numéros de ports. Cette commande est équivalente à la commande ci-dessus.

$ sudo ngrep -d any 'error' port syslog

6. Vous pouvez également exécuter ngrep sur un serveur HTTP (port 80), il fera correspondre toutes les demandes à l’hôte de destination comme indiqué.

Comme vous pouvez le voir dans la sortie ci-dessus, toutes les transmissions d’en-têtes HTTP sont affichées dans leurs détails sanglants. Il est difficile d’analyser cependant, alors regardons ce qui se passe lorsque vous appliquez le mode byline -W.

7. Pour imprimer un horodatage sous la forme de AAAA/MM/JJ HH:MM:SS.UUUUUU chaque fois qu’un paquet est mis en correspondance, utilisez l’indicateur -t.

8. Pour éviter de mettre l’interface surveillée en mode promiscuité (où elle intercepte et lit chaque paquet réseau qui arrive dans son intégralité), ajoutez l’indicateur -p.

$ sudo ngrep -p -W byline port 80

9. Une autre option importante est -N qui est utile dans le cas où vous observez des protocoles bruts ou inconnus. Il indique à ngrep d’afficher le numéro de sous-protocole avec l’identifiant à un seul caractère.

$ sudo ngrep -N -W byline

Pour plus d’informations, consultez la page de manuel ngrep.

$ man ngrep

dépôt Github ngrep : https://github.com/jpr5/ngrep

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.