Actualmente tengo una caja NAS que se ejecuta bajo el puerto 80. Para acceder al NAS desde el exterior, asigné el puerto 8080 al puerto 80 en el NAS de la siguiente manera:
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.32.25.2:80
Esto funciona como un encanto. Sin embargo, esto funciona solo si estoy accediendo al sitio web desde el exterior de la red (en el trabajo, en casa diferente, etc.). Entonces, cuando mywebsite.com:8080
escribo, IPTables hace el trabajo correctamente y todo funciona bien.
Ahora, el problema que tengo es, ¿cómo puedo redirigir este puerto desde el interior de la red? Mi nombre de dominio mywebsite.com
apunta a mi enrutador (mi servidor Linux) desde adentro (10.32.25.1) pero quiero redirigir el puerto 8080 al puerto 80 en 10.32.25.2 desde adentro.
¿Cualquier pista?
Editar # 1
Intentando ayudar a facilitar esta pregunta, armé este diagrama. Siéntase libre de actualizar si es incorrecto o tergiversando lo que está buscando.
iptables
| .---------------.
.-,( ),-. v port 80 |
.-( )-. port 8080________ | |
( internet )------------>[_...__...°]------------->| NAS |
'-( ).-' 10.32.25.2 ^ 10.32.25.1 | |
'-.( ).-' | | |
| '---------------'
|
|
__ _
[__]|=|
/::/|_|
10.32.25.1:8080
redirigir a10.32.25.2:80
. Mi regla anterior es trabajar desde el exterior, pero no desde el interior de mi red. Entonces, si estoy en la oficina, puedo acceder a mi NAS desde website.com:8080 y es completamente transparente. Desde mi casa, website.com:8080 apunta a 10.32.25.1 porque es mi enrutador, también conocido como servidor Linux. Quiero redirigir el puerto 8080 al NAS también en el puerto 80, pero de nuevo, de manera transparente.eth0 10.32.25.2
, por lo que podemos capaz de iptables escritura usar basado en la interfaz de entradaRespuestas:
Finalmente encontré cómo hacerlo. Primero, tuve que agregar
-i eth1
a mi regla "externa" (eth1 es mi conexión WAN). También necesitaba agregar otras dos reglas. Aquí al final con lo que vine:fuente
También olvidó mencionar que el reenvío de paquetes debe estar habilitado para poder realizar el NAT de destino. Por defecto, generalmente está desactivado, por lo que las reglas de iptables no funcionarán. Se puede habilitar emitiendo:
fuente
Primero permita el reenvío con
Luego establezca reglas de iptable con
Puede poner estas líneas en,
/etc/rc.local
por ejemplo. Nota: dado que Debian jessie lo hizo ejecutable y habilitó el servicio rc.local a través defuente
Primero debe verificar que tiene activado el reenvío:
cat /proc/sys/net/ipv4/ip_forward
Si no
1
, correecho 1 > /proc/sys/net/ipv4/ip_forward
.Si desea que el tráfico que llega a 10.32.25.1 en el puerto 80 y 443 se reenvíe al puerto 80 de 10.32.25.2, entonces debe usar la siguiente regla:
fuente