Este provavelmente será um post muito longo, porque quero ter certeza de que não me esqueço de nada. Esta é provavelmente uma questão muito trivial, mas não consigo descobrir o que há de errado com a minha configuração.
Cenário
Recentemente, configurei um servidor VPN executando o OpenVPN , atualmente em execução em uma VM no ESXi . Eu baseei a instalação neste guia , e tudo parece estar funcionando bem: eu posso conectar ao meu servidor VPN (através do encaminhamento de porta no roteador) e fazer o login com autenticação de certificado.
O que não está funcionando
Não consigo acessar máquinas na minha rede local ( 192.168.0.0
) quando estou conectado pela VPN.
No momento, depois de conectar-se com êxito via VPN à minha rede doméstica, todas as máquinas da minha LAN não estão acessíveis (não consigo nem mesmo executá-las).
Informação da rede
A configuração de rede é muito simples:
- Minha rede local:
192.168.0.0
- Meu IP OpenVPN:
192.168.0.140
- Meu portal:
192.168.0.1
- Minha rede VPN:
10.8.0.0
- Meu IP VPN OpenVPN:
10.8.0.1
- O roteador tem o encaminhamento de porta configurado na porta
1194
O que eu tentei até agora (alto nível)
Eu segui três recursos para tentar corrigir esse problema:
- O guia de roteamento do OpenVPN, especificamente a seção Usando roteamento e o OpenVPN não sendo executado no gateway padrão
- Este pequeno artigo sobre como configurar o roteamento com o OpenVPN para conectar-se a hosts na minha LAN
- Outro artigo sobre como configurar o ESXi para que isso funcione , porque aparentemente, em sua configuração padrão, o ESXi pode causar alguns problemas ao fazer isso funcionar
- Encaminhamento IP habilitado no servidor VPN
- Habilitou todo o tráfego para passar pelo firewall do OpenVPN
O que eu tentei até agora (detalhado)
Este é o OpenVPN server.conf
:
local 192.168.0.140
topology subnet
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/vpnserver.crt
key /etc/openvpn/easy-rsa/keys/vpnserver.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
# server and remote endpoints
ifconfig 10.8.0.1 10.8.0.2
# Add route to Client routing table for the OpenVPN Server
push "route 10.8.0.1 255.255.255.255"
# Add route to Client routing table for the OpenVPN Subnet
push "route 10.8.0.0 255.255.255.0"
# your local subnet
push "route 192.168.0.0 255.255.255.0"
# Set primary domain name server address to the SOHO Router
# If your router does not do DNS, you can use Google DNS 8.8.8.8
push "dhcp-option DNS 192.168.0.254"
# Override the Client default gateway by using 0.0.0.0/1 and
# 128.0.0.0/1 rather than 0.0.0.0/0. This has the benefit of
# overriding but not wiping out the original default gateway.
push "redirect-gateway def1"
client-to-client
duplicate-cn
keepalive 10 120
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0
cipher AES-128-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log 20
log /var/log/openvpn.log
verb 1
Um exemplo client.ovpn
:
client
dev tun
proto udp
remote <my_router_ip> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
ns-cert-type server
key-direction 1
cipher AES-128-CBC
comp-lzo
verb 1
mute 20
Como meu roteador atual não suporta rotas estáticas, infelizmente não consigo configurar o roteamento de uma vez por todas, mas o faço em cada dispositivo que desejo acessar enquanto estou conectado via VPN. Por exemplo, no meu servidor Plex ( 192.168.0.110
), fiz o seguinte:
route add -net 10.8.0.0/24 gw 192.168.0.140
Para que minha máquina OpenVPN ( 192.168.0.140
) pudesse conectar as máquinas na rede VPN ( 10.8.0.0
) com aquelas na rede local ( 192.168.0.0
).
Eu também me certifiquei de que o encaminhamento de IP está habilitado no servidor OpenVPN, mas descomentando a seguinte linha de /etc/sysctl.conf
:
net.ipv4.ip_forward=1
Por fim, adicionei as seguintes iptables
regras para permitir que todo o tráfego da rede VPN chegue à rede local:
# Allow traffic initiated from VPN to access LAN
iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
# Allow established traffic to pass back and forth
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Por fim, configurei o comutador virtual vSwitch
no ESXi para não descartar pacotes promíscuos, pois o artigo vinculado acima afirma que em sua configuração padrão ele descartaria esses pacotes, e isso poderia causar problemas ao usar o OpenVPN ao tentar acessar máquinas na rede local .
A menos que eu tenha perdido alguma coisa, isso realmente deveria ser tudo o que precisa ser feito. Infelizmente, depois de me conectar com sucesso à VPN, ainda não consigo fazer o ping das máquinas na 192.168.0.0
rede.
Novamente, isso é provavelmente algo bastante trivial, mas estou disposto a oferecer alguma recompensa pela resposta correta de qualquer maneira, porque uma das razões pelas quais eu configurei a VPN em primeiro lugar era poder acessar minhas outras máquinas sem a necessidade de encaminhar mais portas no roteador.
Informações de rede da máquina cliente
Esta é a saída completa da ipconfig
máquina que estou usando para conectar (para "fingir" a conexão de uma rede remota, eu estou ligando a conexão 3G do meu telefone e conectando via Wi-Fi a partir do Windows):
C:\Windows\System32>ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::2c0e:13f0:840c:37b4%15
IPv4 Address. . . . . . . . . . . : 10.8.0.10
Subnet Mask . . . . . . . . . . . : 255.255.255.252
Default Gateway . . . . . . . . . :
Wireless LAN adapter Local Area Connection* 2:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::a5e8:546c:e046:a246%4
IPv4 Address. . . . . . . . . . . : 192.168.43.220
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.43.1
Ethernet adapter Ethernet:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Ethernet adapter VirtualBox Host-Only Network:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::1d14:52cd:fd6a:2395%10
IPv4 Address. . . . . . . . . . . : 192.168.56.1
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
Tunnel adapter isatap.{75888664-BED0-4908-8984-4DBCF9E9BDDC}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Tunnel adapter isatap.{6F952140-AFCD-46E4-89E3-02CDEF869C50}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Tunnel adapter isatap.{1F6CE10F-8498-4A7B-B647-FAE7422FF030}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Saída de route print
:
C:\Windows\System32>route print
===========================================================================
Interface List
15...00 ff 1f 6c e1 0f ......TAP-Windows Adapter V9
7...12 56 f2 a5 d0 53 ......Microsoft Wi-Fi Direct Virtual Adapter
4...80 56 f2 a5 d0 53 ......Killer Wireless-N 1202 Network Adapter
3...80 fa 5b 00 d7 1f ......Realtek PCIe GBE Family Controller
10...08 00 27 00 68 59 ......VirtualBox Host-Only Ethernet Adapter
1...........................Software Loopback Interface 1
8...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
9...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #3
11...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #4
===========================================================================
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.43.1 192.168.43.220 25
10.8.0.4 255.255.255.252 On-link 10.8.0.6 276
10.8.0.6 255.255.255.255 On-link 10.8.0.6 276
10.8.0.7 255.255.255.255 On-link 10.8.0.6 276
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.43.0 255.255.255.0 On-link 192.168.43.220 281
192.168.43.220 255.255.255.255 On-link 192.168.43.220 281
192.168.43.255 255.255.255.255 On-link 192.168.43.220 281
192.168.56.0 255.255.255.0 On-link 192.168.56.1 276
192.168.56.1 255.255.255.255 On-link 192.168.56.1 276
192.168.56.255 255.255.255.255 On-link 192.168.56.1 276
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 192.168.56.1 276
224.0.0.0 240.0.0.0 On-link 10.8.0.6 276
224.0.0.0 240.0.0.0 On-link 192.168.43.220 281
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 192.168.56.1 276
255.255.255.255 255.255.255.255 On-link 10.8.0.6 276
255.255.255.255 255.255.255.255 On-link 192.168.43.220 281
===========================================================================
Persistent Routes:
None
IPv6 Route Table
===========================================================================
Active Routes:
If Metric Network Destination Gateway
1 306 ::1/128 On-link
10 276 fe80::/64 On-link
15 276 fe80::/64 On-link
4 281 fe80::/64 On-link
10 276 fe80::1d14:52cd:fd6a:2395/128
On-link
15 276 fe80::2c0e:13f0:840c:37b4/128
On-link
4 281 fe80::a5e8:546c:e046:a246/128
On-link
1 306 ff00::/8 On-link
10 276 ff00::/8 On-link
15 276 ff00::/8 On-link
4 281 ff00::/8 On-link
===========================================================================
Persistent Routes:
None
10.8.0.6
. Deixe-me atualizar a pergunta com a saída completa de ipconfig
, pode ser útil.
route print
cliente VPN também pode ser útil. Além disso, o que você ganha ao tentar fazer ping em uma máquina? E você executou sysctl -p
ou reinicializou o servidor após a modificação /etc/sysctl.conf
?
route print
e confirmo que também corri sysctl -p
. Eu também verifiquei duas vezes em execuçãocat /proc/sys/net/ipv4/ip_forward
192.168.0.XXX
), não encaminhará o tráfego para a VPN).