[Resolvido] A conexão VPN funciona, mas não consegue navegar na web

Queria postar isso como uma história de aprender com meus erros, já que procurar em todos os lugares não tinha trazido nada por dias. Espero que o Google capte isso para a próxima alma desavisada.

Resumo: disparidades no MTU podem fazer a navegação web falhar (por timeout) em configurações de OpenVPN baseadas em UDP de maneiras estranhas.

Contexto:

Sabia rodar OpenVPN localmente por alguns anos sem problemas, mas recentemente comecei a ter dificuldades quando tive que trocar o modem do meu ISP de uma ponte transparente para uma configuração mais “normal”. De repente, a navegação na web quebrou, com clientes conectados expirando e recusando-se a carregar qualquer página na intranet ou na internet. Ping ainda funcionava, SSH ainda funcionava, tcpdump até mostrava que conexões HTTP entregavam respostas HTTP 200 OK até a minha interface interna. Tentei de tudo por dias, reconfigurando regras de firewall de maneiras cada vez mais estranhas e tentando criar rotas estáticas arcanas, supondo que a mudança no roteador fosse a causa.

Solução:

Pois bem, a mudança no roteador _foi_ a causa, mas não de um jeito que eu teria imaginado. Finalmente, descobri uma informação ótima neste site (OpenVPN MTU: Finding the Correct Settings - The Geek Pub), onde o autor mencionou que VPNs baseadas em UDP não têm como saber se pacotes maiores que o MTU permitidos na rede falharam de entregar. Em retrospectiva, faz todo sentido, mas dias de buscas no Google não tinham mencionado essa possibilidade. Minha conexão com a internet é DSL, conectada via PPP, e por isso meu MTU é um pouco menor que o “normal”. Literalmente, a única mudança necessária após descobrir meu MTU exato foi adicionar tun-mtu <meu tamanho menor> ao server.conf e reiniciar o serviço. A navegação na web voltou a funcionar instantaneamente.

Obrigado por incluir a solução

Obrigado por fornecer essa resposta, cara. Minha família está no exterior no momento e todo hotspot tenta fazer TLS-MITM em sites de bancos, Google e outros. Os avisos de popup de certificado não são muito confiáveis.

Alguns sites funcionaram, mas outros, como os de bancos, mostraram erro de timeout de conexão em Chrome e Firefox.

Ao adicionar

tun-mtu 1000
push tun-mtu 1000

ao arquivo de configuração do servidor e recarregando, eles conseguiram navegar em todos os sites como esperado.

Foi bem difícil de diagnosticar, tcpdump mostrou que todas as solicitações DNS e web estavam funcionando aparentemente corretamente. Mas, aparentemente, qualquer rede em que eles estavam tinha problemas de MTU.

Obrigado novamente.

Estou tendo um problema semelhante - após uma atualização do meu roteador TP-Link. O cliente se conecta ao servidor, mas não consegue navegar nem ver minhas câmeras no telefone. Embora a minha seja uma conexão TCP, vou verificar isso quando voltar ao servidor/roteador. Qualquer insight adicional será bem-vindo.