Notes et astuces sur les systèmes libres basés sur GNU/Linux

Aller au contenu | Aller au menu | Aller à la recherche

Quel service écoute sur tel port ?

Bonjour à tous,

Je ne sais pas vous mais moi, je suis obnubilé par les ports ouverts sur mon serveur.
L'angoisse d'avoir oublié un service peu sécurisé ou pire un hacker qui aurait déjà laissé une porte d'entrée.

Identifier les ports ouverts sur votre serveur :

Première vérification des services à l'écoute via la commande netstat :

netstat -l
tcp        0      0 localhost:domain        *:*                     LISTEN  
tcp        0      0 localhost:smtp          *:*                     LISTEN  
tcp        0      0 localhost:953           *:*                     LISTEN  

Le résultat affiché indique les services en écoute sur votre serveur que ce soit des sockets Internet ou Unix. Par défaut, netstat essaye de trouver lui même les correspondance entre :

  • les adresses et leur DNS
  • les numéros de ports et leur nom de services enregistrés

Pour éviter ce comportement, vous rajouter l'option numeric :

netstat -ln  
Connexions Internet actives (seulement serveurs)  
Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat  
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN  

Connaitre le service écoutant sur le port x

Maintenant que vous connaissez les ports ouverts sur l'extérieur, il serait intéressant de savoir quel est le service qui écoute.
Exemple : Vous avez installé Apache2 et Nginx sur le même serveur et vous ne savez pas qui écoute sur le port 80.
Le paquet lsof et les droits seront nécessaires à l'utilisation de cette commande.

lsof -nP -i tcp:80 | grep LISTEN  
nginx   1363     root    6u  IPv4 329557      0t0  TCP *:80 (LISTEN)  

Le premier chiffre correspond au PID du process, vous pouvez-donc remonter plus précisément avec une commande de ce style :

ps faux | grep 1363  
root      1363  0.0  0.0  62268  1324 ?        Ss   09:18   0:00 nginx: master process /usr/sbin/nginx  

A noter que pour les services UDP, il n'y a pas d'état LISTEN. Il faudra donc enlever le grep :

lsof -nP -i UDP:53
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
named   1896 bind  512u  IPv4   4833      0t0  UDP 127.0.0.1:53

En espérant avoir aidé.

Commentaires

1. Le dimanche, 20 octobre 2013, 10:51 par muny

Bonjour,
« netstat -taupon » est sympa, ces options jointes permettent d'avoir un seul coup d'oeil. De manière plus globable, « netstat » est supplanté par « ss », qui est bien plus complet, par exemple « ss -lenmp ».

Concernant la partie « laissé une porte d'entrée », vous pouvez utiliser la commande « unhide » (du paquet éponyme), par exemple « unhide-tcp -fl »

Cordialement

2. Le dimanche, 20 octobre 2013, 11:14 par Gamoth

Bonjour et merci pour ton commentaire,

Je ne connaissais pas les options "taupon" mais c'est tout à fait ce que je cherchais. J'ai essayé ss (installé nativement sous Arch) mais je ne suis pas convaincu.

Bonne continuation.

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet