Comment surveiller l’activité réseau sur un système Linux

Il existe de nombreuses raisons pour lesquelles vous pouvez vouloir surveiller l’activité réseau sur votre système Linux. Vous pouvez être en train de dépanner un problème de réseau, vous pouvez vouloir vérifier qu’il n’y a pas d’applications malveillantes créant une activité réseau suspecte, ou vous pouvez simplement vouloir savoir si des processus téléphonent à la maison. Quelle que soit la raison, voici quelques méthodes pour voir quels processus de votre système sont engagés dans une activité réseau et avec qui ils communiquent.

Dans ce tutoriel, vous apprendrez :

  • Comment surveiller les connexions réseau et les services d’écoute avec netstat
  • Comment surveiller les connexions réseau et les services d’écoute avec lsof
  • Comment surveiller les connexions réseau et les services d’écoute avec ifconfig
  • Quels outils vous pouvez utiliser pour examiner les données envoyées sur le réseau
  • . envoyées sur le réseau

Comment surveiller l’activité du réseau sur un système Linux

Exigences logicielles et conventions utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, Conventions ou version de logiciel utilisée
Système Indépendant de la distribution
Les logiciels netstat, lsof, ifconfig, wireshark, tcpdump
Autres Accès privilégié à votre système Linux en tant que root ou via la commande sudo.
Conventions # – exige que les commandes linux données soient exécutées avec les privilèges de root, soit directement en tant qu’utilisateur root, soit par l’utilisation de la commande sudo
$ – exige que les commandes linux données soient exécutées en tant qu’utilisateur régulier non privilégié

Netstat

Netstat est un utilitaire puissant qui peut imprimer les connexions réseau, les tables de routage, les statistiques d’interface, les connexions de masquage et les adhésions de multidiffusion. Nous l’utiliserons pour accomplir le premier.

Installation de Netstat

Sur Debian et les systèmes basés sur Debian comme Ubuntu, utilisez apt.

# apt install net-tools

Sur Red Hat Enterprise Linux et les systèmes basés sur Red Hat, utilisez yum,

# yum install net-tools

Sur les systèmes basés sur Arch, utilisez pacman.

# pacman -S net-tools
A la recherche d’un analyste des systèmes Linux !
L’Institut géophysique de l’UAF, est à la recherche d’un analyste des systèmes Linux expérimenté pour rejoindre son équipe d’analystes et d’ingénieurs en cyber-infrastructure de recherche. LOCALISATION : Fairbanks, Alaska, USA
APPLIEZ MAINTENANT
NOTE
Dans les exemples suivants, nous utilisons une installation fraîche de RHEL 8 fonctionnant dans VirtualBox avec les ajouts invités installés

Visualiser les processus d’écoute

D’abord, visualisons les processus qui écoutent les connexions. Pour cela, entrez la commande suivante.

$ sudo netstat -tulpen

Dans cette commande, t affiche les TCP connexions, u affiche les connexions UDP, l affiche uniquement les sockets d’écoute, p affiche le programme auquel appartient la connexion,e affiche les informations étendues, et n représente les adresses, les utilisateurs et les ports numériquement.

netstat -tulpen output

Lorsque l’on considère le modèle client-serveur sur lequel la plupart des logiciels de réseau sont basés, les processus d’écoute peuvent être considérés comme des logiciels en mode « serveur ». Il n’y a rien de surprenant à propos de la sortie étant donné notre configuration. Ce sont tous les processus que vous vous attendez à écouter pour les connexions réseau sur une installation fraîche de RHEL 8 s’exécutant dansVirtualBox.
Pour chaque processus d’écoute, vous pouvez voir le protocole utilisé, l’adresse locale et le port sur lequel il écoute, l’utilisateur sous lequel il s’exécute et le nom du PID/Programme. Il y a une distinction importante à noter ici. Pour les connexionstcp4/udp4(simplement répertoriées commetcpetudp) où leLocal Addressest répertorié comme0.0.0.0, le processus écoute les connexions de toute machine capable de se connecter à lui sur le réseau, alors que lorsqu’il est répertorié comme127.0.0.1, il n’écoute que les connexions sur le localhost (la machine sur laquelle il s’exécute ou lui-même) et ne peut pas être connecté à d’autres ordinateurs sur le réseau. La même distinction est vraie pourtcp6/udp6lorsqu’on compare unLocal Addressde::(face au réseau) et::1(localhost seulement).

Voir toutes les connexions réseau

Maintenant, jetons un coup d’œil à toutes les connexions réseau actuelles. Pour ce faire, entrez la commande suivante, qui est similaire à la précédente sauf que nous utilisons -a pour afficher toutes les sockets au lieu de -l pour seulement afficher les sockets d’écoute.

$ sudo netstat -atupen

En plus de nous montrer quels logiciels nous avons à l’écoute de connexions en tant que « serveurs », cette commande nous montre également les connexions actuellement établies à ce logiciel et toutes les connexions réseau établies que nous avons en utilisant un logiciel agissant comme « client » tel qu’un navigateur web.

netstat -atupen output

Dans la capture d’écran, vous remarquerez 2 connexions dans l’étatESTABLISHED. Encore une fois, il n’y a pas de surprise ici. L’une d’entre elles appartient à NetworkManager et fonctionne comme un client DHCP pour permettre la mise en réseau à partir du serveur passerelle(Dans ce cas, la machine hôte). L’autre est une connexion SSH à la machine que nous avons établie après avoir transféré le port du service ssh avec VirtualBox. Si nous avions vu quelque chose d’inattendu ici, alors il peut être cause d’une enquête plus approfondie.

