Identifier les ports actifs d'un serveur Linux

Google's first production server

A quoi je sers ?

Un serveur a souvent de multiples rôles et donc de multiples services accessibles sur un ensemble de ports. Il est important de connaître et de limiter le nombre de ceux-ci afin de sécuriser au mieux votre serveur.

Cet article vous permet d'identifier les ports ouverts et les programmes qui les utilisent sur votre serveur Linux.

Identifier les ports ouverts et les services disponibles

Vous allez utiliser netstat. En ligne de commande, lancez la commande :

# netstat -lptu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name   
tcp        0      0 localhost.localdom:smtp *:*                     LISTEN     8980/sendmail: MTA: 
tcp        0      0 *:mysql                 *:*                     LISTEN     26445/mysqld        
tcp        0      0 *:12345                 *:*                     LISTEN     9382/sshd           
tcp        0      0 *:www                   *:*                     LISTEN     466/apache2         
tcp6       0      0 *:www                   *:*                     LISTEN     6627/apache2        

La 1ère colonne indique le protocole utilisé, la 3ème l'adresse et le port d'accès et la dernière le programme qui l'utilise et son PID.
Dans cet exemple, on voit donc un serveur smtp, mysql disponible sur leurs ports standards, un serveur web apache2 disponible en TCP/IP v4 et TCP/IP v6 et un serveur ssh disponible sur le port 12345.

La liste des ports standard est disponible dans le fichier /etc/services. Vous pouvez le consulter en ligne de commande :

# view /etc/services

Vous pouvez supprimer les services inutiles en modifiant les services démarrés sur votre serveur Linux.