Por que meu cliente OpenVPN não pode acessar máquinas na mesma LAN que o servidor OpenVPN?

5

Configurei o OpenVPN no meu servidor Linux e no cliente Windows de acordo com as instruções aqui . Meu cliente pode acessar o servidor, mas não pode ir mais longe na LAN.

Meu servidor é 10.23.29.64/24, minha sub-rede OpenVPN é 10.23.30.0/24 e meu cliente é 10.0.0.71/24, portanto não há sobreposição.

Meu arquivo de configuração do servidor é:

port 53
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.23.30.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.23.29.0 255.255.255.0"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

Minha configuração do cliente é

client
dev tun
proto udp
remote HOSTNAME_REMOVED 53
resolv-retry infinite    
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
comp-lzo
verb 3

Quando conectado, meu cliente recebe 10.23.30.6/30 e tem 4 rotas adicionadas:

   10.23.29.0    255.255.255.0       10.23.30.5      10.23.30.6       1
   10.23.30.1  255.255.255.255       10.23.30.5      10.23.30.6       1
   10.23.30.4  255.255.255.252       10.23.30.6      10.23.30.6       30
   10.23.30.6  255.255.255.255        127.0.0.1       127.0.0.1       30

Meu servidor recebe 10.23.30.1/32 (ALGUNS ESTE É O PROBLEMA?)

Meu cliente pode fazer ping no servidor em 10.23.30.1 e 10.23.29.64, mas não pode ir além disso. O que mais eu preciso fazer para obter esse cliente acesso ao resto da minha rede local?

ATUALIZAÇÃO:

Eu adicionei uma rota estática ao meu roteador para que a tabela de roteamento seja semelhante a esta

{admin}=>ip rtlist
Label             Destination          Gateway  Interface     Mtc Admin  Oper
                 10.0.0.138/32       127.0.0.1  loop          0   UP     [UP]
                 10.0.0.255/32       127.0.0.1  loop          0   UP     [UP]
               10.23.29.254/32       127.0.0.1  loop          0   UP     [UP]
               10.23.29.255/32       127.0.0.1  loop          0   UP     [UP]
             87.115.131.206/32       127.0.0.1  loop          0   UP     [UP]
                  127.0.0.1/32       127.0.0.1  loop          0   UP     [UP]
            255.255.255.255/32       127.0.0.1  loop          0   UP     [UP]
            195.166.128.189/32  87.115.131.206  Internet      0   UP     UP
                212.159.6.9/32                  Internet      10  UP     UP
               212.159.6.10/32                  Internet      10  UP     UP
                   10.0.0.0/24      10.0.0.138  LocalNetwork  0   UP     [UP]
                 10.23.29.0/24    10.23.29.254  LocalNetwork  0   UP     [UP]
                 10.23.30.0/24     10.23.29.10  LocalNetwork  0   UP     [UP]
                    0.0.0.0/0                   Internet      10  UP     UP

mas quando eu fiz um traceroute de 10.23.29.10 a 10.23.30.1 eu consegui:

traceroute to 10.23.30.1 (10.23.30.1), 30 hops max, 60 byte packets
 1  dsldevice.lan (10.23.29.254)  2073.983 ms  2073.481 ms  74.545 ms
 2  * * *

e todas as estrelas até que desistiu. Isso me leva a acreditar que os pacotes traceroute não estão sendo encaminhados para 10.23.29.10, como a tabela de roteamento diz que eles deveriam ser.

    
por Grezzo 17.01.2013 / 13:22

4 respostas

6

Eu finalmente descobri qual era o problema. Estou usando a opção "roteamento" do OpenVPN, que cria uma nova sub-rede para todas as conexões do OpenVPN. Meu cliente estava recebendo um endereço IP dessa sub-rede, e meu servidor também, para que eles pudessem conversar entre si através dessa rede. Com o encaminhamento IPv4 ativado no meu servidor, eu também era capaz de enviar pacotes para a minha rede local, e obviamente era capaz de falar com o servidor através do endereço IP da LAN.

Quando o cliente tentou falar com outros computadores na LAN, os pacotes do meu cliente estavam chegando aos hosts da LAN (não verifiquei isso, mas tenho certeza de que eles estavam), mas o endereço de origem desses pacotes era o endereço da rede OpenVPN. Os hosts da LAN sabiam que isso não estava em sua LAN, e a única coisa que eles sabiam fazer nesse caso era enviá-los para o gateway padrão, que era meu roteador. Duvido que tenha feito alguma coisa com eles, pois enviar um pacote para um intervalo de IP privado na internet é inútil.

A solução é adicionar uma rota estática a todos os hosts da LAN ou usar a opção "bridging" do OpenVPN em vez de "roteamento". Eu não fiz isso ainda, mas tenho certeza que este é o caminho a percorrer.

    
por 21.01.2013 / 18:03
2

Eu não acho que você tenha que adicionar uma rota estática a todos os hosts da LAN. Você poderia simplesmente adicionar uma rota estática em seu gateway naquela LAN, apontando todos os endereços de rede openvpn para o servidor "endereço lan-ip" da openvpn.

    
por 25.01.2013 / 01:10
1

O mesmo problema com minha configuração, mas corrigido agora:

Como você está usando as configurações do OpenVPN Road warrior, os pacotes são roteados mas NATed. Você deve configurar suas opções NAT de saída para converter quaisquer portas de origem dos endereços IP virtuais OpenVPN na interface LAN, para qualquer porta de destino com endereço NAT WAN.

No pfSense, você deve desabilitar a regra NAT de saída automática na regra de NAT de saída manual e simplesmente adicionar uma nova regra para a rede interna do OpenVPN.

    
por 19.10.2014 / 09:28
0

Tive o mesmo problema aqui (usando este guia para configurar: link )

A resposta de Anony sobre rota estática foi a chave. Em dd-wrt em configuração - > roteamento avançado:

configuração de rota estática dd-wrt

Onde

  • destino: interface tun0 do openvpn
  • Gateway: servidor executando openvpn (lan ip)

Isso fez o truque para mim!

    
por 07.06.2016 / 21:11