Accueil > Réseau, Sécurité, Tutoriel > Comment configurer un pare-feu avec UFW sur Ubuntu 16.0

Comment configurer un pare-feu avec UFW sur Ubuntu 16.0

24/04/2020 Categories: Réseau, Sécurité, Tutoriel Tags:
Print Friendly, PDF & Email

Introduction

UFW, ou Pare-feu simple, est une interface iptablesqui vise à simplifier le processus de configuration d’un pare-feu. Bien iptablesqu’il s’agisse d’un outil solide et flexible, il peut être difficile pour les débutants d’apprendre à l’utiliser pour configurer correctement un pare-feu. Si vous cherchez à commencer à sécuriser votre réseau et que vous ne savez pas quel outil utiliser, UFW peut être le bon choix pour vous.

Ce tutoriel vous montrera comment configurer un pare-feu avec UFW sur Ubuntu 16.04.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

UFW est installé par défaut sur Ubuntu. S’il a été désinstallé pour une raison quelconque, vous pouvez l’installer avec sudo apt-get install ufw.

Étape 1 – Utilisation d’IPv6 avec UFW (facultatif)

Ce didacticiel est écrit avec IPv4 à l’esprit, mais fonctionnera pour IPv6 aussi longtemps que vous l’activez. Si votre serveur Ubuntu a activé IPv6, assurez-vous que UFW est configuré pour prendre en charge IPv6 afin qu’il gère les règles de pare-feu pour IPv6 en plus d’IPv4. Pour ce faire, ouvrez la configuration UFW avec nanoou votre éditeur préféré.

sudo nano /etc/default/ufw

Assurez-vous ensuite que la valeur de IPV6est yes. Ça devrait ressembler à ça:

/ etc / default / ufw extrait
...
IPV6=yes
...

Enregistrez et fermez le fichier. Désormais, lorsque UFW est activé, il sera configuré pour écrire les règles de pare-feu IPv4 et IPv6. Cependant, avant d’activer UFW, nous voulons nous assurer que votre pare-feu est configuré pour vous permettre de vous connecter via SSH. Commençons par définir les politiques par défaut.

Étape 2 – Configuration des stratégies par défaut

Si vous débutez avec votre pare-feu, les premières règles à définir sont vos stratégies par défaut. Ces règles contrôlent la façon de gérer le trafic qui ne correspond explicitement à aucune autre règle. Par défaut, UFW est défini pour refuser toutes les connexions entrantes et autoriser toutes les connexions sortantes. Cela signifie que toute personne essayant d’atteindre votre serveur cloud ne pourrait pas se connecter, tandis que toute application au sein du serveur serait en mesure d’atteindre le monde extérieur.

Remettons vos règles UFW à leurs valeurs par défaut afin que nous puissions être sûrs que vous pourrez suivre ce didacticiel. Pour définir les valeurs par défaut utilisées par UFW, utilisez ces commandes:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Ces commandes définissent les valeurs par défaut pour refuser les connexions entrantes et autoriser les connexions sortantes. Ces valeurs par défaut du pare-feu peuvent suffire à elles seules pour un ordinateur personnel, mais les serveurs doivent généralement répondre aux demandes entrantes d’utilisateurs externes. Nous examinerons cela ensuite.

Étape 3 – Autoriser les connexions SSH

Si nous activions notre pare-feu UFW maintenant, il refuserait toutes les connexions entrantes. Cela signifie que nous devrons créer des règles qui autorisent explicitement les connexions entrantes légitimes – connexions SSH ou HTTP, par exemple – si nous voulons que notre serveur réponde à ces types de demandes. Si vous utilisez un serveur cloud, vous souhaiterez probablement autoriser les connexions SSH entrantes afin de pouvoir vous connecter et gérer votre serveur.

Pour configurer votre serveur pour autoriser les connexions SSH entrantes, vous pouvez utiliser cette commande:

sudo ufw allow ssh

Cela créera des règles de pare-feu qui autoriseront toutes les connexions sur le port 22, qui est le port sur lequel le démon SSH écoute par défaut. UFW sait ce que SSH et un certain nombre d’autres noms de service signifient car ils sont répertoriés comme services dans le /etc/servicesfichier.

Cependant, nous pouvons réellement écrire la règle équivalente en spécifiant le port au lieu du nom du service. Par exemple, cette commande fonctionne de la même manière que celle ci-dessus:

sudo ufw allow 22

Si vous avez configuré votre démon SSH pour utiliser un port différent, vous devrez spécifier le port approprié. Par exemple, si votre serveur SSH écoute sur le port 2222, vous pouvez utiliser cette commande pour autoriser les connexions sur ce port:

sudo ufw allow 2222

Maintenant que votre pare-feu est configuré pour autoriser les connexions SSH entrantes, nous pouvons l’activer.

Étape 4 – Activer UFW

Pour activer UFW, utilisez cette commande:

sudo ufw enable

