Fiche pare-feu Linux : UFW (simple) et nftables (avancé)

Pour les étudiants en BTS CIEL ou SIO, le pare-feu est indispensable pour sécuriser un serveur.
Cette fiche couvre :

  • règles d’entrée / sortie
  • ouverture des services (SSH, HTTP)
  • blocage du ping (ICMP)
  • lien avec fail2ban

Configuration UFW (simple et rapide)

# =========================================================
# INSTALLATION
# =========================================================

apt install ufw -y

# =========================================================
# POLITIQUE PAR DEFAUT
# =========================================================

ufw default deny incoming
ufw default allow outgoing

# =========================================================
# OUVERTURE DES SERVICES
# =========================================================

# SSH
ufw allow 22/tcp

# HTTP
ufw allow 80/tcp

# HTTPS
ufw allow 443/tcp

# =========================================================
# BLOQUER LE PING (ICMP)
# =========================================================

nano /etc/ufw/before.rules

# Ajouter dans la section icmp :
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

# =========================================================
# ACTIVER UFW
# =========================================================

ufw enable

# Vérification
ufw status verbose

Explication UFW

  • deny incoming → bloque tout par défaut
  • allow outgoing → autorise les sorties
  • règles spécifiques → ouverture contrôlée

Configuration nftables (niveau avancé)

# =========================================================
# INSTALLATION
# =========================================================

apt install nftables -y

# =========================================================
# CONFIGURATION
# =========================================================

nano /etc/nftables.conf

table inet filter {

chain input {
type filter hook input priority 0;
policy drop;

# Autoriser loopback
iif lo accept

# Connexions établies
ct state established,related accept

# SSH
tcp dport 22 accept

# HTTP / HTTPS
tcp dport {80, 443} accept

# ICMP (ping) bloqué
ip protocol icmp icmp type echo-request drop
}

chain forward {
type filter hook forward priority 0;
policy drop;
}

chain output {
type filter hook output priority 0;
policy accept;
}
}

# =========================================================
# ACTIVER
# =========================================================

systemctl enable nftables
systemctl restart nftables

# Vérifier
nft list ruleset

Explication nftables

  • policy drop → tout bloqué par défaut
  • accept loopback → communication interne
  • established → connexions déjà ouvertes
  • règles spécifiques → autorisation fine

Lien avec fail2ban

Fail2ban ajoute automatiquement des règles firewall pour bloquer les IP malveillantes.

Avec nftables ou iptables :

  • fail2ban injecte des règles dynamiques
  • bannissement temporaire

Exemple :

fail2ban-client status sshd

Cas pratiques

Autoriser uniquement SSH depuis un réseau

ufw allow from 192.168.1.0/24 to any port 22

Bloquer une IP

ufw deny from 192.168.1.50

Tester un port

nc -zv 192.168.1.10 22

Bonnes pratiques

  • toujours définir une politique par défaut restrictive
  • ouvrir uniquement les ports nécessaires
  • tester après chaque règle
  • documenter les règles
  • utiliser fail2ban en complément
  • éviter de se bloquer en SSH

Récapitulatif des fichiers importants

FichierRôle
/etc/ufw/before.rulesrègles ICMP
/etc/nftables.confconfiguration nftables
ufw statusétat firewall
nft list rulesetrègles actives

Conclusion

Un pare-feu permet :

  • de contrôler les accès
  • de protéger les services
  • de réduire la surface d’attaque

La combinaison :

  • règles strictes
  • fail2ban
  • supervision

constitue une base solide de sécurité.


Retour en haut