Partager via


Utiliser UFW pour résoudre les problèmes de connectivité dans les machines virtuelles Azure Ubuntu

S’applique à : ✔️ Machines virtuelles Linux

Cet article explique comment utiliser un pare-feu non compliqué (UFW) pour diagnostiquer et résoudre les problèmes de connectivité sur une machine virtuelle Azure Ubuntu.

UFW est une interface conviviale pour la gestion d’un pare-feu Netfilter dans les distributions Linux, en particulier dans Ubuntu. Son objectif principal est de faciliter la gestion d’un pare-feu pour les utilisateurs susceptibles de constater que la configuration iptables directe est difficile et complexe. UFW est l’outil de configuration de pare-feu par défaut pour Ubuntu.

Prerequisites

  • Privilèges racines.
  • Accès à la console série.
  • Installé net-tools, iproute2et netcat-openbsd packages.

Comment vérifier si un port est fermé dans la machine virtuelle Ubuntu avec UFW

Note

Par défaut, UFW n’est pas activé sur les machines virtuelles Ubuntu créées à l’aide d’images à partir du Place de marché Azure. L’activation d’UFW sur votre machine virtuelle ferme tous les ports, y compris le port 22 pour les services SSH.

  1. Vérifiez l’état UFW :

    sudo ufw status
    

    Dans la sortie :

    • Status: active indique que UFW est en cours d’exécution.

    • Status: inactive indique que UFW n’est pas actif et que le port ne sera pas bloqué par UFW.

  2. Répertoriez les règles UFW actuelles :

    sudo ufw status numbered
    

    Cette commande répertorie toutes les règles. Il indique si des ports spécifiques sont autorisés ou refusés. Si un port n’apparaît pas dans la liste, il est refusé par défaut.

  3. Vérifiez les règles UFW pour déterminer si un port particulier est refusé. Par exemple, pour vérifier si le port SSH 22 est refusé, exécutez la commande suivante :

    sudo ufw status | grep '22'
    
    • Si la sortie s’affiche 22/tcp ALLOW, le port est autorisé via le pare-feu.
    • Si aucune sortie n’apparaît ou si la règle s’affiche 22/tcp DENY, le port est refusé.
  4. Utilisez la ou ss la netstat commande pour vérifier si un port est en cours d’utilisation.

    sudo netstat -tuln | grep ':22'
    
    tcp6   0   0 :::22     :::*   LISTEN   
    
    • L’exemple de sortie montre qu’un service utilise ou écoute sur le port 22. Toutefois, cela ne confirme pas que le port est autorisé ou débloqué par le pare-feu. Même si un port est bloqué par le pare-feu, il peut toujours apparaître comme LISTEN dans la sortie.
    • Aucune sortie indique que le port n’est pas écouté par un service.
  5. Testez la connectivité de port à l’aide de nc:

    sudo nc -zv <server-ip> 22
    
    • Si la connexion échoue, mais que le port est écouté, cela confirme que le port est refusé par le pare-feu.
    • Une connexion réussie signifie que le port est autorisé.

Si le port que vous vérifiez n’apparaît pas dans les règles UFW ou s’il est marqué comme DENY, UFW bloque le port. En outre, si vous ne pouvez pas vous connecter au port à l’aide d’outils externes, le port est bloqué.

Utilisation d’UFW

Scénario 1 : Autoriser la connectivité SSH pour toutes les adresses IP

Exécutez la commande suivante :

sudo ufw allow ssh
Rule added

Vérifiez la règle :

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                  

Scénario 2 : Autoriser SSH (port 22) pour une adresse IP spécifique

Exécutez la commande suivante :

sudo ufw allow from 10.0.10.10 to any port 22 proto tcp

Vérifiez la règle :

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       10.0.10.10             

Scénario 3 : Autoriser un sous-réseau à se connecter au port 22

Exécutez la commande suivante :

sudo ufw allow from 10.1.0.0/24 to any port 22 proto tcp

Vérifiez la règle :

sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       10.0.10.10             
22/tcp                     ALLOW       10.1.0.0/24 

Scénario 4 : Refuser SSH pour toutes les adresses IP

Exécutez les commandes suivantes :

sudo ufw deny ssh
sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       10.0.10.10             
22/tcp                     ALLOW       10.1.0.0/24          
22/tcp                     DENY        Anywhere                     

Important

L’ordre des règles est important, car UFW traite les règles dans l’ordre dans lequel elles sont répertoriées. Cela signifie qu’une fois qu’une règle correspond, UFW applique cette règle et arrête le traitement de règles supplémentaires pour cette connexion.

Suppression d'une règle

Si vos règles ne sont pas dans l’ordre correct, vous pouvez supprimer une règle, puis la restaurer pour modifier l’ordre.

Pour supprimer une règle, vous pouvez utiliser son nombre à partir de la ufw status numbered sortie. Par exemple, pour supprimer le numéro de règle 3 :

sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW       10.0.10.10             
[ 2] 22                         ALLOW       10.1.0.0/24 
[ 3] 22/tcp                     DENY IN     Anywhere  
sudo ufw delete 3

Pour plus d’informations, consultez : Ubuntu - Communauté UFW

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.

Exclusion de responsabilité de tiers

Les produits tiers mentionnés dans le présent article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft exclut toute garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.