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é
sudo ufw allow ssh: TOUJOURS COMMENCER PAR LÀ.sudo ufw default deny incomingsudo ufw default allow outgoing- Ajouter les autres règles
allowpour vos services (web, etc.). sudo ufw enablesudo ufw statuspour vérifier que tout est correct.
Pièges courants
- Se bloquer soi-même : Activer le pare-feu avec
ufw enablesans 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).
-
Vérifier l’état initial :
- Exécutez
sudo ufw status. Est-ce que le pare-feu est actif sur votre machine ?
- Exécutez
-
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).
- Autorisez les connexions SSH :
-
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.
- Activez le pare-feu avec
-
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.
- Pour revenir à l’état initial, vous pouvez simplement désactiver le pare-feu :