View previous topic :: View next topic |
Author |
Message |
Chr0nos Apprentice
Joined: 26 Feb 2010 Posts: 205
|
Posted: Fri Jul 29, 2011 11:47 am Post subject: [iptables] routage d'un port |
|
|
Salut a tous,
voila j'essaie de faire passer le trafic sortant vers le port 80 (donc ma navigation internet) par mon interface tun0 (un vpn) , et tout le reste par eth0
mais voila: pour le moment rien de ce que je n'ai fait ne marche et je ne comprends pas trop pourquoi:
Quote: | StarK ~ # ifconfig
eth0 Link encap:Ethernet HWaddr 1c:6f:65:35:f1:9f
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: 2a01:e35:2e56:5270:1e6f:65ff:fe34:f19f/64 Scope:Global
inet6 addr: fe80::1e6f:65ff:fe34:f19f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2284981 errors:0 dropped:0 overruns:0 frame:0
TX packets:3475136 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:323204753 (308.2 MiB) TX bytes:3920186714 (3.6 GiB)
Interrupt:47 Base address:0x8000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:604643 errors:0 dropped:0 overruns:0 frame:0
TX packets:604643 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:94468968 (90.0 MiB) TX bytes:94468968 (90.0 MiB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.1.22.238 P-t-P:10.1.23.237 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:1241 errors:0 dropped:0 overruns:0 frame:0
TX packets:1244 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:164150 (160.3 KiB) TX bytes:83261 (81.3 KiB)
|
coté iptables j'ai mis:
Quote: | StarK ~ # iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A PREROUTING -i eth0 -p tcp -m tcp --sport 80 -j DNAT --to-destination 10.1.22.238
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.1.22.238
-A POSTROUTING -o eth0 -j MASQUERADE
StarK ~ # iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A FORWARD -i eth0 -o tun0 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -i eth0 -o tun0 -p tcp -m tcp --sport 80 -j ACCEPT
|
(je ne sais pas du tout ce que fais MASQUERADE mais sur pas mal de site ils disent de le metre alors...)
j'ai bien activé l'ip forwarding dans le kernel:
Quote: | StarK ~ # cat /proc/sys/net/ipv4/ip_forward
1
|
j'avoue ne plus trop savoir ou donner de la tête la et un coup de main serais rudement apprécié |
|
Back to top |
|
|
gregool Guru
Joined: 26 Nov 2007 Posts: 336 Location: Lille
|
Posted: Fri Jul 29, 2011 12:08 pm Post subject: |
|
|
Salut,
j'utilise openvpn et pour router le traffic internet a travers le tunnel vpn j'utilise l'option :
Code: | push "redirect-gateway def1" |
dans openvpn.conf sur le serveur.
ça route tout le traffic vers le tunnel, à adapter à ta config |
|
Back to top |
|
|
Chr0nos Apprentice
Joined: 26 Feb 2010 Posts: 205
|
Posted: Fri Jul 29, 2011 12:18 pm Post subject: |
|
|
le probleme est la justement, je ne veu pas avoir tout le trafic qui passe par le vpn car celui ci est plutot "lent" et donc facilement saturable |
|
Back to top |
|
|
truc Advocate
Joined: 25 Jul 2005 Posts: 3199
|
Posted: Fri Jul 29, 2011 7:28 pm Post subject: |
|
|
C'est pas du DNAT, à priori que tu veux faire, sinon, ça change l'adresse de destination et donc t'iras jamais voir le site que tu souhaites
Bref, pourquoi juste http? y'a aussi https, puis, si tu mets pas les requètes DNS, tu perds également en terme de vie privée!
J'pense que tu devrais faire du MARK en OUTPUT dans la table mangle, puis, avec iproute2, tu te fais une jolie table de routage alternative, que tu remplies mais avec la route par défaut passant par ton tunnel, ensuite tu ajoutes des règles (ip rules add fwmark machin) et le tour est joué, enfin, je pense!
C'est juste le traffic généré localement c'est bien ça? Sinon, faut adapter un peu, (chaine PREROUTING, ajout de route sur l'autre côté de ton vpn ou alors SNAT effectivement (avec l'adresse tun "locale")) _________________ The End of the Internet! |
|
Back to top |
|
|
guilc Bodhisattva
Joined: 15 Nov 2003 Posts: 3326 Location: Paris - France
|
Posted: Fri Jul 29, 2011 7:40 pm Post subject: |
|
|
Effectivement, comme dit truc, il n'y a pas 40 solutions. Se contenter de iptables ne marche pas.
Il faut :
1) marquer les paquets avec iptables (si dport == 80 alors marquer)
2) construire une table de routage plus complexe : si paquet marqué, alors passer par le VPN, sinon, route par défaut. En gros, il faut faire 2 tables de routage, et aiguiller sur l'une ou l'autre en fonction du marquage. Tu peux t'inspirer de là, en customisant les "ip rule" : http://lartc.org/howto/lartc.rpdb.multiple-links.html _________________ Merci de respecter les règles du forum.
Mon site perso : https://www.xwing.info
Mon PORTDIR_OVERLAY : https://gentoo.xwing.info ou layman -a xwing |
|
Back to top |
|
|
Chr0nos Apprentice
Joined: 26 Feb 2010 Posts: 205
|
Posted: Mon Aug 01, 2011 3:41 pm Post subject: |
|
|
du coup si je veu pouvoir marques paquets je dois faire:
iptables -A FORWARD -i eth0 -o tun0 -p tcp -m tcp --dport 80 -j MARK
iptables -A FORWARD -i eth0 -o tun0 -p tcp -m tcp --sport 80 -j MARK
( a la place de forward je ne devrais pas du coup me metre sur le OUTPUT ?)
toutefois j'ai un serveur apache2 sur ma machine qui utilise le port 80, mais si je ne met pas dport et sport je ne vais pas pouvoir recup la réponse du site non ? enfin quoi que tout se passe dans un seul socket, donc techniquement si je met juste le -dport ca pourais marcher non ?
par contre pour ce qui es de ip route je ne comprends pas du tout la syntaxe: quand je fais: ip route j'ai
Quote: | StarK ~ # ip route
default via 192.168.0.254 dev eth0 proto static
10.1.0.1 via 10.1.22.237 dev tun0 proto static
10.1.23.237 dev tun0 proto kernel scope link src 10.1.22.238
88.190.225.103 via 192.168.0.254 dev eth0 proto static
127.0.0.0/8 via 127.0.0.1 dev lo
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.1 metric 1
|
et je dois reconaitre que le manuel de "ip" n'est pas tres clair pour le néophite avec cet outil que je suis... |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|