Notes et transcriptions du cours “Administrez un système Linux” disponible sur la plateforme Openclassrooms.
Vous avez appris à surveiller l'activité du système via l'analyse des fichiers de traces et des processus. Dans ce dernier chapitre, je vous propose de nous intéresser à l'activité réseau du serveur.
ss
et lsof
pour relever les ports en écoute de la machine ;bmon
et iptraf
qui affichent l'activité en temps réel des interfaces.tcpdump
et nous les afficherons dans l'analyseur de paquets wireshark
.Pour héberger un service réseau, votre serveur Linux doit disposer d'au moins une adresse IP accessible sur un réseau. Chaque service réseau pourra alors ouvrir un port en écoute et l'associer à cette adresse IP.
Pour plus d'informations sur le sujet, consultez les cours :
Imaginons que l'unique adresse IP de votre serveur soit 192.168.1.100. Tous les services réseaux de ce serveur seront associés à cette adresse IP.
Par exemple :
httpd
(serveur web) serait alors disponible en standard sur le port 80 de l'adresse IP tel que : 192.168.1.100:80mysqld
(base de données) serait éventuellement disponible en standard sur le port 3306 de l'adresse IP tel que : 1 92.168.1.100:3306 Linux fournit des commandes permettant de relever la liste des services réseau actuellement disponibles sur le serveur.
La commande ss (pour “socket statistics”) est fournie par le package iproute2 installé en standard sur les distributions.
Les plus anciens d'entre nous auront connu netstat
, mais le paquet net-tools
, qui reste disponible, n'est plus maintenu et n'est donc plus installé par défaut sur les distributions.
Cette commande dispose de nombreuses options :
# Lister les ports ouverts ss -lptun
Avec ces options la commande affiche les ports ouverts, le nom du service (daemon) son PID. Par ailleurs, étant donné que tout est fichier sous Linux, vous pourrez remarquer que chaque “socket” dispose de son “file descriptor” (fd sur les lignes résultat).
La commande lsof
(pour “list open files”), très connue également (fournie par le package lsof
du même nom), s'attache à relever tous les fichiers ouverts. Il est donc possible de retrouver ces éléments avec cette commande.
lsof -Pi
Maintenant que vous savez relever les processus en écoute sur le serveur, il est temps de vous pencher sur l'analyse de l'activité réseau sur les cartes du serveur.
Encore une fois, Linux fourmille d'outils permettant de vous aider à ce sujet. Je vais vous proposer deux outils que j'utilise fréquemment :
bmon
.iptraf
.Citons encore quelques outils d'analyse de trafic en temps réel :
Allez, je vous propose d'installer et d'exécuter bmon
puis iptraf
pour relever l’activité réseau sur les interfaces.
Enfin, dernier point de ce chapitre : il peut être intéressant de pouvoir capturer le trafic d'une interface.
Pour cela, il existe un utilitaire en mode terminal très connu également, qui se nomme tcpdump
. Il s'installe avec le package portant le même nom.
Vous allez constater que cet outil peut être très très verbeux ! Il est important de bien spécifier les options de capture en fonction de votre besoin.
Avec tcpdump
, vous avez aussi la possibilité d’enregistrer votre capture dans un fichier, qui sera ensuite lisible par wireshark
, le très célèbre analyseur de trames réseau.
Dans la vidéo ci-dessous, je vous propose :
ss
permet de relever les ports ouverts et les processus associés sur un serveur Linux ;lsof
, on peut référencer tous les fichiers qui étaient ouverts par des processus en écoute ;bmon
et iptraf
, on peut lire le trafic entrant et sortant en temps réel sur les cartes réseau de la machine ;