Guide pratique de l'IP masquerade simplifié: Version française du Masquerading made simple HOWTO | ||
---|---|---|
Prev | Next |
Compilation du noyau: (Utilisez un noyau 2.4.x ou supérieur)
Le noyau doit inclure les supports suivants:
Dans la section Networking Options
Network packet filtering (CONFIG_NETFILTER)
Section Networking Options->Netfilter Configuration
Connection tracking (CONFIG_IP_NF_CONNTRACK)
FTP Protocol support (CONFIG_IP_NF_FTP)
IP tables support (CONFIG_IP_NF_IPTABLES)
Connection state match support (CONFIG_IP_NF_MATCH_STATE)
Packet filtering (CONFIG_IP_NF_FILTER)
REJECT target support (CONFIG_IP_NF_TARGET_REJECT)
Full NAT (CONFIG_IP_NF_NAT)
MASQUERADE target support (CONFIG_IP_NF_TARGET_MASQUERADE)
REDIRECT target support (CONFIG_IP_NF_TARGET_REDIRECT)
Packet mangling (CONFIG_IP_NF_MANGLE)
LOG target support (CONFIG_IP_NF_TARGET_LOG)
Tout d'abord, si les modules iptables et masq ne sont pas compilés dans le noyau ni installés, mais présents en tant que modules, il faut les installer. Si vous chargez le module ipt_MASQUERADE,les modules ip_tables, ip_conntrack et iptable_nat seront aussi chargés.
$> modprobe ipt_MASQUERADE
Que votre réseau interne soit vaste, ou bien que vous vouliez connecter deux ou trois machines sur Internet, cela ne fera aucune différence dans tous les cas.
Ok, je vais suppposer que vous n'avez aucune autre règle à rajouter, donc vous tapez:
$> iptables -F; iptables -t nat -F; iptables -t mangle -F
Si vous obtenez un message d'erreur indiquant "can't find iptables", téléchargez-le et installez-le. Si le message d'erreur indique "no such table 'nat'", recompilez le noyau avec le support nat. Si le message d'erreur indique "no such table as 'mangle'", ne vous inquiétez pas, cette table n'est pas nécessaire pour le Masquerading. Si le message d'erreur indique "iptables is incompatible with your kernel", téléchargez une version de noyau supérieure à 2.4 et compilez-le avec le support iptables.
Ensuite si vous avez une adresse IP statique(Par exemple une interface réseau n'utilisant pas le DHCP):
$> iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 123.12.23.43
ou pour une adresse dynamique (Par exemple un modem rtc - vous devez appelez un numéro tout d'abord):
$> iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Enfin, afin d'indiquer au noyau que vous voulez activer le routage de packets : ( A faire après chaque redémarrage de la session - pas trop contraignant)
$> echo 1 > /proc/sys/net/ipv4/ip_forward
Une fois vérifié que tout fonctionne (voir section Post-install) vous n'allez autoriser l'IP masquerade que pour le réseau interne - vous ne souhaitez pas autoriser des personnes sur Internet à l'utiliser après tout :)
En premier lieu, autorisez toutes les connections existantes, ou les connections en dépendant ( par exemple un serveur ftp vous renvoyant une réponse)
$> iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Si vous obtenez une erreur, vous n'avez probablement pas activé le marquage d'état sur les paquets dans le noyau - vous devrez le recompiler avec cette option. Nous allons ensuite n'autoriser que les nouvelles connections venant de notre réseau interne (réseau interne ou local). Remplacez ppp0 par eth0, ou par le nom de votre interface réseau externe (Le caractère ! signifie "tout sauf")
$> iptables -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT
Et bloquez maintenant tout le reste:
$> iptables -P INPUT DROP #seulement si les deux commandes précédentes ont abouties
Si l'une des deux premières commandes échoue, cette règle empêchera le masquerading de fonctionner Pour annuler cette règle : "iptables -P INPUT ACCEPT".