Vous recevrez un avertissement indiquant que la commande peut perturber les connexions SSH existantes. Nous avons déjà mis en place une règle de pare-feu qui autorise les connexions SSH, donc ça devrait aller pour continuer. Répondez à l’invite avec y.

Le pare-feu est maintenant actif. N’hésitez pas à exécuter la sudo ufw status verbosecommande pour voir les règles qui sont définies. Le reste de ce didacticiel explique comment utiliser UFW plus en détail, comme autoriser ou refuser différents types de connexions.

Étape 5 – Autorisation d’autres connexions

À ce stade, vous devez autoriser toutes les autres connexions auxquelles votre serveur doit répondre. Les connexions que vous devez autoriser dépendent de vos besoins spécifiques. Heureusement, vous savez déjà comment écrire des règles qui permettent des connexions basées sur un nom de service ou un port; nous l’avons déjà fait pour SSH sur le port 22. Vous pouvez également le faire pour:

  • HTTP sur le port 80, qui est ce que les serveurs Web non chiffrés utilisent, utilisent sudo ufw allow httpousudo ufw allow 80
  • HTTPS sur le port 443, qui est ce que les serveurs Web chiffrés utilisent, utilisent sudo ufw allow httpsousudo ufw allow 443
  • FTP sur le port 21, qui est utilisé pour les transferts de fichiers non cryptés (que vous ne devriez probablement pas utiliser de toute façon), en utilisant sudo ufw allow ftpousudo ufw allow 21/tcp

Il existe plusieurs autres façons d’autoriser d’autres connexions, en plus de spécifier un port ou un service connu.

Plages de ports spécifiques

Vous pouvez spécifier des plages de ports avec UFW. Certaines applications utilisent plusieurs ports, au lieu d’un seul port.

Par exemple, pour autoriser les connexions X11, qui utilisent des ports 60006007, utilisez ces commandes:

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

Lorsque vous spécifiez des plages de ports avec UFW, vous devez spécifier le protocole ( tcpou udp) auquel les règles doivent s’appliquer. Nous ne l’avons pas mentionné auparavant car ne pas spécifier le protocole autorise simplement les deux protocoles, ce qui est OK dans la plupart des cas.

Adresses IP spécifiques

Lorsque vous travaillez avec UFW, vous pouvez également spécifier des adresses IP. Par exemple, si vous souhaitez autoriser les connexions à partir d’une adresse IP spécifique, telle qu’une adresse IP professionnelle ou personnelle de 15.15.15.51, vous devez spécifier from, puis l’adresse IP:

sudo ufw allow from 15.15.15.51

Vous pouvez également spécifier un port spécifique auquel l’adresse IP est autorisée à se connecter en ajoutant to any portsuivi du numéro de port. Par exemple, si vous souhaitez autoriser la 15.15.15.51connexion au port 22(SSH), utilisez cette commande:

sudo ufw allow from 15.15.15.51 to any port 22

Sous-réseaux

Si vous souhaitez autoriser un sous-réseau d’adresses IP, vous pouvez le faire en utilisant la notation CIDR pour spécifier un masque de réseau. Par exemple, si vous souhaitez autoriser toutes les adresses IP allant de 15.15.15.1à 15.15.15.254vous pouvez utiliser cette commande:

sudo ufw allow from 15.15.15.0/24

De même, vous pouvez également spécifier le port de destination auquel le sous 15.15.15.0/24– réseau est autorisé à se connecter. Encore une fois, nous utiliserons le port 22(SSH) comme exemple:

sudo ufw allow from 15.15.15.0/24 to any port 22

Connexions à une interface réseau spécifique

Si vous souhaitez créer une règle de pare-feu qui ne s’applique qu’à une interface réseau spécifique, vous pouvez le faire en spécifiant «autoriser l’activation» suivi du nom de l’interface réseau.

Vous pouvez rechercher vos interfaces réseau avant de continuer. Pour ce faire, utilisez cette commande:

ip addr
Output Excerpt:
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
...
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default 
...

La sortie en surbrillance indique les noms d’interface réseau. Ils sont généralement appelés quelque chose comme eth0ou eth1.

Donc, si votre serveur a une interface réseau publique appelée eth0, vous pouvez lui autoriser le trafic HTTP (port 80) avec cette commande:

sudo ufw allow in on eth0 to any port 80

Cela permettrait à votre serveur de recevoir des requêtes HTTP de l’Internet public.

Ou, si vous souhaitez que votre serveur de base de données MySQL (port 3306) écoute les connexions sur l’interface réseau privée eth1, par exemple, vous pouvez utiliser cette commande:

sudo ufw allow in on eth1 to any port 3306

Cela permettrait aux autres serveurs de votre réseau privé de se connecter à votre base de données MySQL.

Étape 6 – Refuser les connexions

