Rota de conexões de saída da rede local através de VPN

2

Eu tenho um servidor A executando o OpenVPN, um cliente OpenVPN B (um telefone Android com root quando ele acontece) e um terceiro C (um laptop, tablet etc.) conectado a B.

B pode usar a VPN para acessar a internet via A; C pode usar a conexão vinculada sem a VPN para acessar a internet via B.

No entanto, com a VPN em B ativa, não consigo carregar informações da Internet em C.

A parece registrar entrada e saída de tráfego semelhante quando B ou C tentam carregar uma página da Web, digamos, mas a VPN no dispositivo B não informa nenhum tráfego de entrada quando a conexão é originária de C.

Onde devo procurar pacotes sendo descartados e quais regras de ip devo usar para garantir que eles sejam passados de volta pela VPN e para a rede local B < - > C?

(Eu obviamente vou postar qualquer informação adicional necessária).

Mais informações

Sem VPN:

root@android:/ # ip route
default via [B's External Gateway] dev rmnet0
[B's External Subnet] dev rmnet0  proto kernel  scope link  src [B's External IP]
[B's External Gateway] dev rmnet0  scope link
192.168.43.0/24 dev wlan0  proto kernel  scope link  src 192.168.43.1

Com VPN:

root@android:/ # ip route
0.0.0.0/1 dev tun0  scope link
default via [B's External Gateway] dev rmnet0
[B's External Subnet] dev rmnet0  proto kernel  scope link  src [B's External IP]
[B's External Gateway] dev rmnet0  scope link
[External address of A] dev tun0  scope link
128.0.0.0/1 dev tun0  scope link
172.16.0.0/24 dev tun0  scope link
172.16.0.8/30 dev tun0  proto kernel  scope link  src 172.16.0.10
192.168.43.0/24 dev wlan0  proto kernel  scope link  src 192.168.43.1
192.168.168.0/24 dev tun0  scope link
    
por Sharkos 30.09.2012 / 14:52

1 resposta

0

Ah, conserte-o executando o seguinte em B (o telefone):

iptables -t nat -A POSTROUTING -s 192.168.43.0/255.255.255.0 -o tun0 -j MASQUERADE
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.43.0/255.255.255.0 -j ACCEPT
iptables -A FORWARD -j REJECT --reject-with icmp-port-unreachable

Isso praticamente corresponde à configuração básica usual para um servidor VPN; Eu estava tendo problemas porque fiquei confuso sobre qual rede era qual, qual interface era qual, e então, quando eu tinha aqueles certos, percebi que ainda tinha o gateway errado configurado em C.

    
por 30.09.2012 / 21:00