Recherche de site Web

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.

LE SAVIEZ-VOUS ?
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.

Articles connexes: