Roteamento
No host A
, você precisa encaminhar todo o tráfego para a rede de destino para hospedar B
. Eu vou assumir que isso é algo como 192.168.0.0/24
para linux (no host A
):
ip r a 192.168.0.0/24 via 10.9.8.3 dev eth0
para windows (no host A
):
route ADD 192.168.0.0 MASK 255.255.255.0 10.9.8.3
Encaminhamento
Depois que o roteamento estiver em vigor, todos os pacotes para a rede 192.168.0.0/24
serão enviados para o host B
.
Para permitir que os pacotes sejam encaminhados de wlp3s0
para tun0
no host B
, é necessário ativar o encaminhamento de IP.
Para habilitar temporariamente o encaminhamento de IP para todas as interfaces:
sysctl net.ipv4.conf.all.forwarding=1
Para ativar essa alteração permanentemente, adicione uma nova linha a /etc/sysctl.conf
:
net.ipv4.conf.all.forwarding = 1
Além das configurações de interface, iptables
pode estar ativo e precisa permitir o encaminhamento de pacotes.
Para verificar se iptables
está ativo (pelo menos para a cadeia FORWARD
):
iptables -L FORWARD -nv
Se a cadeia não tiver regras e a política disser ACCEPT
, você está pronto para ir, caso contrário, é necessário adicionar regras relevantes para permitir o encaminhamento para 192.168.0.0/24
.
Permitir o encaminhamento de todos os pacotes para 192.168.0.0/24
on wlp3s0
:
iptables -I FORWARD -i wlp3s0 -d 192.168.0.0/24 -j ACCEPT
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
o RELATED,ESTABLISHED
permite automaticamente os pacotes de retorno.
NAT
Agora, após o encaminhamento ser configurado, os pacotes serão enviados para o túnel. Mas, na medida em que a rede remota por trás da VPN não conhece nossa rede local, o que normalmente é o caso, precisamos NAT
de todos os pacotes que vêm da nossa rede local e entraremos na VPN para o endereço. o servidor VPN (que é o IP no tun0
).
Para fazer isso, você precisa criar uma regra MASQUERADE
na tabela POSTROUTING
:
iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE
Isto irá nat todos os pacotes de saída em tun0
para o IP da interface.