Firewall+DMZ+DNS

Miguel Angel Amador L jokercl en gmail.com
Lun Jul 11 09:01:32 CLT 2005


On 7/10/05, Luis Eduardo Vivero Peña <luisviveropenna en cdsl.cl> wrote:
> Holas,
> 
> Tengo un problema con un firewall.
> 
> Firewall: eth0-->internet
>         : eth1-->LAN1
>         : eth2-->LAN2
>         : eth3-->DMZ
> 
> En el mismo firewall esta instalado el DNS (no hay mas maquinas para
> instalar).
> 
> Las LAN1, LAN2, DMZ estan definidas en segmentos de red con IP privadas.
> De las LAN1, LAN2 y DMZ puedo salir a internet.
> 
> Cuando pongo una maquina en la DMZ no se ve de afuera, siendo que estoy
> redireccionando el puerto 80 hacia la maquina de la DMZ.
> 
> Otra cosa con la que tengo problemas, es que en el DNS esta definido un
> servidor web para un dominio. El asunto es que le puse la misma IP
> publica a este servidor web, para que sea encontrado desde afuera, pero
> en realidad es que tiene ip privada en la DMZ. Creo que se deberia
> resolver esto con la redireccion del puerto 80 hacia la maquina de la
> DMZ que es el servidor web.
> 
> El punto es que no veo el servidor web desde afuera.
> Envio mi firewalito para ver si me echan una mano.
> 
> 
> Gracias y salu2
> 
> #!/bin/bash
> #
> 
> echo "Activando firewall"
> 
> # Se permite forwarding a traves de la maquina
> echo 1 > /proc/sys/net/ipv4/ip_forward
> 
> /sbin/modprobe ip_conntrack
> /sbin/modprobe ip_conntrack_ftp
> /sbin/modprobe ip_conntrack_irc
> /sbin/modprobe ip_nat_ftp
> 
> 
> # Flush
> /sbin/iptables -F
> /sbin/iptables -X
> /sbin/iptables -t nat -F
> /sbin/iptables -t mangle -F
> 
> # Environment variables
> # Imterfaces de Red
> INET="eth0"
> LAN1="eth1"
> LAN2="eth2"
> DMZ="eth3"
> 
> ################################ Politicas por defecto #############
> /sbin/iptables -P INPUT DROP
> /sbin/iptables -P FORWARD DROP
> /sbin/iptables -P OUTPUT ACCEPT
> ############################### /Politicas por defecto ############
> 
> # Input Rules
> /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
> /sbin/iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
> 
> # LAN #############################################################
> # acepta trafico desde LAN1:
> /sbin/iptables -A INPUT -m state --state NEW -i $LAN1 -j ACCEPT
> # acepta trafico desde LAN2:
> /sbin/iptables -A INPUT -m state --state NEW -i $LAN2 -j ACCEPT
> 
> # Salida de la red LAN1 para internet
> /sbin/iptables -t nat -A POSTROUTING -s 172.16.1.0/24 \
>         -o $INET -j MASQUERADE
> 
> # Salida de la red LAN2 para internet
> /sbin/iptables -t nat -A POSTROUTING -s 166.110.1.0/24 \
>         -o $INET -j MASQUERADE
> 
> # Aqui viene la redireccion de puertos!
> /sbin/iptables -t nat -A PREROUTING -i eth0 \
>         -p tcp --dport 80 -j DNAT --to 10.1.1.2:80
> 
> # /LAN ###########################################################
> 
> ########################### Puertos Publicos ###########################
> /sbin/iptables -A INPUT -m state --state NEW \
>                         -p tcp --dport 22 -j ACCEPT
> /sbin/iptables -A INPUT -m state --state NEW \
>                         -p tcp --dport 25 -j ACCEPT
> /sbin/iptables -A INPUT -m state --state NEW \
>                         -p tcp --dport 53 -j ACCEPT
> /sbin/iptables -A INPUT -m state --state NEW \
>                         -p udp --dport 53 -j ACCEPT
> /sbin/iptables -A INPUT -m state --state NEW \
>                         -p tcp --dport 80 -j ACCEPT
> ################################ /INPUT ###############################
> 
> 
> ################################ FORWARD ##############################
> /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
> /sbin/iptables -A FORWARD -m state --state NEW -i lo -j ACCEPT
> /sbin/iptables -A FORWARD -m state --state NEW -i $LAN1 -j ACCEPT
> /sbin/iptables -A FORWARD -m state --state NEW -i $LAN2 -j ACCEPT
> ############################### /FORWARD ##############################
> 
> echo "Listo :)"
> 
> 
> 
A la regla de redirect le falta el forward asociado que permita pasar
los paquetes para dicha regla.

/sbin/iptables -t nat -A PREROUTING -i eth0  -p tcp --dport 80 -j DNAT
--to 10.1.1.2:80

Algo asi como 
iptables  -A FORWARD  -i eth0  -d 10.1.1.2  -p tcp --dport 80 -j
ACCEPT #por decir algo
 o similar.
Pero basicamente es que con las reglas de nat , haces la
transformacion, pero debes habilitar una de FORWARD en la tabla de
filtrados para que deje pasar el paquete al que le haces NAT

Salu2
-- 
Miguel Angel Amador L.
[ jokercl at gmail dot com |  User #297569 counter.li.org ]
[ http://www.fotolog.net/kush ]



Más información sobre la lista de distribución Linux