Compartilhar uma conexão VPN via WiFi

0

Eu tenho dois computadores conectados ao mesmo roteador 10.9.8.1 :

  • Computador A 10.9.8.2 executa o Windows 10 Insider Preview. O Insider Preview apresenta uma VPN quebrada e não pode ser revertida. : (
  • O computador B 10.9.8.3 executa o Linux Mint e possui uma conexão VPN configurada por openconnect .

Veja o que ipconfig informa sobre B (fragmento):

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.23.8.183  P-t-P:10.23.8.183  Mask:255.255.255.255
          inet6 addr: fe80::7fb2:5598:b02e:e541/64 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1410  Metric:1
          RX packets:24 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:7005 (7.0 KB)  TX bytes:3243 (3.2 KB)

wlp3s0    Link encap:Ethernet  HWaddr 60:67:20:36:6f:a4  
          inet addr:10.9.8.3  Bcast:10.9.8.255  Mask:255.255.255.0
          inet6 addr: fe80::8e96:7526:ff54:d1be/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22511502 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16052631 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:24451442281 (24.4 GB)  TX bytes:6038264731 (6.0 GB)

Eu preciso acessar recursos por trás da VPN do computador A.

Estou pensando em configurar as rotas em A de tal forma que elas acessem os recursos da VPN por meio de B enquanto usam o roteador diretamente para todo o resto.

No pior caso, posso conectar os dois computadores diretamente, mas gostaria de evitar isso, se possível.

No Windows, posso simplesmente marcar qualquer adaptador como compartilhado. Mas quando eu faço a mesma coisa no Linux, o adaptador perde a conectividade. Não tenho certeza de como fazer isso corretamente.

    
por lolmaus - Andrey Mikhaylov 21.05.2018 / 21:12

1 resposta

1

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.

    
por 22.05.2018 / 12:13