Comment configurer nftables pour un serveur web

Dans cet article, nous allons voir comment installer et configurer nftables sur une distribution Linux Debian 12 pour sécuriser un serveur web en autorisant uniquement les ports 443 (HTTPS) et 22 (SSH).

Installation de nftables

Sur Debian 12, nftables est installé par défaut. Si ce n'est pas le cas, vous pouvez l'installer avec la commande suivante :

sudo apt update && sudo apt install nftables -y

Ensuite, assurez-vous que le service nftables est activé au démarrage :

sudo systemctl enable nftables

Et démarrez le service :

sudo systemctl start nftables

Configuration de nftables

Nous allons maintenant créer une configuration de base qui :

Ouvrez le fichier de configuration principal :

sudo nano /etc/nftables.conf

Remplacez le contenu par :

    
#!/usr/sbin/nft -f

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

# Autoriser les connexions déjà établies
ct state established,related accept;

# Autoriser le trafic en provenance de localhost
iif lo accept;

# Autoriser SSH (port 22)
tcp dport 22 accept;

# Autoriser HTTPS (port 443)
tcp dport 443 accept;
}

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

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

Explication des commandes

Application des règles

Pour appliquer les règles définies, rechargez nftables :

sudo systemctl restart nftables

Vérifiez que les règles sont bien en place :

sudo nft list ruleset

Conclusion

Vous avez maintenant un pare-feu fonctionnel avec nftables qui protège votre serveur en autorisant uniquement SSH et HTTPS. Cette configuration peut être adaptée en fonction de vos besoins.