Sous Linux, un port est un point de terminaison de communication logique associé à un service en cours d'exécution dans le système d'exploitation. Les ports sont entièrement gérés par le système d'exploitation, et chaque port est associé à un service spécifique. Les ports aident les administrateurs à identifier les services en cours d'exécution sur le système.
Chaque port se voit généralement attribuer un numéro. Les numéros de port vont de 0 à 65535. Les ports inférieurs à 1024 sont appelés ports privilégiés et sont utilisés pour des protocoles spéciaux. Par exemple, le trafic Web (HTTP) passe par le port 80, tandis que SSH écoute le port 22. Les ports supérieurs à 1024 sont appelés non privilégiés ports et peuvent être utilisés à des fins de test. Par exemple, vous pouvez configurer votre serveur Web pour qu'il s'exécute sur l'un de ces ports au lieu de son numéro de port par défaut.
Dans ce guide, nous nous concentrerons sur la façon dont vous pouvez savoir quels processus écoutent sur quels ports sous Linux. Nous avons utilisé Ubuntu 20.04 à des fins de démonstration.
Utilisation de la commande Linux netstat
La commande Linux Netstat est un portemanteau des mots réseau et statistiques. Comme vous l'avez peut-être deviné, il s'agit d'un utilitaire de ligne de commande permettant d'afficher des statistiques de réseau et de protocole sur un système Linux. De plus, il vous permet d'imprimer la table de routage, l'état des points de terminaison TCP et UDP et des informations sur vos interfaces réseau.
Pour voir quel processus écoute un port particulier, utilisez la syntaxe ci-dessous :
# netstat -pnltu | grep -w port_number
Décomposons la liste des options :
p - Affiche le nom et l'ID du processus
n - Affiche l'adresse du port
l – Répertorie uniquement les prises d'écoute
t - Imprime les connexions TCP
u – Imprime les connexions UDP
Dans l'exemple ci-dessous, nous sondons le service qui écoute sur le port 80.
# netstat -pnltu | grep -w 80
La sortie indique que c'est le service de serveur Web Apache qui écoute sur le port 80.
Pour vérifier le service à l'écoute sur le port 3306. Exécutez :
# netstat -pnltu | grep -w 3306
Utilisation de la commande lsof
Acronyme de List Open Files, la commande lsof est une commande utilisée pour révéler les fichiers et répertoires ouverts. Avec le -i option, il peut révéler les services écoutant un port particulier.
Dans l'exemple ci-dessous, nous recherchons le service écoutant le port TCP 22, qui est le service SSH (Secure Shell).
# lsof -i TCP:22
Utilisation de la commande fuser
Enfin, nous avons la commande fuser. L'utilitaire de fusion est un outil de ligne de commande intelligent utilisé pour localiser les processus à l'aide d'un socket, d'un fichier ou, à défaut, d'un répertoire. Il fait également beaucoup de choses comme afficher le type de processus, le PID de chaque processus, l'utilisateur qui possède le processus.
Pour utiliser fuser pour trouver le service écoutant un port, commencez par trouver le PID du processus comme indiqué.
# fuser 22/tcp
Continuez ensuite et appelez la commande ps pour révéler le nom du service. Notez que 34093 est le PID du processus que nous avons obtenu de la commande précédente
# ps -p 34093 -o comm=
Conclusion
Nous avons illustré 3 façons que vous pouvez utiliser pour révéler les processus qui écoutent des ports particuliers sur votre système Linux. Nous espérons que vous pourrez désormais le faire sans aucun problème.