Iptables
De Wiki de Nelly & Richard.
Sommaire |
Introduction
- Bon comme d'habitude la doc d'iptables est disponible ici.
- Voici deux liens qui pourront vous être utile à la configuration de votre passerelle/firewall :
Schéma d'un réseau domestique
Bases d'iptables
- Table filter : filtrage traffic entrant, interne, sortant (chaînes associées : INPUT, OUTPUT, FORWARD)
- Table mangle : modifications spécifiques (chaînes associées : INPUT, OUTPUT, POSTROUTING, PREROUTING)
- Table nat : NAT, masquerading, préroutage, postroutage, ... (chaînes associées : OUTPUT, POSTROUTING, PREROUTING)
Filtrage
Je vous montrerai des exemples afin que vous voyez certaines possibilités. Pour de plus amples détails un man iptables, iptables --help, site de netfilter, ...
- filtrage mac : même si il est possible d'usurper une adresse MAC rapidement, le but est toujours de ralentir la personne qui tente une intrusion.
$ iptables -A INPUT -m mac --mac-source 42.42.AA.42.42.AA -j DROP
- filtrage d'un ou plusieurs ports
$ iptables -A INPUT -s 10.0.0.1 -p tcp --dport ssh -j ACCEPT $ iptables -A INPUT -p udp --dport 53 --sport 1024: -j REJECT $ iptables -A INPUT -i eth1 -s toto.org -p tcp --dport 33 -j DROP
NAT et masquage IP
- Pour activer le NAT il faut d'abord l'activer sur la plupart des distributions :
# pour l'activer pendant un uptime $ sysctl -w net.ipv4.ip_forward=1 # pour qu'il soit effectif définitivement $ vim /etc/sysctl.conf ajouter la ligne "net.ipv4.ip_forward=1" $ sysctl -p /etc/sysctl.conf
- Nous allons considérer dans cet exemple que notre réseau local est sûr (eth0 étant branché à la box et eth1 à l'intranet)
# table nat $iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# connexion sortante $ iptables -A FORWARD -i eth1 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # connexion entrantes $ iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT