Firewall
Sécuriser un réseau en filtrant le trafic
Un firewall (pare-feu) est un dispositif de sécurité qui contrôle le trafic réseau entrant et sortant en fonction de règles définies.
Un firewall permet de bloquer les connexions non autorisées tout en laissant passer celles qui sont légitimes.
1. Fonctionnement d’un Firewall
Un firewall agit comme une barrière entre un réseau interne sécurisé et un réseau externe, comme Internet.
Il analyse chaque paquet de données qui transite et applique des règles pour autoriser ou bloquer le trafic.
Types de filtrage
- Filtrage par adresse IP : Autoriser ou bloquer des adresses spécifiques.
- Filtrage par port : Restreindre l’accès à certains services (HTTP, SSH, FTP, etc.).
- Filtrage par protocole : Contrôler les types de communication (TCP, UDP, ICMP).
- Inspection d’état (Stateful Inspection) : Suivre l’état des connexions pour décider si un paquet est légitime.
2. Types de Firewalls
- Firewall à filtrage de paquets : Examine chaque paquet indépendamment sans tenir compte du contexte.
- Firewall à état (Stateful Firewall) : Suit l’état des connexions pour une meilleure sécurité.
- Firewall applicatif (Proxy Firewall) : Analyse le contenu des communications pour détecter des menaces.
- Firewall personnel : Installé sur un ordinateur pour protéger une seule machine.
- Firewall réseau : Déployé sur un routeur ou un serveur pour sécuriser un réseau entier.
3. Avantages et limites d’un Firewall
✅ Avantages :
- Protection contre les accès non autorisés.
- Blocage des connexions suspectes.
- Surveillance et journalisation du trafic réseau.
❌ Limites :
- Ne protège pas contre les attaques internes.
- Inefficace contre les malwares déjà présents sur un système.
- Peut être contourné par des techniques avancées (tunneling, attaques chiffrées).
Exemple pratique
Configuration d’un Firewall avec UFW
Il est possible de configurer un firewall avec UFW (Uncomplicated Firewall) sur un système Linux pour sécuriser un serveur ou un poste de travail.
1) Installation et activation de UFW
- Installer UFW :
sudo apt update && sudo apt install ufw -y
- Activer UFW :
sudo ufw enable
- Vérifier l’état du firewall :
sudo ufw status verbose
2) Définition des règles de filtrage
- Bloquer tout le trafic entrant par défaut :
sudo ufw default deny incoming
- Autoriser les connexions SSH pour permettre l’administration à distance :
sudo ufw allow ssh
- Autoriser les connexions HTTP et HTTPS pour un serveur web :
sudo ufw allow http
sudo ufw allow https
- Bloquer un accès spécifique (exemple : interdire une IP suspecte) :
sudo ufw deny from 192.168.1.100
- Vérifier que les règles sont bien appliquées :
sudo ufw status numbered
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Dans ce TP, il est demandé de configurer un firewall avec UFW sur un serveur Linux pour sécuriser un serveur en appliquant des règles précises et en testant leur efficacité.
Contexte
Vous administrez un serveur Linux hébergeant plusieurs services :
- Un serveur SSH accessible uniquement depuis un réseau interne.
- Un serveur web (HTTP et HTTPS) accessible depuis Internet.
- Une base de données MySQL qui ne doit être accessible qu’en local.
- Une règle stricte de blocage des connexions non autorisées.
Votre mission est de configurer le firewall UFW pour respecter ces exigences.
1) Vérifier l'état initial de UFW
Avant toute configuration, il est important de vérifier si UFW est installé et activé.
Action à réaliser
Exécuter la commande suivante pour vérifier l’état du firewall :
sudo ufw status verbose
Question de réflexion
- Que se passe-t-il si UFW est désactivé ?
- Pourquoi est-il important de vérifier son état avant d’appliquer des règles ?
Une solution
Vous devez être connecté pour voir le contenu.
2) Définir une politique de sécurité par défaut
Il est recommandé de bloquer tout le trafic entrant par défaut et d’autoriser uniquement les connexions nécessaires.
Action à réaliser
Appliquer les règles suivantes :
sudo ufw default deny incoming
sudo ufw default allow outgoing
Question de réflexion
- Pourquoi est-il recommandé de bloquer tout le trafic entrant par défaut ?
- Quelle est la différence entre deny incoming et allow outgoing ?
Une solution
Vous devez être connecté pour voir le contenu.
3) Autoriser uniquement les connexions SSH depuis le réseau interne
Le serveur doit être administrable via SSH, mais uniquement depuis le réseau interne (ex. : 192.168.1.0/24).
Action à réaliser
Autoriser SSH uniquement pour une plage d’adresses IP :
sudo ufw allow from 192.168.1.0/24 to any port 22
Question de réflexion
- Pourquoi est-il risqué d’autoriser SSH depuis n’importe quelle adresse IP ?
- Que signifie /24 dans l’adresse IP ?
Une solution
Vous devez être connecté pour voir le contenu.
4) Autoriser l’accès au serveur web (HTTP et HTTPS)
Le serveur héberge un site web accessible depuis Internet. Il faut donc autoriser les connexions HTTP (port 80) et HTTPS (port 443).
Action à réaliser
Ajouter les règles suivantes :
sudo ufw allow http
sudo ufw allow https
Question de réflexion
- Pourquoi est-il nécessaire d’autoriser les connexions HTTPS en plus de HTTP ?
Une solution
Vous devez être connecté pour voir le contenu.
5) Protéger la base de données MySQL
Le serveur exécute une base de données MySQL sur le port 3306, mais elle ne doit être accessible qu’en local.
Action à réaliser
Restreindre l’accès à MySQL :
sudo ufw allow from 127.0.0.1 to any port 3306
Question de réflexion
- Pourquoi ne faut-il pas exposer une base de données directement sur Internet ?
Une solution
Vous devez être connecté pour voir le contenu.
6) Bloquer une adresse IP suspecte
Si une adresse IP tente des connexions suspectes, il est possible de la bloquer.
Action à réaliser
Bloquer une adresse IP spécifique (ex. : 203.0.113.50) :
sudo ufw deny from 203.0.113.50
Question de réflexion
- Comment identifier une adresse IP suspecte ?
Une solution
Vous devez être connecté pour voir le contenu.
7) Vérifier et tester la configuration
Une fois toutes les règles appliquées, il est essentiel de vérifier leur bon fonctionnement.
Action à réaliser
Lister les règles UFW en cours :
sudo ufw status numbered
Tester les connexions :
- Depuis un ordinateur du réseau interne, vérifier que SSH fonctionne.
- Depuis un navigateur, accéder au site web via HTTP et HTTPS.
- Depuis le serveur, tester l’accès à MySQL en local.
Question de réflexion
- Que faire si une règle ne fonctionne pas comme prévu ?
Une solution
Vous devez être connecté pour voir le contenu.
Conclusion
Ce TP a permis de configurer un firewall UFW en respectant des règles de sécurité précises. Il a également mis en évidence l'importance de tester chaque règle appliquée.
Bonus :
- Quelles autres mesures de sécurité peuvent être mises en place en complément d’un firewall ?
- Comment automatiser la gestion des règles UFW sur un serveur en production ?
Une solution
Vous devez être connecté pour voir le contenu.