Não é possível executar ping no servidor OpenVPN de uma sub-rede diferente

1

Eu tenho um servidor em nuvem OpenVPN e meu objetivo seria poder acessar minha rede doméstica a partir de clientes OpenVPN conectados a este servidor. Atualmente, eu tenho um roteador OpenWRT que é um cliente OpenVPN conectado ao servidor.

Primeiro, tentei que os dispositivos das minhas casas (sub-rede 192.168.1.0/24) pudessem se comunicar com o servidor OpenVPN (ip 10.8.0.1). As rotas corretas estão habilitadas no roteador, e eu sou capaz de fazer ping no servidor pelo próprio roteador. No entanto, um dispositivo da minha rede doméstica não consegue executar o ping no servidor. Aqui está uma visão geral da minha configuração agora:

Laptop (192.168.1.209) - > Roteador (192.168.1.1 e 10.8.0.8) - > Servidor OpenVPN (10.8.0.1)

Aqui está o resultado do comando tcpdump enquanto tentamos executar ping no servidor, primeiro do roteador, depois do meu laptop:

Roteador

# tcpdump ip proto \icmp -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
20:49:29.967959 IP 10.8.0.8 > 10.8.0.1: ICMP echo request, id 8981, seq 0, length 64
20:49:29.987691 IP 10.8.0.1 > 10.8.0.8: ICMP echo reply, id 8981, seq 0, length 64
20:49:30.970133 IP 10.8.0.8 > 10.8.0.1: ICMP echo request, id 8981, seq 1, length 64
20:49:30.989493 IP 10.8.0.1 > 10.8.0.8: ICMP echo reply, id 8981, seq 1, length 64
20:49:35.314108 IP 192.168.1.209 > 10.8.0.1: ICMP echo request, id 1, seq 130, length 40
20:49:40.061738 IP 192.168.1.209 > 10.8.0.1: ICMP echo request, id 1, seq 131, length 40
20:49:45.062659 IP 192.168.1.209 > 10.8.0.1: ICMP echo request, id 1, seq 132, length 40
20:49:50.062842 IP 192.168.1.209 > 10.8.0.1: ICMP echo request, id 1, seq 133, length 40

Servidor

# tcpdump ip proto \icmp -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
16:49:29.973530 IP 10.8.0.8 > 10.8.0.1: ICMP echo request, id 8981, seq 0, length 64
16:49:29.973563 IP 10.8.0.1 > 10.8.0.8: ICMP echo reply, id 8981, seq 0, length 64
16:49:30.975078 IP 10.8.0.8 > 10.8.0.1: ICMP echo request, id 8981, seq 1, length 64
16:49:30.975113 IP 10.8.0.1 > 10.8.0.8: ICMP echo reply, id 8981, seq 1, length 64

Primeiro, achei que poderia ser um problema com minha configuração de firewall no servidor. No entanto, parece que o tcpdump deve capturar o tráfego antes de passar pelo firewall . Então, pelo que eu vejo, parece que o OpenVPN não permite que os pacotes passem, mas não consigo encontrar nenhum lugar mencionando o OpenVPN removendo pacotes de outra sub-rede. Se a configuração do OpenVPN for útil para resolver o problema, avise-me e incluí-lo-ei.

EDIT : Além disso, o servidor tem as rotas para enviar tráfego para a sub-rede 192.168.1.0/24 via 10.8.0.8. Se o servidor tentar executar ping no laptop, o tcpdump terá uma saída semelhante à mostrada acima.

    
por jonapap 04.09.2018 / 23:04

2 respostas

0

Linhas extras precisam ser adicionadas à configuração do servidor OpenVPN para rotear uma sub-rede atrás de um cliente. Do arquivo de configuração de amostra do OpenVPN :

To assign specific IP addresses to specific
clients or if a connecting client has a private
subnet behind it that should also have VPN access,
use the subdirectory "ccd" for client-specific
configuration files (see man page for more info).

EXAMPLE: Suppose the client
having the certificate common name "Thelonious"
also has a small subnet behind his connecting
machine, such as 192.168.40.128/255.255.255.248.
First, uncomment out these lines:
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248

Then create a file ccd/Thelonious with this line:
iroute 192.168.40.128 255.255.255.248

This will allow Thelonious' private subnet to
access the VPN. This example will only work
if you are routing, not bridging, i.e. you are
using "dev tun" and "server" directives.

E, claro, dependendo da configuração, o lado do cliente precisará ter algum tipo de rota para que os computadores na sub-rede roteada possam se comunicar com o servidor OpenVPN.

Também há mais informações sobre isso no site do OpenVPN

    
por 14.10.2018 / 03:03
0

Verifique o arquivo de configuração do servidor. NÃO está definido como DEFAULT devido à compatibilidade com versões anteriores, embora seja a topologia recomendada para servidores modernos.

--dev tun
--topology subnet
--server 10.8.0.0 255.255.255.0

Como mencionado nos documentos ( Topologia do OpenVPN ):

"Subnet topology is the current recommended topology; it is not the default as of OpenVPN 2.3 for reasons of backwards-compatibility with 2.0.9-era configs."

    
por 05.09.2018 / 03:21