Comment faire du NAT sur deux WAN avec Linux

Vous avez une machine Linux avec deux sorties WAN et vous souhaitez faire du NAT selon la source.
Cet article donne brièvement les explications pour faire du NAT selon la source sur Linux

Comment faire du NAT sur deux WAN avec Linux

Voici le cas observé avec trois cartes :

  • eth0 en 192.168.1.0/24 : il s’agit de la carte ethernet reliée au routeur et à la connexion internet.
  • eth1 : il s’agit d’une carte ethernet sur laquelle on peut brancher un équipement réseau où on veut effectuer du NAT. Un serveur DHCP s’y trouve qui distribue des IPs en 192.168.2.0/24.
  • tap0 : carte virtuelle VPN, on veut faire sortir les paquets provenant des équipements réseaux connectés en eth1 par cette interface.

Comment faire du NAT sur deux WAN avec Linux

Nater et créer les règles

Dans un premier temps, il faut créer les règles de NAT sur iptables, voici la règle à ajouter :

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o tap0 -j MASQUERADE

sans oublier d’autoriser la transmission de paquets entre interfaces :

sysctl -w net.ipv4.ip_forward=1

Pour rendre cette modification permanente après le redémarrage, modifier le fichier /etc/sysctl.conf et ajoutez :

net.ipv4.ip_forward=1

Ensuite il faut créer les règles de route qui vont bien.
Dans un premier temps, on créé une nouvelle table :

echo "102 t1" >> /etc/iproute2/rt_tables

Les deux première règles recréés la route par défaut (carte eth0) pour la table main, elle n’est pas obligatoire, on peut la fixer depuis la configuration interfaces.
puis on attache l’interface tap0 à la table t1.

ip route del default table main
ip route add default via 192.168.1.254 dev eth0 table main
ip route add default via 10.8.0.1 dev tap0 table t1

ensuite il faut créer une règle qui demande que tout ce qui vient de 192.168.2.0/24 soit attaché à la table t1.

ip rule add from 192.168.2.0/24 table t1

On peut donc créer d’autres règles selon la destination pour attacher à l’interface souhaitée et ainsi sortir par l’interface WAN désiré.

Comment faire du NAT sur deux WAN avec Linux

Il suffit ensuite d’effectuer un test pour vérifier que les paquets sortent bien par l’IP souhaitée.
A partir de là, il ne reste plus qu’à rendre ces règles persistante.
Cela peut-être fait de différentes manières :

  • Ajouter les règles dans /etc/network/interfaces avec des lignes du type :
    • post-up ip route add default via 192.168.1.254 dev eth0 table main
  • Ajouter les règles dans /etc/rc.local
  • Dans le cas où comme ici, il s’agit d’une interface openvpn, vous pouvez ajouter un script lors de la connexion, dans le fichier de configuration du client, ajoutez :
    • script-security 2
    • up /etc/openvpn/votrescript.sh
(Visité 78 fois, 1 visites ce jour)

Vous pouvez aussi lire...

Les Tags : #Windows10 - #Windows - #Tutoriel - #Virus - #Antivirus - #navigateurs WEB - #Securité - #Réseau - #Internet