Iptables

De Wiki de Nelly & Richard
Sauter à la navigation Sauter à la recherche

Introduction

Schéma d'un réseau domestique

Voici un graphique avec des bordures et des nœuds qui peut contenir des hyperliens.

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

Liens externes