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.
Nous utiliserons les commandes
ss
etlsof
pour relever les ports en écoute de la machine,Nous explorerons les outils
bmon
etiptraf
qui affichent l'activité en temps réel des interfaces,Nous lancerons quelques captures de trames avec l'utilitaire
tcpdump
et nous les afficherons dans l'analyseur de paquetswireshark
Relevez les services réseau mis à disposition par le système
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.
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 :
Un service
httpd
(serveur web) serait alors disponible en standard sur le port 80 de l'adresse IP tel que :192.168.1.100:80
Un service
mysqld
(base de données) serait éventuellement disponible en standard sur le port 3306 de l'adresse IP tel que : 192.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
Cette commande dispose de nombreuses options. Je vais simplement vous indiquer celles que j'utilise le plus fréquemment.
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
Voyons tout de suite comment utiliser ss
et lsof
pour afficher la liste des ports ouverts en écoute sur le système. Nous verrons ensemble comment interpréter les résultats de cette commande. C’est parti !
Observez l’activité réseau sur les interfaces
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
(pour "bandwidth monitor") vise à afficher le trafic en émission et réception sur les cartes. Il s'installe avec le package du même nombmon
.iptraf
propose l'affichage des connexions de manière plus détaillée, en indiquant notamment les sources ou les destinations relatives au trafic. Il s'installe avec le package du même nom :iptraf
.
Citons encore quelques outils d'analyse de trafic en temps réel :
Nload
,iftop
(très connu aussi celui-là),slurm
,tcptrack
,speedometer
(il a l'avantage de présenter, en mode terminal, une vue assez colorée du trafic sur une interface)et j'en oublie sûrement...
Allez, je vous propose d'installer et d'exécuter bmon
puis iptraf
pour relever l’activité réseau sur les interfaces. On y va :
Capturez le trafic réseau d’une interface
Enfin, dernier point de ce chapitre : il vous sera sûrement nécessaire de 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.
Dans la vidéo ci-dessous, je vous propose :
d'installer ces deux outils,
de capturer un trafic réseau spécifique à un besoin, par exemple, l’analyse des flux d’un service Web,
et de les importer dans
wireshark
pour compléter leur analyse.
C’est parti !
En résumé
La commande
ss
permet de relever les ports ouverts et les processus associés sur un serveur LinuxComplétée par la commande
lsof
, on peut référencer tous les fichiers qui étaient ouverts par des processus en écouteGrâce à
bmon
etiptraf
, on peut lire le trafic entrant et sortant en temps réel sur les cartes réseau de la machinetcpdump
etwireshark
permettent de capturer et d’analyser ce trafic
Ce chapitre vient clôturer ce cours d’initiation à l'administration d'un serveur Linux. J'espère qu'il vous a plu et je vous dis à bientôt sur OpenClassrooms !