Redireccionar ip local hacia el internet

Imagen de ostoala

Forums: 

Dentro de mi red privada local tengo varios equipos DVR q contienen camaras de videos, este DVR se le configura una IP local, el puerto tcp 37777 (este puerto viene por defecto en el equipo DVR), tiene para puerto udp, etc. En mi firewall tengo implementada algunas lineas IPTABLES, el objetivo es q esa IP se pueda acceder desde el internet y poder visualizar los videos ya que el equipo trae un software para visualizar por internet, cosa q no me funca, enmascare la IP y le di acceso al puerto. En resumen hice esto.

$IPT -t nat -A POSTROUTING -s 192.168.1.100 -j MASQUERADE

$IPT -A INPUT -p tcp -s 0/0 -d 0/0 --dport 37777 -j ACCEPT
$IPT -A INPUT -p udp -s 0/0 -d 0/0 --dport 37777 -j ACCEPT
$IPT -A OUTPUT -p tcp -s 0/0 -d 0/0 --dport 37777 -j ACCEPT
$IPT -A OUTPUT -p udp -s 0/0 -d 0/0 --dport 37777 -j ACCEPT
$IPT -A FORWARD -p tcp -s 0/0 -d 0/0 --dport 37777 -j ACCEPT
$IPT -A FORWARD -p udp -s 0/0 -d 0/0 --dport 37777 -j ACCEPT

$IPT -t nat -A PREROUTING -i $IF_EXTERNA -p tcp -m tcp -s 0/0 --dport 37777 -j DNAT --to-destination 192.168.1.100:37777
$IPT -A FORWARD -p tcp -s 0/0 --dport 37777 -j ACCEPT

dir_ip_local =192.168.1.100

si me podrian ayudar a redireccionar correctamente la ip local a la publica y para poderla observar por internet fuera de la red local.

Primero unas recomendaciones

Primero unas recomendaciones para que mantengas "limpio" tu script, sin reglas innecesarias que te pueden confundir:

Las reglas de INPUT y OUTPUT para el puerto 37777 están de más, puesto que al estar usando el NAT te debes fijar solo en el FORWARD.
La línea: $IPT -A FORWARD -p tcp -s 0/0 --dport 37777 -j ACCEPT está repetida con la línea: $IPT -A FORWARD -p tcp -s 0/0 -d 0/0 --dport 37777 -j ACCEPT
Mientras que la regla del FORWARD para el puerto UDP está de más si solo estás NATeando el puerto TCP.

Ahora si, me parece que la regla del MASQUERADE y del NAT están bien, solo faltaría ver cuál es la política en el FORWARD o si estás bloqueando algo, en todo caso, podrías agregar también la regla:

$IPT -A FORWARD -p tcp -s 192.168.1.100 --sport 37777 -j ACCEPT

Y finalmente, no olvides verificar que en el equipo interno (192.168.1.100) esté configurada adecuadamente la puerta de enlace.

Cuando hagas las pruebas, puedes verificar las reglas con "iptables -L -n -v " y con "iptables -t nat -L -n -v", con lo que podrías ver contadores de paquetes en cada regla aplicada.

Saludos,

- Edwin

----
Edwin Boza
about.me/edwinboza

Corregido y casi solucionado

Imagen de ostoala

Gracias por la explicación y corrección Edwin, pos ya corregí el asunto, y la ip la apunte al puerto 80 para q salga al Internet, en fin quedo así:

$IPT -t nat -A POSTROUTING -s 192.168.1.100 -j MASQUERADE

$IPT -t nat -A PREROUTING -i $IF_EXTERNA -p tcp -m tcp -s 0/0 --dport 37777 -j DNAT --to-destination 192.168.1.100:80

$IPT -A FORWARD -p tcp -s 0/0 --dport 37777 -j ACCEPT

con esto ya puedo ingresar al inicio de sesión del equipo a atraves de la ip publica:puerto

192.xxx.xxx.xxx:37777

gracias

Tiempo fuera cuando quiero iniciar sesion

Imagen de ostoala

Siguiendo con el tramite de ver por Internet la aplicación web del equipo DVR pos ahora ya funca la redireccion a traves de la ip publica:puerto, pero cuando quiero iniciar sesion pos me sale un mensaje TIEMPO FUERA y de hay no pasa, no se q mas me faltaria hacer.

puerto tcp 37777 y el puerto http 80 eso tiene el equipo dvr

Imagen de ostoala

$IPT -t nat -A PREROUTING -i $IF_EXTERNA -p tcp -m tcp -s 0/0 --dport 37777 -j DNAT --to-destination 200.10.xxx.xxx:80

este el forward para el puerto de la ip del equipo

$IPT -A FORWARD -p tcp -s 0/0 --dport 37777 -j ACCEPT

en el iptables tambien hay otros forward como esto, pos seran utiles para este caso

$IPT -A FORWARD -p tcp -s 0/0 --dport 80 -j ACCEPT
$IPT -A FORWARD -p tcp -s 0/0 --dport 8881 -j ACCEPT

cualquier indicacion sera bienvenida para probar, gracias

solucion a mi funciono

Imagen de chiriboga

eth1=wan
eth0=lan
++++++++++++++++

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 7001 -j DNAT --to 192.168.1.101:7001

iptables -A FORWARD -s 192.168.1.101 -i eth0 -p tcp --dport 7001 -j ACCEPT
iptables -A FORWARD -s 192.168.1.101 -i eth0 -p udp --dport 7001 -j ACCEPT