GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer un pare-feu avec UFW sur Ubuntu 20.04

Un pare-feu est un outil de surveillance et de filtrage du trafic réseau entrant et sortant. Il fonctionne en définissant un ensemble de règles de sécurité qui déterminent s'il faut autoriser ou bloquer un trafic spécifique.

Ubuntu est livré avec un outil de configuration de pare-feu appelé UFW (Uncomplicated Firewall). Il s'agit d'un frontal convivial pour la gestion des règles de pare-feu iptables. Son objectif principal est de faciliter la gestion du pare-feu ou, comme son nom l'indique, de la simplifier.

Cet article décrit comment utiliser l'outil UFW pour configurer et gérer un pare-feu sur Ubuntu 20.04. Un pare-feu correctement configuré est l'un des aspects les plus importants de la sécurité globale du système.

Prérequis #

Seuls root ou les utilisateurs disposant de privilèges sudo peuvent gérer le pare-feu du système. La meilleure pratique consiste à exécuter des tâches administratives en tant qu'utilisateur sudo.

Installer UFW #

UFW fait partie de l'installation standard d'Ubuntu 20.04 et doit être présent sur votre système. Si pour une raison quelconque il n'est pas installé, vous pouvez installer le package en tapant :

sudo apt updatesudo apt install ufw

Vérifier le statut UFW #

UFW est désactivé par défaut. Vous pouvez vérifier l'état du service UFW avec la commande suivante :

sudo ufw status verbose

La sortie indiquera que l'état du pare-feu est inactif :

Status: inactive

Si UFW est activé, la sortie ressemblera à ce qui suit :

Politiques par défaut UFW #

Le comportement par défaut du pare-feu UFW est de bloquer tout le trafic entrant et de transfert et d'autoriser tout le trafic sortant. Cela signifie que toute personne essayant d'accéder à votre serveur ne pourra pas se connecter à moins que vous n'ouvriez spécifiquement le port. Les applications et services exécutés sur votre serveur pourront accéder au monde extérieur.

Les politiques par défaut sont définies dans le /etc/default/ufw fichier et peut être modifié soit en modifiant manuellement le fichier, soit avec le sudo ufw default <policy> <chain> commande.

Les stratégies de pare-feu constituent la base de la création de règles plus complexes et définies par l'utilisateur. En règle générale, les stratégies par défaut UFW initiales constituent un bon point de départ.

Profils d'application #

Un profil d'application est un fichier texte au format INI qui décrit le service et contient des règles de pare-feu pour le service. Les profils d'application sont créés dans le /etc/ufw/applications.d répertoire lors de l'installation du package.

Vous pouvez lister tous les profils d'application disponibles sur votre serveur en tapant :

sudo ufw app list

Selon les packages installés sur votre système, le résultat ressemblera à ce qui suit :

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Pour trouver plus d'informations sur un profil spécifique et les règles incluses, utilisez la commande suivante :

sudo ufw app info 'Nginx Full'

La sortie montre que le profil "Nginx Full" ouvre les ports 80 et 443 .

Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server

Ports:
  80,443/tcp

Vous pouvez également créer des profils personnalisés pour vos applications.

Activer UFW #

Si vous vous connectez à votre Ubuntu à partir d'un emplacement distant, avant d'activer le pare-feu UFW, vous devez explicitement autoriser les connexions SSH entrantes. Sinon, vous ne pourrez plus vous connecter à la machine.

Pour configurer votre pare-feu UFW afin d'autoriser les connexions SSH entrantes, saisissez la commande suivante :

sudo ufw allow ssh
Rules updated
Rules updated (v6)

Si SSH s'exécute sur un port non standard, vous devez ouvrir ce port.

Par exemple, si votre démon ssh écoute sur le port 7722 , saisissez la commande suivante pour autoriser les connexions sur ce port :

sudo ufw allow 7722/tcp

Maintenant que le pare-feu est configuré pour autoriser les connexions SSH entrantes, vous pouvez l'activer en tapant :

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Vous serez averti que l'activation du pare-feu peut perturber les connexions ssh existantes, tapez simplement y et appuyez sur Enter .

