Table of Contents
Vu que notre petite Lily allait dormir dans notre chambre, il était impensable qu'un ordinateur y fasse du bruit. Or, la connexion câble dont je suis l'heureux bénéficiaire arrive dans cette pièce douillette qu'est notre chambre. Il a donc fallu trouver une solution silencieuse: le tuxscreen qui trainait dans son emballage d'origine depuis près d'un an.
Philippe Teuwen s'est gentiment proposé pour l'installation du tuxscreen en routeur/firewall. Vu que le Tuxscreen n'est pas un foudre de guerre et qu'il n'a pas de disque dur, il était impensable d'y mettre un serveur web. Donc, c'est callendor qu'il s'y est collé, comme auparavant. A la différence près que maintenant il est derrière le firewall, et qu'il ne dispose donc plus d'une adresse IP publique.
C'est là que netfilter intervient.
Netfilter (et iptables) est un cadre dans le noyau Linux 2.4 qui permet le filtrage de paquets, la translation d'adresses réseau (NAT) et la manipulation de paquets.
Ceci va permettre au webserveur derrière le firewall d'être visible au public (l'Internet). Cela va également me permettre d'accéder directement à mes machines depuis l'extérieur via ssh. Mais cela va surtout permettre le partage de la connexion internet du tuxscreen vers mes autres ordinateurs.
Documentation
- NetFilter par Christian Caleca
- Introduction à NetfFilter / IPTables - Interactions avec AODV présentée dans le cadre de ReseauCitoyen le 15/11/2004
Pratique
Pour activer le natting:
echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
où eth0 est l'interface extérieure
Pour éviter de devoir taper la première ligne après chaque reboot, modifier le fichier /etc/network/options:
ip_forward=yes
Pour forwarder le port 80 vers le webserver derrière le firewall:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 10.41.145.76:80
Pour exporter les règles actives:
iptables-save > regles_iptables.txt
Pour les réimporter:
cat regles_iptables.txt | iptables-restore
Autres
- http://www.shorewall.net/ un frontend package par Debian