Les deux premières leçons à retenir en ce qui concerne NetFilter :
- Il faut toujours initialiser les cibles par défaut, même pour les chaînes des tables que nous ne pensons peut-être pas utiliser. Il faut en toute situation connaître l’état de de ces cibles. Un script Netfilter devrait donc toujours commencer par :
# Initialisation de la table FILTER
iptables -t filter -Fiptables -t filter -Xiptables -t filter -P INPUT DROPiptables -t filter -P OUTPUT DROPiptables -t filter -P FORWARD DROP
# Initialisation de la table NAT
iptables -t nat -Fiptables -t nat -Xiptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPTiptables -t nat -P OUTPUT ACCEPT
# Initialisation de la table MANGLE
iptables -t mangle -Fiptables -t mangle -Xiptables -t mangle -P PREROUTING ACCEPTiptables -t mangle -P INPUT ACCEPTiptables -t mangle -P OUTPUT ACCEPTiptables -t mangle -P FORWARD ACCEPTiptables -t mangle -P POSTROUTING ACCEPT
- En cas de doute, utiliser la commande “iptables -L -v -t table” permettant d’obtenir bon nombre d’informations sur le nombre de paquets pour lesquels s’applique une règle ou un comportement par défaut.