Ouverture des ports #

Selon les applications qui s'exécutent sur le système, vous devrez peut-être également ouvrir d'autres ports. La syntaxe générale pour ouvrir un port est la suivante :

ufw allow port_number/protocol

Vous trouverez ci-dessous quelques façons d'autoriser les connexions HTTP.

La première option consiste à utiliser le nom du service. UFW vérifie le /etc/services fichier pour le port et le protocole du service spécifié :

sudo ufw allow http

Vous pouvez également spécifier le numéro de port et le protocole :

sudo ufw allow 80/tcp

Lorsqu'aucun protocole n'est donné, UFW crée des règles pour tcp et udp .

Une autre option consiste à utiliser le profil d'application; dans ce cas, "Nginx HTTP":

sudo ufw allow 'Nginx HTTP'

UFW prend également en charge une autre syntaxe pour spécifier le protocole à l'aide du proto mot-clé :

sudo ufw allow proto tcp to any port 80

Plages de ports #

UFW vous permet également d'ouvrir des plages de ports. Les ports de début et de fin sont séparés par deux-points (: ), et vous devez spécifier le protocole, soit tcp ou udp .

Par exemple, si vous souhaitez autoriser les ports de 7100 à 7200 sur les deux tcp et udp , vous exécuterez la commande suivante :

sudo ufw allow 7100:7200/tcpsudo ufw allow 7100:7200/udp

Adresse IP spécifique et numéro de port

Pour autoriser les connexions sur tous les ports à partir d'une adresse IP source donnée, utilisez le from mot clé suivi de l'adresse source.

Voici un exemple de liste blanche d'une adresse IP :

sudo ufw allow from 64.63.62.61

Si vous souhaitez autoriser l'accès à l'adresse IP donnée uniquement à un port spécifique, utilisez le to any port mot-clé suivi du numéro de port.

Par exemple, pour autoriser l'accès sur le port 22 depuis une machine avec l'adresse IP 64.63.62.61 , saisissez :

sudo ufw allow from 64.63.62.61 to any port 22

Numéro de sous-réseaux

La syntaxe pour autoriser les connexions à un sous-réseau d'adresses IP est la même que lors de l'utilisation d'une seule adresse IP. La seule différence est que vous devez spécifier le masque de réseau.

Vous trouverez ci-dessous un exemple montrant comment autoriser l'accès pour les adresses IP allant de 192.168.1.1 à 192.168.1.254 vers le port 3360 (MySQL):

sudo ufw allow from 192.168.1.0/24 to any port 3306

Numéro d'interface réseau spécifique

Pour autoriser les connexions sur une interface réseau particulière, utilisez le in on mot clé suivi du nom de l'interface réseau :

sudo ufw allow in on eth2 to any port 3306

Refuser les connexions #

La politique par défaut pour toutes les connexions entrantes est définie sur deny , et si vous ne l'avez pas modifié, UFW bloquera toutes les connexions entrantes, sauf si vous ouvrez spécifiquement la connexion.

Écrire des règles de refus revient au même qu'écrire des règles d'autorisation; il vous suffit d'utiliser le deny mot-clé au lieu de allow .

Disons que vous avez ouvert les ports 80 et 443 , et votre serveur est attaqué depuis le 23.24.25.0/24 réseau. Pour refuser toutes les connexions depuis le 23.24.25.0/24 vous exécuteriez la commande suivante :

sudo ufw deny from 23.24.25.0/24

Voici un exemple de refus d'accès uniquement aux ports 80 et 443 du 23.24.25.0/24 vous pouvez utiliser la commande suivante :

sudo ufw deny proto tcp from 23.24.25.0/24 to any port 80,443

Suppression des règles UFW #

Il existe deux manières différentes de supprimer des règles UFW par numéro de règle et en spécifiant la règle réelle.