Si vous n’avez pas modifié la stratégie par défaut pour les connexions entrantes, UFW est configuré pour refuser toutes les connexions entrantes. En général, cela simplifie le processus de création d’une stratégie de pare-feu sécurisé en vous obligeant à créer des règles qui autorisent explicitement des ports et des adresses IP spécifiques.

Cependant, vous souhaiterez parfois refuser des connexions spécifiques basées sur l’adresse IP source ou le sous-réseau, peut-être parce que vous savez que votre serveur est attaqué à partir de là. De plus, si vous souhaitez modifier votre stratégie entrante par défaut pour autoriser (ce qui n’est pas recommandé dans l’intérêt de la sécurité), vous devez créer des règles de refus pour tous les services ou adresses IP pour lesquels vous ne souhaitez pas autoriser les connexions.

Pour écrire des règles de refus , vous pouvez utiliser les commandes décrites ci-dessus, en remplaçant allow par deny .

Par exemple, pour refuser les connexions HTTP, vous pouvez utiliser cette commande:

sudo ufw deny http

Ou si vous souhaitez refuser toutes les connexions, 15.15.15.51vous pouvez utiliser cette commande:

sudo ufw deny from 15.15.15.51

Voyons maintenant comment supprimer des règles.

Étape 7 – Suppression de règles

Il est tout aussi important de savoir comment supprimer des règles de pare-feu que de les créer. Il existe deux façons différentes de spécifier les règles à supprimer: par numéro de règle ou par la règle réelle (similaire à la façon dont les règles ont été spécifiées lors de leur création). Nous allons commencer par la méthode de suppression par numéro de règle , car elle est plus facile, par rapport à l’écriture des règles à supprimer, si vous êtes nouveau sur UFW.

Par numéro de règle

Si vous utilisez le numéro de règle pour supprimer des règles de pare-feu, la première chose à faire est d’obtenir une liste de vos règles de pare-feu. La commande d’état UFW a une option pour afficher les nombres à côté de chaque règle, comme illustré ici:

sudo ufw status numbered
Numbered Output:
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    15.15.15.0/24
[ 2] 80                         ALLOW IN    Anywhere

Si nous décidons que nous voulons supprimer la règle 2, celle qui autorise les connexions au port 80 (HTTP), nous pouvons le spécifier dans une commande de suppression UFW comme ceci:

sudo ufw delete 2

Cela afficherait une invite de confirmation, puis supprimerait la règle 2, qui autorise les connexions HTTP. Notez que si vous avez activé IPv6, vous souhaitez également supprimer la règle IPv6 correspondante.

Par règle réelle

L’alternative aux numéros de règle consiste à spécifier la règle réelle à supprimer. Par exemple, si vous souhaitez supprimer la allow httprègle, vous pouvez l’écrire comme ceci:

sudo ufw delete allow http

Vous pouvez également spécifier la règle par allow 80, au lieu de par nom de service:

sudo ufw delete allow 80

Cette méthode supprimera les règles IPv4 et IPv6, si elles existent.

Étape 8 – Vérification de l’état et des règles de l’UFW

À tout moment, vous pouvez vérifier l’état d’UFW avec cette commande:

sudo ufw status verbose

Si UFW est désactivé, ce qui est par défaut, vous verrez quelque chose comme ceci:

Output
Status: inactive

Si UFW est actif, ce qui devrait être le cas si vous avez suivi l’étape 3, la sortie indique qu’elle est active et répertorie toutes les règles définies. Par exemple, si le pare-feu est configuré pour autoriser les 22connexions SSH (port ) de n’importe où, la sortie pourrait ressembler à ceci:

Output
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

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

Utilisez la statuscommande si vous souhaitez vérifier comment UFW a configuré le pare-feu.

Étape 9 – Désactiver ou réinitialiser UFW (facultatif)

Si vous décidez que vous ne voulez pas utiliser UFW, vous pouvez le désactiver avec cette commande:

sudo ufw disable

Les règles que vous avez créées avec UFW ne seront plus actives. Vous pouvez toujours exécuter sudo ufw enablesi vous devez l’activer plus tard.

Si vous avez déjà configuré des règles UFW mais que vous décidez de recommencer, vous pouvez utiliser la commande reset:

sudo ufw reset

Cela désactivera UFW et supprimera toutes les règles précédemment définies. Gardez à l’esprit que les politiques par défaut ne changeront pas à leurs paramètres d’origine, si vous les avez modifiées à tout moment. Cela devrait vous donner un nouveau départ avec UFW.

Conclusion

Votre pare-feu doit maintenant être configuré pour autoriser (au moins) les connexions SSH. Assurez-vous d’autoriser toutes les autres connexions entrantes que votre serveur, tout en limitant les connexions inutiles, afin que votre serveur soit fonctionnel et sécurisé.

Pour en savoir plus sur les configurations UFW les plus courantes, consultez le didacticiel UFW Essentials: Common Firewall Rules and Commands .

 

Categories: Réseau, Sécurité, Tutoriel Tags:
Les commentaires sont fermés.