**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**

# Howto IPTables

<http://netfilter.org/>

_netfilter_ est la couche de firewalling sous Linux, gérable via la commande *iptables*.

## Firewall sur un serveur

Sur un serveur, nous gérons le firewall avec le script *minifirewall*.

### minifirewall

<https://forge.evolix.org/projects/minifirewall>

Cela s'installe ainsi :

~~~
# [ -e /etc/firewall.rc ] && cp /etc/firewall.rc /etc/firewall.rc.bak
# cd /etc && wget "https://forge.evolix.org/projects/minifirewall/repository/revisions/master/raw/firewall.rc" -O firewall.rc
# cd /etc/init.d && wget "https://forge.evolix.org/projects/minifirewall/repository/revisions/master/raw/minifirewall" -O minifirewall
# chmod 700 /etc/init.d/minifirewall
# chmod 600 /etc/firewall.rc
~~~

On peut ensuite gérer les règles via le fichier _/etc/firewall.rc_ et on peut ainsi :

~~~
# /etc/init.d/minifirewall restart
# /etc/init.d/minifirewall stop
~~~

### Divers

En cas de besoin de bannir temporairement une adresse IP :

~~~
# iptables -I INPUT -s IP_PIRATE -j DROP
~~~

## NAT bidirectionnel

~~~
# iptables -t nat -A PREROUTING -i eth0 -d IP_publique -j DNAT --to-destination 10.1.2.3
# iptables -t nat -A POSTROUTING -o eth0 -s 10.1.2.3 -j SNAT --to-source IP_publique
~~~

## Exemples

### Autoriser toute une interface

Lorsqu'un serveur dispose de plusieurs interfaces, dont une pour un réseau local privé, on  peut autoriser tout le trafic sur cette interface (ici "eth1") :

~~~
/sbin/iptables -A INPUT -i eth1 -j ACCEPT
~~~

### Autoriser la sortie sur un port

Exemple si on a un serveur Munin centralisé, il a besoin de joindre les "munin-node" :

~~~
/sbin/iptables -A INPUT -p tcp --sport 4949 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
~~~