Webserver detras del firewall o DMZ

Imagen de cash

Forums: 

Les comento y les pido su ayuda.

Tengo un firewall con dos tarjetas una la router y otra la LAN interna.

Tengo la necesidad de que gente externa consulte un webserver denro de mi LAN. He leido sobre el redireccionamiento atraves de NAT y todo eso y bueno lo he conseguido aun que no de forma satisfactoria ya que solo funciona un par de horas y despues nada conexion rechazada y bueno la verdad es que no se por que causa.
Les anexo las reglas del firewall para que me digan si hay algo mal es decir el orden de presedencia de las reglas hace que funcione mal o definitivamente las reglas estan mal.

La tarjeta de mi red LAN tambien hace las veces de Proxy por el 8080.

De antemano gracias por sacar al buey de la barranca.

CASH.

********************** REGLAS *****************************
## FLUSH de reglas
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -t nat -F

## Establecemos politica por defecto
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT

## Empezamos a filtrar
#***********************************************************************************************
## REDIRECCIONES
# Todo lo que venga por el exterior y vaya al puerto 80 lo redirigimos una maquina interna

/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.15:80 && echo "WebServer"
/sbin/iptables -A FORWARD -p tcp -i eth0 -d 192.168.10.15 --dport 8080 -j ACCEPT

#***********************************************************************************************

## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN
# El localhost se deja (por ejemplo conexiones locales a mysql)
/sbin/iptables -A INPUT -i lo -j ACCEPT

# Al firewall tenemos acceso desde la red local
/sbin/iptables -A INPUT -s 192.168.10.0/255.255.255.0 -i eth1 -j ACCEPT
/sbin/iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 80 -j ACCEPT

#**********************************************************************************************
# Ahora hacemos enmascaramiento de la red local y activamos el BIT DE FORWARDING (imprescindible!!!!!)
#eth0 internet --> eth1 LAN

/sbin/iptables -t nat -A POSTROUTING -s 192.168.10.0/255.255.255.0 -o eth0 -j MASQUERADE

#No enmascaramos el trafico externo
/sbin/iptables -t nat -A POSTROUTING -o eth1 -d 0/0 -j ACCEPT && echo "No mascara externo"

# Con esto permitimos hacer forward de paquetes en el firewall, o sea
# que otras máquinas puedan salir a traves del firewall.
echo 1 > /proc/sys/net/ipv4/ip_forward

#Redireccionar al puerto 8080 (proxy) todos los paquetes que entran por eth1
#y con destino puerto 80 (HTTP), de esta manera conseguimos un proxy transparente.

#HTTP

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080 && echo "Redir http"

#HTTPS
#No funciona el redir correctamente.
#/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 8080 && echo "Redir https"

#Para FTP-DATE

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 20 -j REDIRECT --to-port 8080 && echo "Redir FTP-DATE"

#Par el FTP

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 21 -j REDIRECT --to-port 8080 && echo "Redir FTP"

#TELNET

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 23 -j REDIRECT --to-port 8080 && echo "Redir TELNET"

# GOPHER

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 70 -j REDIRECT --to-port 8080 && echo "Redir GOPHER"

# SSH

#/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 22 -j REDIRECT --to-port 8080 && echo "Redir SSH"

# NNTP SSL

/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 563 -j REDIRECT --to-port 8080 && echo "Redir SSL"

Primero declara que habra

Imagen de damage

Primero declara que habra los puertos y despues coloca las lines de redireccion y forwarding, si no no te funca ni a palos.

De igual forma el  echo 1 > /proc/sys/net/ipv4/ip_forward colocalo despues de las politicas por defecto, el problema parece ( a mi concepto) de estructuraciòn de tu script.

 

Prueba de esa forma y comentanos que paso

Saludos 

Apache como proxy

Imagen de antares

Hay una forma más sencilla de configurar lo que necesitas, debes levantar el apache en la linux que tiene internet y configurar el apache como proxy reverso, cuando un cliente en internet le haga consultas a tu apache, él realiza la petición a una pc de tu lan y responde. Es el mecanismo clásico de un proxy, sólo que inverso. Alguna vez configuré esto para publicar un sitio asp de un windows de mi lan a través del linux que tiene la ip pública. Si necesitas más detalles avísame para buscar las configuraciones que hice y pasarlas al foro. Son unas pocas líneas de configuración. Saludos

Saludos,

antares