Comment afficher/vérifier les ports ouverts sur Ubuntu Linux
La vérification des ports ouverts sur Ubuntu Linux est une partie essentielle de l’administration de la sécurité. Certains logiciels Linux fonctionnent en écoutant les connexions entrantes. Un exemple simple serait un serveur Web, qui gère les requêtes des utilisateurs sur le port HTTP 80 ou HTTPS 443 chaque fois que quelqu’un navigue sur un site Web. En tant qu’administrateur ou utilisateur Linux, il est important de toujours savoir quels ports de votre système sont ouverts à Internet. Sinon, vous risquez de ne pas être au courant des connexions externes établies à votre ordinateur, ce qui consomme de la bande passante et des ressources, en plus d’être une vulnérabilité de sécurité potentielle.
Dans ce tutoriel, nous allons voir comment vérifier les ports ouverts sur Ubuntu Linux. Cela peut être fait avec plusieurs utilitaires de ligne de commande différents, que nous allons voir en détail. Nous verrons également comment utiliser le pare-feu ufw d’Ubuntu pour s’assurer que les ports sont sécurisés. Alors, savez-vous quels ports de votre système sont ouverts ? Découvrons-le.
Dans ce tutoriel, vous allez apprendre :
- Comment vérifier les ports ouverts avec
la commande ss - Comment vérifier les ports ouverts avec l’utilitaire Nmap
- Comment vérifier et ajouter des ports autorisés dans le pare-feu ufw
Vérifier les ports ouverts avec la commande ss
La commande ss peut être utilisée pour indiquer quels ports sont à l’écoute des connexions. Il indique également de quels réseaux il accepte les connexions.
La commande
ss a remplacé l’ancienne commande netstat sous Linux. Vous pouvez toujours installer et utiliser la commande netstat pour vérifier les ports ouverts.Nous vous recommandons d’utiliser les options -ltn avec la commande pour afficher une sortie concise et pertinente. Prenons un exemple sur notre système de test.
sudo ss -ltn
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
LISTEN 0 70 127.0.0.1:33060 0.0.0.0:*
LISTEN 0 151 127.0.0.1:3306 0.0.0.0:*
LISTEN 0 5 [::1]:631 [::]:*
LISTEN 0 511 *:80 *:*
Nous pouvons voir que notre serveur est à l’écoute des connexions sur les ports 80, 3306 et 33060. Il s’agit des ports bien connus associés à HTTP et MySQL.
Vous verrez également que la sortie ss indique que les ports 53 et 631 sont dans un état d’écoute. Il s’agit respectivement du DNS et de l’Internet Printing Protocol. Ceux-ci sont activés par défaut, vous les verrez donc probablement écouter sur votre propre système. Le port DNS n’est pas réellement ouvert, mais il fournit plutôt une résolution de noms aux applications installées sur notre système.
Pour voir à quels processus appartiennent ces ports d’écoute, incluez l’option -p dans votre commande.
sudo ss -ltnp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=530,fd=13))
LISTEN 0 5 127.0.0.1:631 0.0.0.0:* users:(("cupsd",pid=572,fd=7))
LISTEN 0 70 127.0.0.1:33060 0.0.0.0:* users:(("mysqld",pid=2320,fd=32))
LISTEN 0 151 127.0.0.1:3306 0.0.0.0:* users:(("mysqld",pid=2320,fd=34))
LISTEN 0 5 [::1]:631 [::]:* users:(("cupsd",pid=572,fd=6))
LISTEN 0 511 *:80 *:* users:(("apache2",pid=2728,fd=4),("apache2",pid=2727,fd=4),("apache2",pid=2725,fd=4))
Nous pouvons maintenant voir que systemd-resolve, cupsd, mysqld et apache2 sont les services qui utilisent les ports pour écouter les connexions entrantes.
Vérifier les ports ouverts avec nmap
Nmap est un outil de reconnaissance réseau qui peut être utilisé pour vérifier les ports ouverts sur des hôtes distants. Cependant, nous pouvons également l’utiliser pour vérifier notre propre système afin d’obtenir une liste rapide des ports ouverts.
Normalement, nous spécifierions une adresse IP distante pour que Nmap puisse analyser. Au lieu de cela, nous pouvons analyser notre propre système en spécifiant localhost dans la commande.
sudo nmap localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2021-03-12 20:43 EST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000012s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds
Vérifiez quels ports sont ouverts dans le pare-feu ufw
Il y a une grande mise en garde que vous devez garder à l’esprit. Lorsque nous utilisons les commandes ss ou nmap localhost sur notre système local, nous contournons le pare-feu. En effet, ces commandes montrent les ports qui sont en état d’écoute, mais cela ne signifie pas nécessairement que les ports sont ouverts à Internet, car notre pare-feu peut refuser les connexions.
Vérifiez l’état du pare-feu ufw à l’aide de la commande suivante.
sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
D’après la sortie, nous pouvons voir que ufw refuse les connexions entrantes. Étant donné que les ports 80 et 3306 n’ont pas été ajoutés en tant qu’exceptions, HTTP et MySQL ne sont pas en mesure de recevoir des connexions entrantes, bien que ss et nmap signalent qu’ils sont dans un état d’écoute.
Ajoutons des exceptions pour ces ports avec les commandes suivantes.
sudo ufw allow 80/tcp
Rule added
Rule added (v6)
sudo ufw allow 3306/tcp
Rule added
Rule added (v6)
Nous pouvons vérifier à nouveau l’état de ufw, pour voir que les ports sont maintenant ouverts.
sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
80/tcp ALLOW IN Anywhere
3306/tcp ALLOW IN Anywhere
80/tcp (v6) ALLOW IN Anywhere (v6)
3306/tcp (v6) ALLOW IN Anywhere (v6)
Maintenant, nos deux ports sont ouverts dans le pare-feu et en état d’écoute. Pour en savoir plus sur le pare-feu ufw, y compris des exemples de commandes, consultez notre guide sur l’installation et l’utilisation du pare-feu ufw sous Linux.
Réflexions finales
Dans ce tutoriel, nous avons vu comment utiliser la commande ss, ainsi que l’utilitaire nmap pour vérifier les ports d’écoute sur Ubuntu Linux. Nous avons également appris à vérifier le pare-feu ufw pour voir quels ports sont ouverts, et à ajouter des exceptions si nécessaire. Pour renforcer la sécurité, les administrateurs ne doivent disposer que des ports nécessaires ouverts à Internet. Si votre serveur n’héberge rien qui doit être écouté sur un port particulier, il est recommandé de fermer ce port dans la configuration de votre pare-feu.
Si un port est en état d’écoute et qu’il est autorisé à traverser le pare-feu, il doit être ouvert aux connexions entrantes. Mais cela dépend également de votre routeur ou d’autres périphériques réseau situés entre votre ordinateur et Internet, car ils peuvent avoir leurs propres règles qui bloquent les connexions entrantes.
