Cadena de reenvío de puertos de Iptables en la red VPN en Debian

Cadena de reenvío de puertos de Iptables en la red VPN en Debian

Tengo un problema con la configuración de mi red. Casi funciona... pero no del todo :)

Quiero tener acceso a la cámara del edificio en el campo. Tengo acceso a Internet sin IP pública, así que decidí crear una VPN. En la casa de campo tengo una RaspberryPI (cliente VPN) y un enrutador LTE (Huawei B315) conectados junto con una cámara IP. En mi casa, donde tengo módem con IP pública tengo otro RPI (servidor VPN). La VPN está en modo de enrutamiento (los RPI crean una red separada).

Así que para resumir:

  1. Gateway - módem en mi casa
  2. RPI1: servidor VPN conectado al módem de mi casa (IP: eth0-192.168.0.6 (red local), tun0-10.8.0.1 (red VPN))
  3. PRI2: cliente VPN conectado al módem de la otra casa (IP: eth0-192.168.0.100, tun0-10.8.0.2)
  4. Cámara - Planet ICA-4150 (con interfaz web active-x) - conectada al módem de la otra casa (IP: 192.168.0.10)

La VPN funciona: puedo hacer ping a ambos RPI entre sí y puedo enviar ssh desde mi casa a RPI1 y luego a RPI2.

Quiero poder abrir la interfaz web de la cámara como esta: ejemplo.ddns.net:9000. DDNS está configurado y funciona.

En el módem de mi casa reenvié el puerto 9000 desde el exterior a la IP local 192.168.0.6:9000 (RPI1).

Mi configuración de 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

Cuando escribo la dirección correcta en el navegador, puedo ver la interfaz web, pero no puedo iniciar sesión. Por supuesto, puedo iniciar sesión cuando mi computadora portátil está conectada localmente con la cámara. Y también hice un experimento: conecté la cámara a la LAN de mi casa y exporté un puerto del módem de mi casa directamente a la cámara, y esto también funciona, pero solo si redirijo los puertos TCP y UDP. Tampoco puedo iniciar sesión cuando escribo 192.168.0.6:9000 en el navegador desde la red local de mi casa.

También intenté cambiar el puerto 9000 al 24000, sin suerte.

¿Alguien tiene alguna idea de lo que estoy haciendo mal? ¿Quizás me perdí algo en iptables?

Respuesta1

Creo que esto se debe a que OBTIENES la página web en el puerto 9000 de tu navegador, pero la cámara que aloja el servidor ve la solicitud en el puerto 80. Entonces, la acción de publicación, si coloca una URL absoluta, se enviará al puerto 80. Puedes verificar esto en la pestaña de redes de tu navegador. Si ese es el caso, agregue un dnat iptable para la IP de destino y dport 80

información relacionada