Un pare-feu correctement configuré est l'un des aspects les plus importants de la sécurité globale du système.
UFW (Uncomplicated Firewall) est une interface conviviale pour la gestion des règles de pare-feu iptables. Son objectif principal est de faciliter la gestion d'iptables ou, comme son nom l'indique, de la simplifier.
Cet article décrit comment configurer un pare-feu avec UFW sur Debian 10.
Prérequis #
Seul root ou utilisateur avec des privilèges sudo peut gérer le pare-feu du système.
Installation d'UFW #
Entrez la commande suivante pour installer le ufw
paquet :
sudo apt update
sudo apt install ufw
Vérification de l'état UFW #
L'installation n'activera pas automatiquement le pare-feu pour éviter un verrouillage du serveur. Vous pouvez vérifier l'état d'UFW en tapant :
sudo ufw status verbose
La sortie ressemblera à ceci :
Status: inactive
Si UFW est activé, la sortie ressemblera à ce qui suit :
Politiques par défaut UFW #
Par défaut, UFW bloque toutes les connexions entrantes et autorise toutes les connexions sortantes. 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 le 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é à l'aide de sudo ufw default <policy> <chain>
commande.
Les stratégies de pare-feu constituent la base de la création de règles plus détaillées 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 #
La plupart des applications sont livrées avec un profil d'application qui décrit le service et contient les paramètres UFW. Le profil est automatiquement créé dans le /etc/ufw/applications.d
répertoire lors de l'installation du package.
Pour répertorier tous les profils d'application disponibles sur votre système, tapez :
sudo ufw utf --help
Selon les packages installés sur votre système, le résultat ressemblera à ce qui suit :
Available applications:
DNS
IMAP
IMAPS
OpenSSH
POP3
POP3S
Postfix
Postfix SMTPS
Postfix Submission
...
Pour trouver plus d'informations sur un profil spécifique et les règles incluses, utilisez les app info
commande, suivi du nom du profil. Par exemple, pour obtenir des informations sur le profil OpenSSH que vous utiliseriez :
sudo ufw app info OpenSSH
Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.
Port:
22/tcp
La sortie comprend le nom du profil, le titre, la description et les règles de pare-feu.
Autoriser les connexions SSH #
Avant d'activer d'abord le pare-feu UFW, vous devez autoriser les connexions SSH entrantes.
Si vous vous connectez à votre serveur depuis un emplacement distant et que vous activez le pare-feu UFW avant d'autoriser explicitement les connexions SSH entrantes, vous ne pourrez plus vous connecter à votre serveur Debian.
Pour configurer votre pare-feu UFW afin qu'il accepte les connexions SSH, exécutez la commande suivante :
sudo ufw allow OpenSSH
Rules updated
Rules updated (v6)
Si le serveur SSH écoute sur un port autre que le port par défaut 22, vous devrez ouvrir ce port.
Par exemple, votre serveur ssh écoute sur le port 7722
, vous exécuteriez :
sudo ufw allow 7722/tcp
Activer UFW #
Maintenant que le pare-feu UFW est configuré pour autoriser les connexions SSH entrantes, activez-le en exécutant :
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 "y" et appuyez sur "Entrée".
Ouverture des ports #
Selon les applications qui s'exécutent sur votre serveur, vous devrez ouvrir les ports sur lesquels les services s'exécutent.
Vous trouverez ci-dessous plusieurs exemples montrant comment autoriser les connexions entrantes à certains des services les plus courants :
Ouvrir le port 80 - HTTP #
Autoriser les connexions HTTP :
sudo ufw allow http
Au lieu du http
profil, vous pouvez utiliser le numéro de port, 80
:
sudo ufw allow 80/tcp
Ouvrir le port 443 - HTTPS #
Autoriser les connexions HTTPS :
sudo ufw allow https
Vous pouvez également utiliser le numéro de port, 443
:
sudo ufw allow 443/tcp
Ouvrir le port 8080 #
Si vous exécutez Tomcator toute autre application qui écoute sur le port 8080
ouvrez le port avec :
sudo ufw allow 8080/tcp
Ouverture des plages de ports #
Avec UFW, vous pouvez également autoriser l'accès aux plages de ports. Lors de l'ouverture d'une plage, vous devez spécifier le protocole du port.
Par exemple, pour autoriser les ports de 7100
à 7200
sur les deux tcp
et udp
, exécutez la commande suivante :
sudo ufw allow 7100:7200/tcp
sudo ufw allow 7100:7200/udp
Autoriser des adresses IP spécifiques #
Pour autoriser l'accès sur tous les ports à partir d'une adresse IP spécifique, utilisez le ufw allow from
commande suivie de l'adresse IP :
sudo ufw allow from 64.63.62.61
Autoriser des adresses IP spécifiques sur un port spécifique #
Pour autoriser l'accès sur un port spécifique, disons le port 22
depuis votre machine de travail avec l'adresse IP 64.63.62.61, utilisez la commande suivante :
sudo ufw allow from 64.63.62.61 to any port 22
Autoriser les sous-réseaux #
La commande permettant d'autoriser la connexion à partir d'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. Par exemple, si vous souhaitez autoriser l'accès aux adresses IP allant de 192.168.1.1 à 192.168.1.254 au port 3360 (MySQL), vous pouvez utiliser cette commande :
sudo ufw allow from 192.168.1.0/24 to any port 3306
Autoriser les connexions à une interface réseau spécifique #
Pour autoriser l'accès sur un port spécifique, disons le port 3360 uniquement à une interface réseau spécifique eth2
, utilisez allow in on
et le 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
, ce qui signifie qu'UFW bloquera toutes les connexions entrantes, sauf si vous ouvrez spécifiquement la connexion.
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
, utilisez la commande suivante :
sudo ufw deny from 23.24.25.0/24
Si vous souhaitez uniquement refuser l'accès aux ports 80
et 443
du 23.24.25.0/24
utiliser :
sudo ufw deny from 23.24.25.0/24 to any port 80
sudo ufw deny from 23.24.25.0/24 to any port 443
Écrire des règles de refus revient au même qu'écrire des règles d'autorisation. Il suffit de remplacer allow
avec deny
.
Supprimer les 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 UFW par numéro de règle est plus facile, surtout si vous débutez avec UFW.
Pour supprimer d'abord une règle par son numéro, vous devez trouver le numéro de la règle que vous souhaitez supprimer. Pour ce faire, exécutez la commande suivante :
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, la règle qui autorise les connexions au port 8080, vous pouvez utiliser la commande suivante :
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 exécutées :
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 simplement la commande suivante :
sudo ufw reset