La suppression de règles par numéro de règle est plus facile, en particulier lorsque vous débutez avec UFW. Pour supprimer d'abord une règle par un numéro de règle, vous devez trouver le numéro de la règle que vous souhaitez supprimer. Pour obtenir une liste de règles numérotées, utilisez le ufw status numbered commande :

sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 8080/tcp                   ALLOW IN    Anywhere

Pour supprimer la règle numéro 3 , celui qui autorise les connexions au port 8080 , vous saisiriez :

sudo ufw delete 3

La deuxième méthode consiste à supprimer une règle en spécifiant la règle réelle. Par exemple, si vous avez ajouté une règle pour ouvrir le port 8069 vous pouvez le supprimer avec :

sudo ufw delete allow 8069

Désactiver UFW #

Si pour une raison quelconque vous souhaitez arrêter UFW et désactiver toutes les règles, vous pouvez utiliser :

sudo ufw disable

Plus tard, si vous souhaitez réactiver UTF et activer toutes les règles, tapez simplement :

sudo ufw enable

Réinitialiser UFW #

La réinitialisation d'UFW désactivera UFW et supprimera toutes les règles actives. Ceci est utile si vous souhaitez annuler toutes vos modifications et recommencer à zéro.

Pour réinitialiser UFW, tapez la commande suivante :

sudo ufw reset

Numéro de masquage IP

IP Masquerading est une variante de NAT (traduction d'adresse réseau) dans le noyau Linux qui traduit le trafic réseau en réécrivant les adresses IP et les ports source et de destination. Avec IP Masquerading, vous pouvez autoriser une ou plusieurs machines d'un réseau privé à communiquer avec Internet à l'aide d'une machine Linux qui agit comme une passerelle.

La configuration de l'IP Masquerading avec UFW implique plusieurs étapes.

Tout d'abord, vous devez activer le transfert IP. Pour ce faire, ouvrez le /etc/ufw/sysctl.conf fichier :

sudo nano /etc/ufw/sysctl.conf

Trouvez et décommentez la ligne qui lit net.ipv4.ip_forward = 1 :

/etc/ufw/sysctl.conf
net/ipv4/ip_forward=1

Ensuite, vous devez configurer UFW pour autoriser les paquets transférés. Ouvrez le fichier de configuration UFW :

sudo nano /etc/default/ufw

Localisez le DEFAULT_FORWARD_POLICY key, et changez la valeur de DROP pour ACCEPT :

/etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

Vous devez maintenant définir la stratégie par défaut pour le POSTROUTING chaîne dans le nat table et la règle de la mascarade. Pour cela, ouvrez le /etc/ufw/before.rules fichier et ajoutez les lignes surlignées en jaune, comme indiqué ci-dessous :

sudo nano /etc/ufw/before.rules

Ajoutez les lignes suivantes :

/etc/ufw/before.rules
#NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]

# Forward traffic through eth0 - Change to public network interface
-A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE

# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

N'oubliez pas de remplacer eth0 dans le -A POSTROUTING ligne pour correspondre au nom de l'interface réseau publique :

Lorsque vous avez terminé, enregistrez et fermez le fichier.

Enfin, rechargez les règles UFW en désactivant et en réactivant UFW :

sudo ufw disablesudo ufw enable

Ubuntu
  1. Comment configurer le pare-feu UFW sur Ubuntu 18.04

  2. Configurer le pare-feu UFW sur Ubuntu 18.04 - Meilleure méthode ?

  3. Comment configurer un pare-feu avec UFW dans Ubuntu \ Debian

  4. Comment configurer un pare-feu avec UFW sur Ubuntu 16.04

  5. Comment configurer un pare-feu avec UFW sur Ubuntu 18.04

Comment installer le pare-feu UFW sur Ubuntu 16.04 LTS

Comment configurer le pare-feu UFW sur Ubuntu 18.04 LTS

Comment configurer le pare-feu UFW sur Ubuntu 20.04 LTS

Comment configurer le pare-feu avec UFW sur Ubuntu Linux

Comment configurer un pare-feu avec UFW sur Debian 11

Comment configurer le pare-feu UFW sur Ubuntu 20.04