Problema com o site para o site OpenVPN

2

Portanto, meu objetivo final é utilizar o OpenVPN para conectar a uma câmera IP remota. A razão pela qual estou indo pelo caminho do OpenVPN é tentar superar o NAT de operadora que me impede de fazer o encaminhamento de porta e ter um IP estático sem pagar todos os meses pelo privilégio.

Logo abaixo está a topologia, agora eu posso fazer ping em dispositivos na LAN do Site A (192.168.1.0) dos sites B e C, o que é bom e prova que a VPN está funcionando.

Mas não consigo pingar a câmera IP que está situada no Site B (192.168.2.0) do Site A ou do Site B, que é minha meta final.

Ainda não tenho 100% de certeza de que minha configuração está correta ou se estou perdendo alguma coisa.

net.ipv4.ip_forward = 1 está habilitado no servidor OpenVPN (Debian 8) e no Raspberry Pi.

A outra coisa que eu estava considerando é que eu preciso definir o gateway padrão da câmera IP como sendo o IP do Raspberry Pi?

Topologia:

Configuraçãodoservidor

port1194protoudpdevtuntopologysubnetmodeservertls-serverserver10.8.0.0255.255.255.0push"dhcp-option DNS 8.8.8.8"
client-config-dir ccd
client-to-client
route 192.168.2.0 255.255.255.0 10.8.0.3
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
keepalive 10 120
comp-lzo
user nobody
group nogroup
daemon
tls-auth /etc/openvpn/easy-rsa/keys/ta.key 0
cipher AES-128-CBC
comp-lzo
persist-key
persist-tun
status /var/log/openvpn-status.log 20
log /var/log/openvpn.log
verb 3

/ etc / openvpn / ccd / flexo_client

push "route 192.168.1.0 255.255.255.0 10.8.0.1"
iroute 192.168.2.0 255.255.255.0[/oconf]

configuração do cliente

client
dev tun
proto udp
remote x.x.x.x 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
topology subnet
ca - XML
cert - XML
key -XML
tls-auth - XML

Tabela de roteamento no servidor OpenVPN - Site A

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use   Iface
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.2.0     10.8.0.3        255.255.255.0   UG    0      0        0 tun0

Tabela de roteamento do Raspberry Pi - Site B

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use      Iface
0.0.0.0         192.168.2.1     0.0.0.0         UG    303    0        0 wlan0
10.8.0.0        0.0.0.0         255.255.255.0   U     0      0        0 tun0
192.168.2.0     0.0.0.0         255.255.255.0   U     303    0        0 wlan0

EDITAR:

Rotas estáticas no roteador (192.168.1.254) - Site A

Destination     Gateway         Genmask
192.168.2.0     192.168.1.143   255.255.255.0
10.8.0.0        192.168.1.143   255.255.255.0
    
por Scott 23.04.2016 / 20:52

2 respostas

0

The other thing I was considering is do I need to set the IP cameras default gateway to be that of the IP of the Raspberry Pi?

SIM. Somente o Raspberry Pi sabe para onde enviar o tráfego direcionado para VPN.

Outra opção é a configuração do iptables com o SNAT / MASQUERADE no Raspberry Pi para que cada conexão da rede VPN tenha o IP de origem configurado para o Raspberry Pi IP.

    
por 24.04.2016 / 14:39
0

A configuração do gateway padrão da câmera IP para o IP do Raspberry Pi deve torná-lo acessível, pelo menos, a partir da sub-rede vpn (como solução de último recurso, se você não conseguir definir rotas em seu roteador). Como alternativa, você também pode adicionar as rotas de baixo (site B) para a câmera IP, se isso for possível.

De uma perspectiva de rede, é mais limpo adicionar rotas às tabelas de roteamento de seus roteadores, o que tornará todas as suas redes acessíveis umas às outras e não apenas à câmera IP.

Só para ter certeza (aconteceu comigo), verifique se você não tem regras de firewall conflitantes no servidor Debian ou no Raspberry Pi.

Eu testei sua configuração e ela deve estar funcionando se você adicionar essas rotas:

Adicione rotas ao roteador no site B

Destination        Gateway             Genmask
192.168.1.0        192.168.2.254       255.255.255.0
10.8.0.0           192.168.2.254       255.255.255.0     (optional)

A segunda rota é necessária apenas se qualquer outro serviço na máquina do servidor openvpn precisar alcançar os clientes no site B ou os clientes no site B precisarem acessar esses serviços via 10.8.0.1 IP diretamente.

Adicione rotas ao roteador no site A

Destination        Gateway             Genmask
192.168.2.0        192.168.1.143       255.255.255.0
10.8.0.0           192.168.1.143       255.255.255.0     (optional)

A segunda rota só é necessária se qualquer outro serviço no Raspberry Pi precisar alcançar clientes no site A ou os clientes no site A precisarem acessar esses serviços diretamente por meio do 10.8.0.3 IP.

Eu não consegui testar totalmente as rotas no site A, pois meu servidor openvpn é executado na máquina do roteador.

Explanantion: When the IP camera (or any other client on site B) gets a packet from the openvpn subnet or from the site A subnet, it does not have a route to those subnets and routes the response to its default gateway (router site B). This gateway (if it knows those routes) routes the packet to next "gateway" (Raspberry Pi).

Envie um IP fixo para o seu Raspberry Pi , adicionando a seguinte linha ao seu arquivo /etc/openvpn/ccd/flexo_client (assumindo que flexo_client é o nome do CN do certificado do seu Pi):

ifconfig-push 10.8.0.3 255.255.255.0

Caso contrário, você pode perder a conectividade caso seu Pi tenha um endereço IP diferente, já que suas rotas não estarão mais corretas.

Abaixo estão algumas dicas adicionais para sua configuração openvpn, mas elas não devem afetar o seu problema.

Na configuração do servidor as diretivas

mode server
tls-server

não são obrigatórios, pois estão implícitos na diretiva server 10.8.0.0 255.255.255.0 e se expandem da seguinte maneira (consulte a página manpage):

mode server
tls-server
push "topology subnet"
ifconfig 10.8.0.1 255.255.255.0
ifconfig-pool 10.8.0.2 10.8.0.254 255.255.255.0
push "route-gateway 10.8.0.1"

E também a diretiva push "dhcp-option DNS 8.8.8.8" não deve ser necessária, a menos que você realmente precise dela, já que os clientes conectados ao servidor openvpn devem obter suas opções de DNS do servidor DHCP. Ele também tem um efeito apenas nos clientes Windows, em clientes que não são Windows ele será salvo em uma variável de ambiente para uso opcional em um script up.

A diretiva daemon também não deve ser solicitada (corrija-me se estiver errado), pois todas as mensagens e saídas de erro serão enviadas para o recurso syslog, o que não tem efeito, pois a diretiva log é superando isso. Veja a manpage para detalhes.

Na configuração do cliente , substitua a diretiva

ns-cert-type server

por

remote-cert-tls server

se possível, pois é um comportamento preterido e não habilitado por padrão pelo Easy-RSA 3, a menos que você ative as extensões "Netscape" antes de assinar certs com sua CA. Veja a página openvpn wiki

    
por 24.04.2016 / 15:17