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