Problemita con mi Script para Firewall/Iptables
Hola a todos!
Tengo un problema con el siguiente script que escribi para hacer un
firewall a mi red. Todo funciona perfecto a excepcion de que los
computadores de la red no pueden ver la pagina web que esta en el
mismo server de la red. Es decir, si dan www.pagina.com, o
*.pagina.com, no pueden ver nada.
La red esta organizada asi:
Firewall Recibe conexion a internet por una ethernet
Firewall Comparte la conexion por la otra ethernet a un hub, 192.168.1.1
Server 192.168.1.2
Clientes 192.168.1. >3
El script de iptables que hice fue el siguiente:
#! /bin/sh
# Firewall IPTABLES for Global
# Author: Alex Barrios
# <alexertec@gmail.com>.
#
# Version: @(#)fire-wall 1.1 10-Abrl-2005 alexertec@gmail.com
#
###
# Localizacion de iptables
#
IPTABLES="/sbin/iptables"
###
# Configuracion Internet
#
INET_IP="200.XX.XXX.XXX"
INET_IFACE="eth0"
###
# Configuracion red Local
#
LAN_IP="192.168.1.1"
LAN_IP_RANGE="192.168.1.0/24"
LAN_BCAST_AD="192.168.1.255"
LAN_IFACE="eth1"
###
# Configuracion del LocalHost
#
LO_IFACE="lo"
LO_IP="127.0.0.1"
###
# Funcion de inicio del servicio
#
d_start() {
###
# Borra las Reglas Anteriores
########
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -t nat -F
###
# Politicas predeterminadas para input, forward y output
########
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP #drop
###
# Regla para el NAT enmascarado. La ip puede ser dinamica
########
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
###
# Activado el Forwarding de paquetes
# (fue ativado en el boot, ver /etc/network/options)
###
# Regla para tcp_bad packets
########
$IPTABLES -N bad_tcp_packets
# $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j
LOG --log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
###
# Checkeo de las posibles ip's spoffeadas
########
$IPTABLES -A bad_tcp_packets -i $INET_IFACE -s 192.168.1.0/16 -j DROP
$IPTABLES -A bad_tcp_packets -i $INET_IFACE -s 192.168.0.0/16 -j DROP
$IPTABLES -A bad_tcp_packets -i $INET_IFACE -s 10.0.0.0/8 -j DROP
$IPTABLES -A bad_tcp_packets -i $INET_IFACE -s 172.16.0.0/12 -j DROP
###
# Bloquea el reenvio de tcp no deseados # #
########
$IPTABLES -A FORWARD -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A FORWARD -p ALL -s $INET_IP -j ACCEPT
$IPTABLES -A FORWARD -p ALL -j bad_tcp_packets
###
# Reglas para el Forward de paquetes
########
$IPTABLES -A FORWARD -i $LAN_IFACE -o $INET_IFACE -m state --state
ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG
--log-prefix "IP FORWARD PACKET DIED:"
$IPTABLES -A FORWARD -i $INET_IFACE -m state --state NEW,INVALID -j DROP
###
# Redireccionado de paquetes DNAT, FTP, WEB, MAIL, Tomcat y DNS
########
# Web
$IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 80 -j DNAT
--to 192.168.1.2:80
# FTP
$IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 20 -j DNAT
--to 192.168.1.2:20
$IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 21 -j DNAT
--to 192.168.1.2:21
# Tomcat
$IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 8080 -j
DNAT --to 192.168.1.2:8080
# DNS
$IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 53 -j DNAT
--to 192.168.1.2:53
# POP & STMP
$IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 25 -j DNAT
--to 192.168.1.2:25
$IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 110 -j DNAT
--to 192.168.1.2:110
###
# Reglas para paquetes TCP y UDP
########
$IPTABLES -N tcp_packets
$IPTABLES -N udpincoming_packets
###
# Reglas para aceptar conexiones TCP
########
$IPTABLES -N allowed
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP
###
# Conexion ssh con el firewall
########
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
###
# Reglas para input tcp no desseados provenientes de internet
########
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets
###
# Reglas para la LAN, loopback y la interfaz del ISP
########
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BCAST_AD -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state
ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG
--log-level DEBUG --log-prefix "IP INPUT PACKET DIED: "
###
# Regla OUTPUT Tcp no Deseados
########
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
###
# Reglas Output para decir las ip's que se aceptan
########
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
###
# Log de paquetes que no pertenecen a las reglas anteriores
########
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG
--log-level DEBUG --log-prefix "IP OUTPUT PACKET DIED: "
###
# Imprime que arranco el Script (establecimiento de reglas)
########
echo "Iniciado Firewall Linux (Iptables)......"
}
###
# Funcion que detiene el servicio
#
d_stop() {
###
# Borrado de todas las reglas, detiene todo a nivel de red
#
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -t nat -F
###
# Imprime que se detuvo el script (borrado de reglas)
#
echo "Detenido Firewall Linux (Iptables)......."
}
case "$1" in
start)
d_start
;;
stop)
d_stop
;;
esac
exit 0
Cual sera mi problema?¿
Cualquier sugerencia para cambiarlo, corregirlo o mejorarlo es bienvenida!
Saludos y gracias de antemano!
--
----------------------------------------------------------------
! ..::'''AleXerTecH'''::.. ! !
-----------------------------------------------------------------
( o < -! Debian Sarge _ kernel:2.6.8-2-K7
/ /\
V_/_ Usuario linux registrado #383172
Reply to: