Introduction à iptables
iptables est le firewall natif de Linux. Contrairement à UFW (qui est un front-end simplifié), iptables offre un contrôle granulaire total sur le filtrage réseau.
Concepts clés
- Tables :
filter(par défaut),nat,mangle - Chaînes :
INPUT(entrant),OUTPUT(sortant),FORWARD(transit) - Cibles :
ACCEPT,DROP,REJECT,LOG
Règles de base
Politique par défaut : tout bloquer
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
Autoriser le loopback
iptables -A INPUT -i lo -j ACCEPT
Autoriser les connexions établies
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Autoriser SSH, HTTP, HTTPS
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Rate limiting SSH
iptables -A INPUT -p tcp --dport 22 -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 4 --name SSH -j DROP
Persistance des règles
sudo apt install iptables-persistent
sudo netfilter-persistent save
Vérifier les règles actives
sudo iptables -L -n -v
Conclusion
Pour la plupart des cas, UFW est suffisant. Utilisez iptables directement si vous avez besoin de règles complexes (NAT, rate limiting avancé, port knocking).