Aller au contenu

Gestion du traffic réseau Linux

Pour analyser le trafic réseau d’une machine Linux, il peut être intéressant d’installer ces trois programmes connus dans le monde de l’administration Linux. 

Analyse de performances

Installer et lancer le programme BMON
apt install bmon
bmon
Installer le programme iptraff
apt install iptraf-ng
iptraf
Installer le programme iftop
apt install iftop
iftop

Lister les ports ouverts sur la machine

Pour des raisons de sécurité ou pour dépanner, on peut lister les ports ouverts sur la machine. Ici mon port 22 pour le SSH. Il nous donne également le PID pour pouvoir tuer la tâche.
┌──(root㉿kalivm)-[/]
└─# ss -lptun
Netid     State      Recv-Q     Send-Q         Local Address:Port         Peer Address:Port    Process
tcp       LISTEN     0          128                  0.0.0.0:22                0.0.0.0:*        users:(("sshd",pid=844,fd=3))
tcp       LISTEN     0          128                     [::]:22                   [::]:*        users:(("sshd",pid=844,fd=4))
Une fois que l’on à le port ouvert et le PID associé, on peut également utiliser lsof pour lister les fichiers qui sont ouverts concernant le processus choisi.
┌──(root㉿kalivm)-[/]
└─# lsof -p 21746
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/127/gvfs
      Output information may be incomplete.
COMMAND    PID USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME
rsyslogd 21746 root  cwd       DIR                8,1     4096          2 /
rsyslogd 21746 root  rtd       DIR                8,1     4096          2 /
rsyslogd 21746 root  txt       REG                8,1   749320     830429 /usr/sbin/rsyslogd
rsyslogd 21746 root  mem       REG                8,1    32400     820430 /usr/lib/x86_64-linux-gnu/rsyslog/imudp.so
rsyslogd 21746 root  mem       REG                8,1    23872     819960 /usr/lib/x86_64-linux-gnu/rsyslog/imklog.so
rsyslogd 21746 root  mem       REG                8,1   157768     787097 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.33.1
rsyslogd 21746 root  mem       REG                8,1   149952     791628 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.4
rsyslogd 21746 root  mem       REG                8,1   751840     790742 /usr/lib/x86_64-linux-gnu/libzstd.so.1.5.2
rsyslogd 21746 root  mem       REG                8,1   190456     789536 /usr/lib/x86_64-linux-gnu/liblzma.so.5.4.1
rsyslogd 21746 root  mem       REG                8,1  1332480     787370 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.4.1
Il est également possible de rechercher par port directement :
┌──(root㉿kalivm)-[/]
└─# lsof -i :22
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      844 root    3u  IPv4  17198      0t0  TCP *:ssh (LISTEN)
sshd      844 root    4u  IPv6  17200      0t0  TCP *:ssh (LISTEN)
sshd    20880 root    4u  IPv4 375258      0t0  TCP chesapeake-150.umd.edu:ssh->admin-serv84.umd.edu:62376 (ESTABLISHED)
sshd    20908 kali    4u  IPv4 375258      0t0  TCP chesapeake-150.umd.edu:ssh->admin-serv84.umd.edu:62376 (ESTABLISHED)
Ou encore par fichier directement :
┌──(root㉿kalivm)-[/]
└─# lsof /var/log/auth.log
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
rsyslogd 21746 root   12w   REG    8,1    86789 2622496 /var/log/auth.log

Analyse de trame

Pour analyser les trames réseau, il faut le paquet tcpdump.
apt install tcpdump 
Pour par exemple capturer ce qu’il se passe sur le port 443 et l’écrire dans un fichier :
tcpdump port 443 -w /home/user/capture_443.dump
Une fois la requête capturée, insérez votre fichier dump dans un analyseur de trame comme Wireshark pour lire le fichier.

Surveillance réseau

Pour analyser le trafic d’un protocole sur notre serveur
1. Ouvrir une console et lancer un ping sur une machine de notre réseau par exemple
ping 192.168.1.240
2. Ouvrir une autre fenêtre de terminal, cette fois avec un tcpdump en spécifiant le protocole ICMP.
tcpudump icmp
3. On peut également sortir les informations dans un fichier avec -w
tcpdump icmp -w capture.dump
4. Transférer le fichier dump à une machine disposant de Wireshark
scp /home/user/dump [email protected]:/home/user/