Não é possível fazer ping de sub-rede por trás do servidor OpenVPN

1

Aqui está minha infra-estrutura:

dns of mydomain.com:
  vpn A 90.90.90.1
  vpn A 90.90.90.2

client vpn config:
  client
  dev tun
  proto udp
  nobind
  remote vpn.mydomain.com 1394

server1
  net.ipv4.ip_forward = 1
  iptables:
    FORWARD defaults to ACCEPT
  vpn config:
    dev tun
    topology subnet
    port 1394
    proto udp
    server 10.10.1.0 255.255.255.0
    push "route 10.90.90.0 255.255.255.0"
  interfaces:
    ifpub: 90.90.90.1/24
    ifpriv: 10.90.90.1/24
    ifvpn: 10.10.1.1/24
  routes:
    10.10.1.0/24 src 10.10.1.1 dev ifvpn
    10.10.2.0/24 via 10.90.90.2 dev ifpriv

server2
  net.ipv4.ip_forward = 1
  iptables:
    FORWARD defaults to ACCEPT
  vpn config:
    dev tun
    topology subnet
    port 1394
    proto udp
    server 10.10.2.0 255.255.255.0
    push "route 10.90.90.0 255.255.255.0"
  interfaces:
    ifpub: 90.90.90.2/24
    ifpriv: 10.90.90.2/24
    ifvpn: 10.10.2.1/24
  routes:
    10.10.1.0/24 via 10.90.90.1 dev ifpriv
    10.10.2.0/24 src 10.10.2.1 dev ifvpn

O problema é que do meu cliente eu posso pingar o servidor OpenVPN ao qual estou conectado, mas não o outro servidor na sub-rede 10.90.90.0/24.

tcpdump mostra que a solicitação do ICMP vai de ifvpn a ifpriv no mesmo servidor, mas o pacote de solicitação do ICMP nunca vai além.

Adicionar log ao iptables também me mostra que o pacote de requisição ICMP vai para o estado POSTROUTING sem ser descartado, mas o pacote nunca chegou ao seu destino, e eu não sei o que acontece aqui, estou sem soluções .

Eu sei que posso mascarar meus pacotes, mas não quero porque não é recomendado ( link ), ou será a minha última solução.

    
por Victor 21.08.2018 / 11:21

1 resposta

0

Se o servidor remoto "expuser uma sub-rede", você deve ter um diretório ccd contendo arquivos com iroute diretivas, conforme descrito detalhadamente na documentação do OpenVPN. Você também deve ter route diretivas enviadas para os clientes.

Quando tudo estiver funcionando corretamente:

  • O cliente envia o ping.
  • O sistema operacional do cliente tem um comando de roteamento que envia esse tráfego para o servidor OpenVPN local.
  • A informação ccd informa ao OpenVPN ao qual o remoto conectado envia o tráfego para entrega.
  • O tráfego surge neste remoto e prossegue para o seu destino.
  • Para a viagem de retorno, o sistema remoto deve também ter uma rota do sistema operacional que enviará o tráfego de volta ao seu servidor OpenVPN.
por 22.08.2018 / 19:49