O servidor OpenVPN não está funcionando como deveria: não é possível receber a maioria dos pacotes do dispositivo de rede local para o cliente encapsulado

1

Para fazer login da Internet em um servidor SIP em execução no meu roteador doméstico ( 192.168.1.1 ), que por diversos motivos só é alcançável na minha LAN, foi sugerido para mim para configurar um servidor OpenVPN roteado.

Dessa forma, eu poderia teoricamente enganar meu roteador fazendo-o pensar que o tráfego recebido de um dispositivo remoto, ou seja, meu celular por meio de um aplicativo cliente Android, vinha do meu próprio servidor OpenVPN. Como o servidor estaria rodando em um PC conectado à minha LAN (no meu caso, 192.168.1.3 ), isso poderia efetivamente permitir que eu fizesse login no servidor SIP do meu celular.

Instalei o OpenVPN em um computador desktop Linux Mint (Ubuntu):

$ uname -a
Linux lorenzo-desktop 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

e seguindo as instruções oficiais e algumas informações que encontrei em outro lugar, eu criei este arquivo server.conf (somente os bits relevantes são mostrados):

port 1194
proto udp
dev tun
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0"
persist-key
persist-tun
topology subnet

Eu fui avisado por outro usuário ( MariusMatutiae ) para adicionar a seguinte regra iptables :

sudo iptables -t nat -A POSTROUTING -o eth0 ! -d 10.8.0.0/24 -j MASQUERADE 

Também habilitei o encaminhamento de IP no PC que hospeda o servidor e configurei corretamente o encaminhamento de porta em meu roteador doméstico. Depois de fazer isso, o servidor deve funcionar corretamente, mas é o que acontece:

  • Posso fazer login no servidor OpenVPN em execução no 192.168.1.3 , que atribui ao meu cliente remoto o IP 10.8.0.6 ;
  • Eu posso pingar qualquer dispositivo na minha LAN, dentre os quais meu modem / roteador em 192.168.1.1 executando o servidor SIP;
  • Consigo fazer login com êxito no servidor SIP (imagino que deve haver algum tipo de aperto de mão entre meu celular e o roteador);
  • Posso chamar outros dispositivos conectados ao servidor SIP pelo celular e eles podem me ouvir, mas não consigo ouvir o áudio que deve vir deles .

Esta é a saída de ip route show :

default via 192.168.1.1 dev eth0  proto static 
10.8.0.0/24 dev tun0  proto kernel  scope link  src 10.8.0.1 
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.3  metric 1 

e de ip link show dev tun0 :

3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 100
    link/none

Por fim, aqui você encontra as saídas de tcpdump -i eth0 e de tcpdump -i tun0 .

Minha pergunta: alguém pode adivinhar o que poderia estar errado? Pacotes ausentes? Configuração incorreta do servidor? Faltando entradas iptables ?

EDIT # 1:

Infelizmente, não posso adicionar rotas ao meu roteador; se for útil, o nome do modelo é Technicolor AG Plus. Não tem muito espaço para hackers, você sabe, eu tenho sorte que ele suporta DDNS.

Esta é a única regra ativa do iptables no PC que hospeda o servidor OpenVPN:

# iptables -vL -t nat
[...]
Chain POSTROUTING (policy ACCEPT 25 packets, 1672 bytes)
 pkts bytes target     prot opt in     out     source               destination         
   61  3949 MASQUERADE  all  --  any    eth0    anywhere            !10.8.0.0/24

Recapitulação da configuração de rede

  • [ 192.168.1.1 ] é o modem / roteador fornecido pelo meu provedor que eu uso para conectar-me à Internet; é um dispositivo bastante rudimentar, não tem como definir rotas e não tem capacidade de VPN. Ele executa o servidor SIP ao qual desejo me conectar.
  • [ 192.168.1.2 ] é um roteador que eu uso como extensor de rede. É definido de tal forma que é completamente transparente para o tráfego que passa por ele. Até agora eu não tive nenhum problema com isso e realmente não acho que tenha qualquer influência no meu problema. Muitos clientes SIP se conectam através dele e podem fazer e receber chamadas com sucesso.
  • [ 192.168.1.3 ] é um PC que executa o Linux Mint, conectado via cabo Ethernet a 192.168.1.2 , que executa o servidor OpenVPN . Na VPN, seu endereço é [ 10.8.0.1 ] . Meu roteador doméstico ( 192.168.1.1 ) encaminha o tráfego de entrada na porta 1194 para este dispositivo.
  • O meu smartphone liga-se à Internet através da rede celular 3G. Ele pode se conectar ao servidor OpenVPN e obter um endereço como [ 10.8.0.6 ] . Ele pode acessar o servidor SIP em execução no 192.168.1.1 , mas eu tenho um áudio unidirecional, do smartphone para o dispositivo SIP de destino.
por Lorenzo 22.12.2016 / 16:17

0 respostas