Retour au cours

pare-feu simple avec ufw

Objectifs

  • Comprendre le rôle d’un pare-feu pour la sécurité d’un serveur.
  • Utiliser ufw (Uncomplicated Firewall) pour gérer simplement les règles de pare-feu.
  • Définir des politiques par défaut et ajouter des règles pour autoriser ou refuser du trafic.
  • Activer le pare-feu sans se bloquer l’accès à son propre serveur.

Qu’est-ce qu’un pare-feu ?

Un pare-feu (firewall) est un composant de sécurité qui filtre le trafic réseau entrant et sortant. Son travail est d’agir comme une barrière, en n’autorisant que les connexions légitimes et en bloquant tout le reste. C’est l’une des premières lignes de défense pour sécuriser un serveur.

Sous Linux, le système de pare-feu intégré au noyau s’appelle netfilter, et on le manipule traditionnellement avec la commande iptables, qui est très puissante mais complexe. ufw (Uncomplicated Firewall) est une interface beaucoup plus simple, installée par défaut sur Ubuntu et ses dérivés.

Les commandes de base avec ufw

Toutes les commandes ufw qui modifient la configuration nécessitent les privilèges sudo.

1. Vérifier le statut

Avant toute chose, vérifiez si ufw est actif.

sudo ufw status
# Status: inactive

La commande sudo ufw status verbose donne plus de détails.

2. Définir les politiques par défaut

C’est la première chose à faire. La bonne pratique est de tout interdire par défaut, puis d’ouvrir uniquement ce qui est nécessaire.

# Refuser toutes les connexions entrantes
sudo ufw default deny incoming

# Autoriser toutes les connexions sortantes (comportement standard)
sudo ufw default allow outgoing

3. Ajouter des règles (allow / deny)

Maintenant que tout est bloqué en entrée, il faut ouvrir les ports pour les services légitimes.

# Autoriser le trafic SSH (port 22). INDISPENSABLE !
sudo ufw allow ssh
# ou
sudo ufw allow 22

# Autoriser le trafic web HTTP (port 80) et HTTPS (port 443)
sudo ufw allow http
sudo ufw allow https
# ou
sudo ufw allow 80
sudo ufw allow 443

# Autoriser un port spécifique pour une application
sudo ufw allow 3000/tcp

# Refuser explicitement un port
sudo ufw deny 1234

ufw connaît les noms des services les plus courants (ssh, http, etc.) grâce au fichier /etc/services.

4. Activer le pare-feu

Une fois que vous avez défini vos règles (et surtout la règle pour SSH !), vous pouvez activer le pare-feu.

sudo ufw enable
# 'Command may disrupt existing ssh connections. Proceed with operation (y|n)?'
# Confirmez avec 'y'.

5. Supprimer une règle

Pour supprimer une règle, le plus simple est d’afficher les règles numérotées, puis de supprimer par numéro.

sudo ufw status numbered
# Status: active
#      To                         Action      From
#      --                         ------      ----
# [ 1] 22/tcp                     ALLOW IN    Anywhere
# [ 2] 80/tcp                     ALLOW IN    Anywhere

# Supprimer la règle numéro 2
sudo ufw delete 2

Le workflow de configuration sécurisé

  1. sudo ufw allow ssh : TOUJOURS COMMENCER PAR LÀ.
  2. sudo ufw default deny incoming
  3. sudo ufw default allow outgoing
  4. Ajouter les autres règles allow pour vos services (web, etc.).
  5. sudo ufw enable
  6. sudo ufw status pour vérifier que tout est correct.

Pièges courants

  • Se bloquer soi-même : Activer le pare-feu avec ufw enable sans avoir préalablement autorisé le port SSH (allow ssh). Si vous êtes connecté à distance, votre connexion sera coupée et vous ne pourrez plus vous reconnecter.
  • Ouvrir trop de ports : N’ouvrez que les ports qui sont absolument nécessaires au fonctionnement de vos applications.

Exercices

(Ces exercices sont plus sûrs à réaliser sur une machine virtuelle ou un serveur de test).

  1. Vérifier l’état initial :

    • Exécutez sudo ufw status. Est-ce que le pare-feu est actif sur votre machine ?
  2. Mise en place des règles :

    • Autorisez les connexions SSH : sudo ufw allow ssh.
    • Définissez la politique par défaut pour refuser les connexions entrantes.
    • Autorisez le trafic web HTTPS (sudo ufw allow https).
  3. Activation et vérification :

    • Activez le pare-feu avec sudo ufw enable.
    • Vérifiez l’état final avec sudo ufw status numbered. Vous devriez voir vos règles SSH et HTTPS listées.
  4. Nettoyage :

    • Pour revenir à l’état initial, vous pouvez simplement désactiver le pare-feu : sudo ufw disable.
    • Ou supprimer les règles une par une avec sudo ufw delete.