← retour aux snippets

iptables: filtrer par états conntrack

Autoriser les connexions établies et limiter NEW pour des ports spécifiques.

objectif

Écrire un firewall simple mais robuste en s’appuyant sur conntrack.

code minimal

# politique par défaut
sudo iptables -P INPUT DROP
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT

utilisation

# ICMP
sudo iptables -A INPUT -p icmp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -j ACCEPT

variante(s) utile(s)

# rate-limit SYN
sudo iptables -A INPUT -p tcp --syn --dport 443 -m hashlimit --hashlimit-name https --hashlimit 50/sec --hashlimit-burst 100 --hashlimit-mode srcip --hashlimit-srcmask 32 -j ACCEPT

notes

  • -m conntrack remplace -m state (ancien).
  • combinez avec ipset pour listes.