Configurer un pare-feu sur un système d’exploitation tel qu’Ubuntu est une étape cruciale pour renforcer la sécurité de votre système. UFW, acronyme de Uncomplicated Firewall, est une interface utilisateur simplifiée pour iptables, le système de filtrage de paquets sous Linux. L’objectif de cet outil est de simplifier le processus de configuration du pare-feu, rendant ainsi la tâche plus accessible même pour les utilisateurs moins expérimentés.
Pour commencer, il est important de noter qu’UFW est préinstallé sur de nombreuses distributions Ubuntu, mais si ce n’est pas le cas, vous pouvez l’installer en utilisant la commande suivante dans le terminal :

bashsudo apt install ufw
Une fois installé, vous pouvez activer UFW avec la commande :
bashsudo ufw enable
Cette commande activera UFW et le configurera de manière à démarrer automatiquement au démarrage du système. Avant de définir les règles spécifiques, il est essentiel de comprendre certains concepts de base relatifs aux règles du pare-feu.
Le pare-feu fonctionne en décidant quelles connexions autoriser et quelles connexions refuser. Ces décisions se basent sur les règles définies par l’utilisateur. Une règle typique peut permettre ou refuser le trafic à destination ou en provenance d’un certain port, d’une adresse IP ou d’une plage d’adresses IP. Vous pouvez également spécifier le type de protocole autorisé, tel que TCP ou UDP.
Commençons par explorer les commandes UFW de base pour définir ces règles.
Commandes de base UFW
-
Autoriser une connexion entrante sur un port spécifique :
bashsudo ufw allow
Par exemple, pour autoriser les connexions entrantes sur le port 80 (HTTP), vous pouvez utiliser la commande :
bashsudo ufw allow 80
-
Autoriser une connexion entrante avec un protocole spécifique :
bashsudo ufw allow
/ Par exemple, pour autoriser les connexions entrantes sur le port 22 (SSH) avec le protocole TCP, vous pouvez utiliser la commande :
bashsudo ufw allow 22/tcp
-
Autoriser une connexion depuis une adresse IP spécifique :
bashsudo ufw allow from
Cette commande autorise toutes les connexions entrantes depuis une adresse IP spécifique.
-
Refuser une connexion entrante sur un port spécifique :
bashsudo ufw deny
Par exemple, pour refuser les connexions entrantes sur le port 443 (HTTPS), vous pouvez utiliser la commande :
bashsudo ufw deny 443
-
Supprimer une règle :
bashsudo ufw delete
Cette commande supprime une règle spécifique basée sur son numéro.
-
Voir les règles actives :
bashsudo ufw status
Cette commande affiche l’état actuel du pare-feu, listant toutes les règles actives.
Exemples de configuration UFW
Voyons maintenant quelques exemples pratiques de configuration UFW pour différents scénarios.
1. Autoriser le trafic HTTP et HTTPS :
bashsudo ufw allow 80/tcp sudo ufw allow 443/tcp
Ces commandes autorisent le trafic HTTP (port 80) et le trafic HTTPS (port 443).
2. Autoriser SSH uniquement depuis une adresse IP spécifique :
bashsudo ufw allow from
to any port 22
Cela permet uniquement les connexions SSH depuis l’adresse IP spécifiée.
3. Autoriser le trafic sortant pour toutes les connexions :
bashsudo ufw default allow outgoing
Cette commande autorise tout le trafic sortant, ce qui est généralement souhaitable pour permettre aux applications d’initier des connexions.
4. Refuser le trafic entrant par défaut et autoriser uniquement les connexions nécessaires :
bashsudo ufw default deny incoming sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp
Ces commandes définissent une politique par défaut pour refuser tout le trafic entrant, puis autorisent spécifiquement les connexions SSH, HTTP et HTTPS.
Gestion avancée des règles UFW
Outre les commandes de base mentionnées ci-dessus, UFW offre également des fonctionnalités avancées pour une gestion plus fine des règles. Ces fonctionnalités comprennent la gestion des groupes de règles, la spécification de l’interface réseau, et la configuration avancée des règles de protocole.
Gestion des groupes de règles
Vous pouvez regrouper des règles similaires en utilisant des numéros de règles pour les référencer plus facilement. Par exemple, pour autoriser les connexions sur les ports 80 et 443, vous pouvez utiliser les commandes suivantes :
bashsudo ufw allow 80 comment 'Rule for HTTP'
sudo ufw allow 443 comment 'Rule for HTTPS'
Spécification de l’interface réseau
Si vous avez plusieurs interfaces réseau sur votre système, vous pouvez spécifier l’interface à laquelle une règle s’applique. Par exemple, pour autoriser le trafic SSH uniquement sur l’interface eth0, vous pouvez utiliser la commande suivante :
bashsudo ufw allow in on eth0 to any port 22
Configuration avancée des règles de protocole
Vous pouvez spécifier des règles de protocole plus avancées en utilisant le mot-clé ‘proto’. Par exemple, pour autoriser les connexions ICMP (ping), vous pouvez utiliser la commande suivante :
bashsudo ufw allow proto icmp
Conclusion
Configurer un pare-feu avec UFW sous Ubuntu offre un moyen puissant de contrôler le trafic réseau entrant et sortant. Il est essentiel de comprendre les commandes de base, telles que l’autorisation et le refus de connexions sur des ports spécifiques, ainsi que la gestion avancée des règles pour une configuration plus précise. En combinant ces compétences, les utilisateurs peuvent renforcer la sécurité de leur système en définissant des règles adaptées à leurs besoins spécifiques. N’oubliez pas de régulièrement réviser et mettre à jour vos règles de pare-feu pour garantir une protection continue contre les menaces potentielles.
Plus de connaissances
La configuration du pare-feu avec UFW sous Ubuntu ne se limite pas seulement à la définition de règles de base pour autoriser ou refuser le trafic sur des ports spécifiques. Il existe également des fonctionnalités avancées et des stratégies de configuration plus élaborées qui permettent une protection plus fine et une gestion plus sophistiquée du réseau. Explorons davantage ces aspects pour approfondir vos connaissances sur l’utilisation d’UFW.
Stratégies de gestion avancée des règles UFW
1. Utilisation de commentaires :
L’ajout de commentaires aux règles permet de documenter et de comprendre plus facilement la raison d’une règle particulière. Cela peut être utile, surtout lorsqu’un grand nombre de règles est en place. Par exemple :
bashsudo ufw allow 80 comment 'Autoriser le trafic HTTP'
sudo ufw allow 443 comment 'Autoriser le trafic HTTPS'
2. Utilisation de plages d’adresses IP :
Vous pouvez spécifier une plage d’adresses IP au lieu d’une seule adresse IP pour une règle donnée. Cela peut être particulièrement utile pour autoriser ou refuser un ensemble d’adresses IP. Par exemple :
bashsudo ufw allow from 192.168.1.0/24 to any port 22 comment 'Autoriser SSH depuis le réseau local'
Cela autorise les connexions SSH depuis toutes les adresses IP de la plage 192.168.1.0/24.
3. Limitation du taux de connexion :
UFW permet également de limiter le nombre de connexions autorisées par unité de temps. Cela peut aider à atténuer les attaques de type brute force. Par exemple, pour limiter à 6 connexions par minute sur le port SSH :
bashsudo ufw limit 22/tcp
4. Configuration des règles de sortie :
Bien que la plupart des règles soient généralement orientées vers le trafic entrant, il est également possible de configurer des règles de sortie pour contrôler le trafic sortant. Par exemple, pour autoriser le trafic sortant vers un serveur DNS :
bashsudo ufw allow out to any port 53 comment 'Autoriser le trafic DNS sortant'
5. Configuration de l’interface réseau :
La spécification de l’interface réseau peut être particulièrement utile si votre système dispose de plusieurs interfaces. Par exemple, pour autoriser le trafic SSH uniquement sur l’interface eth0 :
bashsudo ufw allow in on eth0 to any port 22 comment 'Autoriser SSH sur l\'interface eth0'
Gestion des groupes de règles
La gestion des groupes de règles peut être une pratique efficace pour simplifier la gestion des règles. Vous pouvez créer des groupes de règles en utilisant des numéros de règles ou des commentaires pour les regrouper. Par exemple, pour regrouper des règles liées à Apache :
bashsudo ufw allow 80/tcp comment 'Règles pour Apache'
sudo ufw allow 443/tcp comment 'Règles pour Apache'
Sauvegarde et restauration des règles UFW
Il est recommandé de sauvegarder régulièrement vos règles UFW pour éviter la perte accidentelle de configurations importantes. Pour sauvegarder les règles actuelles, vous pouvez utiliser la commande suivante :
bashsudo ufw status verbose > ufw-backup.txt
Cela crée un fichier texte contenant toutes les règles UFW actuelles. En cas de besoin, vous pouvez restaurer ces règles en utilisant la commande :
bashsudo ufw restore < ufw-backup.txt
Intégration d'UFW avec les applications système
UFW peut être intégré avec des applications système spécifiques en utilisant des profils d'application. Ces profils préconfigurés simplifient la configuration du pare-feu pour des services spécifiques. Par exemple, pour activer le profil pour OpenSSH :
bashsudo ufw app list # Liste des profils d'application disponibles
sudo ufw app info OpenSSH # Informations détaillées sur le profil OpenSSH
sudo ufw allow OpenSSH # Autoriser le trafic pour OpenSSH en utilisant le profil
Surveiller les journaux UFW
UFW génère des journaux qui peuvent être utiles pour surveiller le trafic réseau. Les journaux sont stockés dans le fichier /var/log/ufw.log
. Vous pouvez les visualiser en utilisant la commande suivante :
bashsudo cat /var/log/ufw.log
Cela peut vous aider à identifier des tentatives de connexion suspectes ou des problèmes liés aux règles du pare-feu.
Conclusion
La configuration avancée du pare-feu avec UFW sous Ubuntu offre une panoplie d'options pour personnaliser et renforcer la sécurité du réseau. En combinant des règles spécifiques, des commentaires, des groupes de règles et d'autres fonctionnalités avancées, les utilisateurs peuvent créer des politiques de pare-feu robustes et adaptées à leurs besoins spécifiques. Il est également recommandé de rester informé des bonnes pratiques de sécurité réseau et de réviser périodiquement la configuration du pare-feu pour garantir une protection continue contre les menaces potentielles.