iptables: FAI ou VPN il faut choisir

plop à tous …

Un article que je voulais écrire depuis longtemps, mais par manque de temps je l’ai zappé.
Ici le but de la manoeuvre est d’utiliser iptables (et la magie du routage de linux) pour choisir ce qui passe par l’IP du VPN (P2P, …) et par votre FAI (Browsing, …) (on peut aussi rajouter la connexion 3G du téléphone pour ceux qui veulent taper comme un sourd dans la BP 😉 et avoir des latences minimal pour le browsing).

Note : les – – sont à faire sans espace, il s’agit d’un bug de wordpress :s

Il vous faut donc une connexion à internet, un VPN, ou une seconde connexion à internet (Connexion 3G, …), une machine linux et c’est tout.

En imaginant que l’ip du VPN soit : 10.8.0.101 sur l’interface tun0

Il faut modifier le fichier /etc/iproute2/rt_tables pour ajouter la table vpn à notre table de routage, qui servira à rediriger les paquets marqués sur l’interface du VPN :

echo "101	vpn">> /etc/iproute2/rt_tables
ip route add table vpn 10.8.0.101 dev tun0
ip route add table vpn default via 10.8.0.101
ip rule add fwmark 1 lookup vpn
echo 2 > /proc/sys/net/ipv4/conf/tun0/rp_filter

Ensuite, dans mon cas, je voulais rediriger tout mon traffic web (80) sur mon VPN, ce qui ce fait ainsi (en natant mon ip à celle de mon interface tun0 : 10.8.0.102) :

iptables -t mangle -A OUTPUT -p tcp - -dport 80 -j MARK - -set-mark 1
iptables -t nat -A POSTROUTING -m mark - -mark 1 -j MASQUERADE
iptables -t nat -A POSTROUTING -m mark - -mark 1 -j SNAT - -to-source 10.8.0.102

Bien entendu, on peut choisir ce que l’on veut filtrer, y compris en utilisant le module owner présenté ici

En remplaçant tout simplement le

iptables -t mangle -A OUTPUT -p tcp - -dport 80 -j MARK - -set-mark 1

par

iptables -t mangle -A OUTPUT -m owner - -gid-owner monutilisateur -j MARK - -set-mark 1

On peut avoir autant de connections (plusieurs VPN/3G) que l’on veut en changeant les MARK et en leur créant la table qui va bien.

Une réflexion sur “ iptables: FAI ou VPN il faut choisir ”

  1. salut,

    je comprends pas quels sont les IP finissant par 101 et 102, c’est pas clair, tu pourrais expliquer ?

    Merci

Les commentaires sont fermés.