Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[iptables] routage d'un port
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Chr0nos
Apprentice
Apprentice


Joined: 26 Feb 2010
Posts: 205

PostPosted: Fri Jul 29, 2011 11:47 am    Post subject: [iptables] routage d'un port Reply with quote

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é :roll:
Back to top
View user's profile Send private message
gregool
Guru
Guru


Joined: 26 Nov 2007
Posts: 336
Location: Lille

PostPosted: Fri Jul 29, 2011 12:08 pm    Post subject: Reply with quote

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
View user's profile Send private message
Chr0nos
Apprentice
Apprentice


Joined: 26 Feb 2010
Posts: 205

PostPosted: Fri Jul 29, 2011 12:18 pm    Post subject: Reply with quote

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
View user's profile Send private message
truc
Advocate
Advocate


Joined: 25 Jul 2005
Posts: 3199

PostPosted: Fri Jul 29, 2011 7:28 pm    Post subject: Reply with quote

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
View user's profile Send private message
guilc
Bodhisattva
Bodhisattva


Joined: 15 Nov 2003
Posts: 3326
Location: Paris - France

PostPosted: Fri Jul 29, 2011 7:40 pm    Post subject: Reply with quote

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
View user's profile Send private message
Chr0nos
Apprentice
Apprentice


Joined: 26 Feb 2010
Posts: 205

PostPosted: Mon Aug 01, 2011 3:41 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
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