Retourner sur le site

Règles iptables de base

Construisez un pare-feu iptables/nftables manuel sur VPS HolyCloud : politique DROP, SSH, HTTP/HTTPS et persistance des règles.

Règles iptables de base

UFW reste recommandé pour la plupart des VPS HolyCloud. Ce guide s'adresse aux administrateurs qui veulent un contrôle fin avec iptables (ou la couche legacy de nftables via iptables-nft). Lisez-le après avoir maîtrisé SSH et une session de secours (console KVM).

Prérequis

  • VPS Linux HolyCloud, accès root/sudo
  • Connaissance des ports exposés (SSH, 80, 443)
  • Paquet de persistance : iptables-persistent (Debian/Ubuntu)
  • Console HolyCloud accessible en cas d'erreur de règle

Avertissement : une politique DROP mal ordonnée peut couper SSH immédiatement. Gardez une session ouverte et testez via la console.

Étape 1 : état actuel et sauvegarde

sudo iptables -L -n -v
sudo iptables-save | sudo tee /root/iptables.backup.$(date +%F)

Si UFW est actif, désactivez-le pour éviter les conflits (option avancée) :

sudo ufw disable

Étape 2 : politique par défaut et boucle locale

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Étape 3 : autoriser SSH, HTTP et HTTPS

Adaptez le port SSH :

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT

Limiter SSH à une IP (exemple) :

sudo iptables -I INPUT -p tcp -s 203.0.113.50 --dport 22 -m conntrack --ctstate NEW -j ACCEPT

Étape 4 : journalisation des paquets rejetés (optionnel)

sudo iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables-drop: " --log-level 4
sudo iptables -A INPUT -j DROP

La dernière règle DROP explicite n'est pas toujours nécessaire si la politique INPUT est déjà DROP.

Étape 5 : persistance au redémarrage

sudo apt install -y iptables-persistent
sudo netfilter-persistent save

Les règles sont stockées dans /etc/iptables/rules.v4.

Restauration d'urgence :

sudo iptables-restore < /root/iptables.backup.2026-06-03

Étape 6 : IPv6 (recommandé)

sudo ip6tables -P INPUT DROP
sudo ip6tables -P FORWARD DROP
sudo ip6tables -P OUTPUT ACCEPT
sudo ip6tables -A INPUT -i lo -j ACCEPT
sudo ip6tables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo ip6tables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
sudo netfilter-persistent save

HolyCloud fournit souvent une IPv6 routée : ne laissez pas IPv6 ouvert si vous sécurisez uniquement IPv4.

Vérification

sudo iptables -L INPUT -n -v --line-numbers
curl -I --connect-timeout 5 http://127.0.0.1
sudo conntrack -S 2>/dev/null || true

Depuis l'extérieur : SSH, HTTP et HTTPS doivent répondre ; un scan sur un port fermé (ex. 3306) doit être ignoré (timeout).

Besoin d'aide HolyCloud

  • Perte d'accès SSH : console KVMiptables -P INPUT ACCEPT puis restaurez la sauvegarde
  • Conflit UFW/iptables : choisissez un seul gestionnaire de pare-feu
  • Support : envoyez iptables-save (sans secrets) et la liste des services à publier