Troubleshooting avec « netstat »

netstat (pour « network statistics ») est une commande en ligne qui affiche les connexions réseau actives (entrantes et sortantes), les tables de routage, les statistiques d’interface et bien plus encore. C’est un couteau suisse pour comprendre ce qui se passe sous le capot de votre réseau.

Pourquoi netstat est-il essentiel pour tout administrateur ?

Dans un environnement d’entreprise, les serveurs communiquent constamment entre eux et avec les clients. Des services cruciaux comme les bases de données, les serveurs web, les applications métiers et les services de fichiers dépendent de connexions réseau saines. netstat vous permet de :

Surveiller les performances réseau : Bien que netstat ne soit pas un outil de surveillance de performance dédié, il peut vous donner un aperçu rapide du nombre de connexions établies, ce qui peut influencer la charge serveur.

Diagnostiquer les problèmes de connectivité : Un service ne répond plus ? netstat peut vous montrer si les ports nécessaires sont en écoute ou si des connexions sont établies.

Identifier les ports ouverts et les services associés : Comprendre quels services écoutent sur quels ports est vital pour la sécurité et la conformité.

Détecter les activités suspectes : Des connexions inattendues ou des services écoutant sur des ports non autorisés pourraient indiquer une compromission ou un problème de configuration.

Commandes netstat utiles pour les administrateurs Linux

Bien que ss soit souvent privilégié sur les systèmes Linux modernes pour sa rapidité et ses fonctionnalités étendues, netstat reste universellement reconnu et très utile. Voici quelques-unes des options les plus pertinentes :

  • netstat -tulnp : Afficher toutes les connexions TCP/UDP en écoute avec le PID et le nom du programme
    • t : Affiche les connexions TCP.
    • u : Affiche les connexions UDP.
    • l : N’affiche que les sockets en écoute (listening).
    • n : Affiche les adresses et les numéros de port sous forme numérique (plus rapide car pas de résolution DNS).
    • p : Affiche le PID (Process ID) et le nom du programme associé à chaque connexion ou port. (Nécessite des privilèges root).
    • Utilisation : Idéal pour vérifier qu’un service comme Nginx (nginx), Apache (httpd), ou votre base de données (mysqld, postgres) écoute bien sur le port attendu (par exemple, 80, 443, 3306, 5432). Si vous voyez un port ouvert inattendu, le PID et le nom du programme vous aideront à l’identifier rapidement.
  • netstat -antp : Afficher toutes les connexions TCP établies et en écoute avec PID
    • a : Affiche toutes les connexions et les ports d’écoute.
    • Utilisation : Utile pour voir toutes les connexions actives vers et depuis votre serveur. Vous pouvez repérer les connexions client vers vos services, ou des connexions sortantes suspectes vers l’extérieur.
  • netstat -r : Afficher la table de routage
    • Utilisation : Essentiel pour comprendre comment votre serveur achemine le trafic réseau. Vous pouvez vérifier la passerelle par défaut, les routes spécifiques pour certains sous-réseaux, et vous assurer qu’il n’y a pas de routes mal configurées qui pourraient perturber la communication.
  • netstat -s : Afficher les statistiques par protocole
    • Utilisation : Cette option vous donne des statistiques détaillées pour chaque protocole (TCP, UDP, ICMP, IP). Utile pour repérer un nombre anormalement élevé d’erreurs, de paquets rejetés, ou de retransmissions TCP, ce qui pourrait indiquer des problèmes de réseau sous-jacents.

Bonnes pratiques et astuces

  • Exécutez netstat avec sudo : Pour obtenir toutes les informations, notamment le PID et le nom du programme (-p), assurez-vous de préfixer votre commande avec sudo.
  • Utilisez des filtres avec grep : Si vous cherchez des informations spécifiques (par exemple, toutes les connexions sur le port 80 ou les connexions liées à un certain programme), pipez la sortie de netstat vers grep.
    • sudo netstat -tulnp | grep « :80 »
    • sudo netstat -antp | grep « ESTABLISHED » (pour voir les connexions établies)
    • sudo netstat -antp | grep « nginx »
  • Combinaison avec d’autres outils : Pour aller plus loin, vous pouvez combiner netstat avec des outils comme lsof -i (qui liste les fichiers ouverts, y compris les sockets réseau) ou ss pour des analyses plus rapides et détaillées sur les systèmes Linux.
  • Surveillance et alertes : Pour une utilisation en production, intégrez la sortie de netstat (ou ss) dans vos scripts de surveillance ou vos systèmes de logs pour détecter et alerter sur des anomalies (ports ouverts inattendus, trop de connexions, etc.).

netstat est un outil simple mais redoutablement efficace. En le maîtrisant, vous ajouterez une corde essentielle à votre arc d’administrateur système et serez mieux équipé pour maintenir la stabilité et la sécurité de votre infrastructure, quelle que soit la technologie sous-jacente.


Avez-vous d’autres outils de diagnostic réseau que vous trouvez indispensables dans votre quotidien d’administrateur ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut