Cadeia de encaminhamento de porta Iptables na rede VPN no Debian

Cadeia de encaminhamento de porta Iptables na rede VPN no Debian

Tenho problemas com a configuração da minha rede. Quase funciona... mas não totalmente :)

Quero ter acesso à câmera do prédio no campo. Tenho acesso à Internet sem IP público, então decidi criar uma VPN. Na casa de campo tenho um RaspberryPI (cliente VPN) e um roteador LTE (Huawei B315) conectados junto com uma câmera IP. Na minha casa, onde tenho modem com IP público tenho outro RPI (servidor VPN). A VPN está no modo de roteamento (RPIs criam uma rede separada).

Entao, para resumir:

  1. Gateway - modem na minha casa
  2. RPI1 - Servidor VPN conectado ao modem da minha casa (IP: eth0-192.168.0.6 (rede local), tun0-10.8.0.1 (rede VPN))
  3. PRI2 - Cliente VPN conectado ao modem da outra casa (IP: eth0-192.168.0.100, tun0-10.8.0.2)
  4. Câmera - Planet ICA-4150 (com interface web active-x) - conectada ao modem da outra casa (IP: 192.168.0.10)

A VPN funciona - posso executar ping em ambos os RPIs um do outro e posso fazer ssh da minha casa para o RPI1 e depois para o RPI2.

Quero poder abrir a interface web da câmera assim: example.ddns.net:9000. O DDNS está configurado e funciona.

No modem da minha casa encaminhei a porta 9000 de fora para o IP local 192.168.0.6:9000 (RPI1).

Minhas configurações do iptables: RPI1:

iptables -A PREROUTING -t nat -p tcp --dport 9000 -j DNAT --to-destination 10.8.0.2:9000
iptables -A PREROUTING -t nat -p udp --dport 9000 -j DNAT --to-destination 10.8.0.2:9000
iptables -A FORWARD -p tcp -d 10.8.0.2 --dport 9000 -j ACCEPT
iptables -A FORWARD -p udp -d 10.8.0.2 --dport 9000 -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

RPI2:

iptables -A PREROUTING -t nat -p tcp --dport 9000 -j DNAT --to-destination 192.168.0.10:80
iptables -A PREROUTING -t nat -p udp --dport 9000 -j DNAT --to-destination 192.168.0.10:80
iptables -A FORWARD -p tcp -d 192.168.0.10 --dport 80 -j ACCEPT
iptables -A FORWARD -p udp -d 192.168.0.10 --dport 80 -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE

Quando digito o endereço correto no navegador, consigo ver a interface da web, mas não consigo fazer login. É claro que posso fazer login quando meu laptop estiver conectado localmente à câmera. E também fiz um experimento, conectei a câmera à LAN da minha casa e exportei uma porta do modem da minha casa diretamente para a câmera, e isso também funciona, mas apenas se eu redirecionar as portas TCP e UDP. Também não consigo fazer login quando digito 192.168.0.6:9000 no navegador da rede local da minha casa.

Também tentei mudar a porta 9000 para 24000, sem sorte.

Alguém tem alguma idéia do que estou fazendo de errado? Talvez eu tenha perdido alguma coisa no iptables?

Responder1

Acho que isso ocorre porque você obtém a página da web na porta 9000 do seu navegador, mas a câmera que hospeda o servidor vê o req na porta 80. Portanto, a ação post, se colocar uma URL absoluta, será enviada para a porta 80. Você pode verificar isso em a guia redes do seu navegador. Se for esse o caso, adicione um iptable dnat para o IP de destino e dport 80

informação relacionada