Ma question est essentiellement la même que Autoriser uniquement un certain trafic sortant sur certaines interfaces .
J'ai deux interfaces eth1
(10.0.0.2) et wlan0
(192.168.0.2). Mon itinéraire par défaut est pour eth1
. Disons que je veux que tout le trafic https passe wlan0
. Maintenant, si j'utilise la solution suggérée dans l'autre question, le trafic https passera wlan0
, mais aura toujours l'adresse source de eth1
(10.0.0.2). Étant donné que cette adresse n'est pas routable pour la wlan0
passerelle, les réponses ne reviendront jamais. Le moyen le plus simple serait de définir correctement le bind-addr dans l'application, mais dans ce cas, il n'est pas applicable.
Je pense que je dois réécrire le src-addr:
# first mark it so that iproute can route it through wlan0
iptables -A OUTPUT -t mangle -o eth1 -p tcp --dport 443 -j MARK --set-mark 1
# now rewrite the src-addr
iptables -A POSTROUTING -t nat -o wlan0 -p tcp --dport 443 -j SNAT --to 192.168.0.2
Maintenant, tcpdump voit les paquets sortants très bien et les paquets entrants arrivent pour 192.168.0.2, mais ils ne se retrouvent probablement jamais dans l'application, car tout ce que j'ai pu voir, c'est que l'application renvoie le paquet SYN, bien que le SYN- ACK a déjà été reçu.
J'ai donc pensé que je devais peut-être aussi réécrire l'adresse entrante:
iptables -A PREROUTING -t nat -i wlan0 -p tcp --sport 443 -j DNAT --to 10.0.0.2
mais cela n'a pas fonctionné non plus. Je suis donc un peu coincé ici. Aucune suggestion?
la source
src
option auxip route
commandes pour spécifier l'adresse source correcte.POSTROUTING
SNAT
prendra soin de cela.la solution de bahamat est correcte; cependant, veuillez noter que la seule façon pour moi de faire ce travail était de désactiver le rp_filter pour chaque interface du système, pas seulement les deux (eth1 et wlan0 dans ce cas) impliqués dans le NAT.
(voir la note IMPORTANTE à la fin de cette page: Guide de routage avancé - le lien qui y est affiché n'existe plus, mais je l'ai trouvé via la machine de renvoi)
la source
Une suggestion: vous devez toujours utiliser
--sport
au lieu de--dport
dans la chaîne de sortie.Les NAT changent le
dport
et cela rendra votre règle inutilisable.la source
Je pense que ci-dessous est nécessaire:
la source