Aller au contenu principal

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

  1. Installer UFW :
sudo apt update && sudo apt install ufw -y
  1. Activer UFW :
sudo ufw enable
  1. Vérifier l’état du firewall :
sudo ufw status verbose

2) Définition des règles de filtrage

  1. Bloquer tout le trafic entrant par défaut :
sudo ufw default deny incoming
  1. Autoriser les connexions SSH pour permettre l’administration à distance :
sudo ufw allow ssh
  1. Autoriser les connexions HTTP et HTTPS pour un serveur web :
sudo ufw allow http
sudo ufw allow https
  1. Bloquer un accès spécifique (exemple : interdire une IP suspecte) :
sudo ufw deny from 192.168.1.100
  1. Vérifier que les règles sont bien appliquées :
sudo ufw status numbered

Test de mémorisation/compréhension


Quel est le rôle principal d'un firewall ?


Quel type de firewall analyse le contenu des communications ?


Quelle commande permet d'activer UFW ?


Quelle règle UFW bloque tout le trafic entrant par défaut ?


Quel est l’intérêt d’un firewall à état (Stateful Firewall) ?


Quelle commande permet d’autoriser le trafic HTTP avec UFW ?


Quel type de firewall est installé sur un ordinateur personnel ?


Quelle est une limite d’un firewall ?


Quelle commande permet de voir les règles UFW appliquées ?


Quel est l’objectif du filtrage par port dans un firewall ?


Quel type de firewall suit l'état des connexions pour améliorer la sécurité ?


Quelle option UFW permet de bloquer toutes les connexions d'une adresse IP spécifique ?


Quel type de filtrage permet de restreindre l'accès à certains services réseau ?


Quelle commande UFW permet de voir les règles de filtrage sous forme numérotée ?


Quel type de firewall analyse le contenu des communications pour détecter des menaces ?


Quelle est une limite d'un firewall ?


Quelle commande UFW permet d'autoriser les connexions HTTPS ?


Quel type de firewall est installé sur un routeur pour protéger un réseau entier ?


Quel est l'intérêt de l'inspection d'état (Stateful Inspection) ?


Quelle commande UFW permet de bloquer toutes les connexions entrantes par défaut ?


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

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

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

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

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

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

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

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