Estou tentando encaminhar algum tráfego de uma instância do cliente OpenVPN para outra. como mostrado aqui
Eu quero encaminhar o tráfego de algumas portas e manter outras na instância da VPN1.
Todas as regras que estou aplicando estão na VPN1, pois o cliente não precisa se preocupar se o tráfego é encaminhado e, também, a VPN2 não precisa se preocupar com "quem" solicitou a solicitação. Então, aqui estão as regras que estou usando diretamente na instância da VPN1:
Para o cliente, como ele pode alcançar a rede 10.8.0.0/24, adicionei o arquivo server.conf
que adicionei:
push "route 10.8.0.0 255.255.255.0"
route 10.8.0.0 255.255.255.0
Para encaminhar o tráfego de tun0
para tun1
, adiciono as seguintes regras:
iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE
iptables -A FORWARD -i tun0 -j ACCEPT #forward traffic
Para obter conexão com a internet no primeiro túnel, também tenho:
iptables -t nat -A POSTROUTING -s 10.8.100.0/24 -j MASQUERADE
Então, aqui é onde eu estou começando a falhar. Seguindo este link , adicionei o seguinte:
echo "1 nextHop" >> /etc/iproute2/rt_tables
ip route add default via 10.8.0.1 dev tun1 table nextHop
ip rule add from all fwmark 0x1 lookup nextHop
iptables -t mangle -I PREROUTING -p tcp --dport 80 -j MARK --set-mark 1 ## or whatever port I want to forward.
Quando eu adiciono a última regra iptables, o tráfego vai de tun0
no cliente para tun0
na VPN1, para tun1
na VPN1, para tun0
na VPN2 e chega à Internet. No entanto, a resposta está chegando em tun0
na VPN2 e redirecionada para tun1
na VPN1, mas NÃO ESTÁ SENDO ENCAMINADO para tun0
na VPN1, para alcançar tun0
no cliente. Eu vi isso com tcpdump
.
Eu tentei muitas abordagens diferentes usando DNAT
e SNAT
, mas ainda não consigo enviar a resposta de volta ao cliente.
Como posso encaminhar algumas portas da VPN1 para a VPN2 e obter as respostas de volta ao cliente?