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
DROPmal 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 KVM →
iptables -P INPUT ACCEPTpuis 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