Voici quelques notes concernant l'utilisation d'iptables pour configurer un firewall. La configuration du firewall se base sur la table “filter” et est subdivisée en 3 chaînes (notée <CHAIN>) :
Pour afficher les règles de la table filter :
$ iptables -t filter -L -v
Pour effacer toutes les règles ajoutées :
$ iptables -t filter -F
Pour chaque règle que l'on ajoute, trois actions sont possibles (notée <ACTION>) :
Pour modifier la politique par défaut du firewall :
$ iptables -t filter -P <CHAIN> <ACTION>
Pour ajouter une nouvelle règle à une chaîne du firewall (attention à l'ordre des règles) :
$ iptables -t filter -A <CHAIN> <SRC> <DST> <...> -j <ACTION>
Pour plus d'info, consulter le manuel : man iptables.
Soit 192.168.1.0/24 notre réseau interne. On configure le firewall sur immortal notre passerelle.
$ iptables -F $ iptables -P FORWARD DROP $ iptables -P INPUT DROP $ iptables -P OUTPUT DROP # traffic sortant $ iptables -A FORWARD -s 192.168.1.0/24 -m multiport -p tcp --dport 22,80 -j ACCEPT # traffic retour $ iptables -A FORWARD -d 192.168.1.0/24 -m multiport -p tcp --sport 22,80 -m state --state ESTABLISHED -j ACCEPT
Soit nile la machine 192.168.0.4. On configure le firewall sur immortal notre passerelle.
$ iptables -F $ iptables -P FORWARD DROP $ iptables -A FORWARD -d 192.168.0.4 -p icmp -m limit --limit 6/mn --limit-burst 1 -j ACCEPT $ iptables -A FORWARD -s 192.168.0.4 -p icmp -m state --state ESTABLISHED -j ACCEPT
Pour faire un test depuis une machine extérieure, on envoie un ping à nile toutes les 5 secondes…
$ ping -i 5 192.168.0.4