Voir les connexions établies

Vous pouvez vous trouver dans une situation où vous voulez seulement voir les connexions ESTABLISHED. C’est aussi simple que de passer la sortie de netstat à grep comme suit.

$ sudo netstat -atupen | grep ESTABLISHED

sudo netstat -atupen | grep ESTABLISHED output

Nous avons entré la commande ci-dessus après avoir navigué sur wikipedia.com dans firefox et la capture d’écran capture les connexions établies par firefox en atteignant le site. Comme vous pouvez le voir, il y a quatre serveurs auxquels firefox s’est connecté ; 91.198.174.192, 172.217.23.100, 216.58.215.67, et 104.111.215.142. Pour savoir à qui appartiennent ces serveurs, nous pouvons interroger les adresses IP avec whois comme suit :

$ whois 91.198.174.192| less

Le faire pour chacun d’eux révèle qu’ils appartiennent respectivement à Wikimedia, Google, Google et Akamai. Cela est logique étant donné que Wikimedia possède et héberge wikipedia et qu’il est très courant pour les sites de charger des ressources qui sont hébergées sur des serveurs appartenant à Google et Akamai. En fait, l’examen du code source de la page d’accueil de wikipedia révèle qu’il charge l’app-badge Google Play Store de google.com et l’app-badge Apple AppStore de apple.com.
Naviguer vers les urls de ces 2 app-badges individuellement et émettre la commande netstat ci-dessus vérifie effectivement qu’ils sont hébergés sur des serveurs appartenant respectivement à Google et Akamai.

Si cela a suscité votre intérêt pour la commande netstat, alors nous avons un article que vous pouvez lire pour en savoir plus sur l’utilisation de la commande netstat

ss

La commande netstat a longtemps été l’une des préférées des sysadmins, cependant elle a récemment été remplacée par la commande ss qui se vante d’être plus rapide, plus facile et plus lisible par l’homme que la netstat. Voyons comment accomplir les mêmes actions que celles effectuées ci-dessus en utilisant ss. Ss dispose également d’une option -e pour visualiser des informations étendues, mais cette option a été omise dans les exemples ci-dessous car elle produit des informations supplémentaires qui peuvent entraîner une sortie moins lisible.

Voir les processus d’écoute

Pour voir tous les processus d’écoute, entrez ce qui suit .

$ sudo ss -tlunp

Dans cette commande, t affiche TCP connexions, l montre uniquement les sockets d’écoute, u affiche les connexions UDP, n représente les adresses, les utilisateurs et les ports numériquement, et p montre le programme auquel la connexion appartient.

Voir toutes les connexions réseau

Pour voir toutes les connexions réseau, entrez ce qui suit, où a remplace l et montre toutes les sockets réseau, pas seulement celles qui écoutent.

$ sudo ss -taunp

Voir les connexions établies

Si -a ou -l ne sont pas inclus, alors ss ne montrera que les connexions établies. Pour afficher uniquement les connexions établies, entrez ce qui suit.

$ sudo ss -tunp

lsof

Juste au cas où netstat et ss n’étaient pas suffisants pour vous, nous présentons lsof. Lsof est utilisé pour lister les fichiers ouverts. GNU/Linux a hérité du principe de conception UNIX selon lequel tout est un fichier ; cela inclut les connexions réseau. En conséquence, lsof peut être utilisé pour visualiser l’activité du réseau d’une manière similaire aux commandes susmentionnées.

Voir toutes les connexions réseau

Pour voir toutes les connexions réseau, entrez ce qui suit .

$ sudo lsof -nP -i

Dans cette commande, n représente les adresses numériquement, P représente les ports numériquement, et i supprime la liste de tous les fichiers ouverts qui ne sont pas considérés comme des fichiers réseau.

Voir les connexions établies

Pour voir uniquement les connexions établies, entrez ce qui suit où les commutateurs supplémentaires listent toutes les connexions établies TCP.

$ sudo lsof -nP -iTCP -sTCP:ESTABLISHED

Voir les processus d’écoute

Pour voir les processus d’écoute en utilisant lsof, entrez ce qui suit.

$ sudo lsof -nP -iTCP -sTCP:LISTEN

Cela manquera tous les processus qui écoutent sur UDP, il peut donc être souhaitable d’entrer plutôt ce qui suit pour les inclure également.

$ sudo lsof -nP -i | grep 'LISTEN\|UDP'

Surveillance des données envoyées sur le réseau

Nous avons vu comment netstat, ss, et ifconfig peuvent être utilisés pour surveiller quelles connexions réseau sont faites et à qui, mais il est souvent souhaitable de voir exactement quelles données sont envoyées sur le réseau. Pour atteindre cet objectif, nous avons besoin d’applications capables de renifler des paquets. Deux programmes spécialisés dans ce domaine sont tcpdump et wireshark.
Nous avons précédemment écrit des guides sur la façon d’installer wireshark sur RHEL 8, Les bases de l’analyseur de protocole réseau Wireshark sur Linux, Filtrer les paquets dans Wireshark sur Kali Linux, et la section Network Monitoring de la surveillance du système et du matériel Linux rendue efficace comprend une belle introduction à tcpdump.

Conclusion

.

Laisser un commentaire

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