Hola a todos!! Adjunto mi grano de arena con un script de firewall que construyo un amigo con iptables, solo agradezco seriedad a la hora de conservar los nombres de los autores, usenlo como quieran pero por favor no eliminen los nombres de los autores ni las referencias.
El problema es el siguiente: Este script funciona perfecto en en el filtrado entre el servidor y el firewall, pero los computadores de la red interna no pueden ver los dominios web del servidor. Es decir, desde internet si pueden ver las paginas web pero desde la intranet no. Desde adentro solo ven el DNS, pero no pueden ver ninguna www.dominio.com o *.dominio.com, solo pueden ver dominio.com (sin nada antes). Aclaro que si hago ping a estas dir (*.dominio.com), si llega, pero si trato de acceder desde un navegador no se puede. Espero haberme explicado. Adjunto mi granito de arena en el mundo DEBIAN (aunq se que pueden haber cosas mejores), y espero su ayuda. Un saludo y gracias! --------------------------------------------------------------------- ( o < -! Debian Sarge / /\ V_/_ ! ..::'''AleXerTecH'''::.. ! !
#!/bin/sh # # Firewall Script para Linux 2.6.x e iptables # # Autores: Alex Barrios (AleXerTecH) & Hector Lira # # [EMAIL PROTECTED] # # Nota: Pueden hacer modificaciones y usar este script siempre y cuando # se mencionen y se de credito a sus autores originales... # ######################################################################### # Configuracion de red local. # ######################################################################### LAN_IP="192.168.1.1" LAN_IP_RANGE="192.168.1.0/24" LAN_BCAST_ADRESS="192.168.1.255" LAN_IFACE="eth1" ######################################################################### # Configuración del Localhost. # ######################################################################### LO_IFACE="lo" LO_IP="127.0.0.1" ######################################################################### # Configuracion de Internet # ######################################################################### INET_IP="200.8X.2XX.2XX" INET_IFACE="eth0" ######################################################################### # Localización de iptables. # ######################################################################### IPTABLES="/sbin/iptables" #########################################################################. # Activación del mecanismo de protección del kernel de linux #. #########################################################################. for x in /proc/sys/net/ipv4/conf/*; do echo "1" > $x/rp_filter done ########################################################################. # Desactivar los Source Routed Packets #. ########################################################################. echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route ######################################################################### # Borra las reglas anteriores. # ######################################################################### $IPTABLES -F $IPTABLES -X $IPTABLES -Z $IPTABLES -t nat -F ######################################################################### # Politicas Predeterminadas de INPUT, FORWARD y OUTPUT . # ######################################################################### $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD DROP ######################################################################### # Reglas de NAT enmascarado la ip puede ser Dinamica. # ######################################################################### $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE ######################################################################### # Activa forwarding de paquetes Linux no lo hace en el boot. # ######################################################################### echo "1" > /proc/sys/net/ipv4/ip_forward ######################################################################### # Regla tcp_bad packets, paquetes tcp no deseados. # ######################################################################### $IPTABLES -N bad_tcp_packets $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-pr efix "New not syn:" $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP ######################################################################### # Chequeo de posibles IP Spoofeadas. # ######################################################################### $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 192.168.1.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 renvio de tcp no deseados. # ######################################################################### $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets ######################################################################### # Reglas del renvio de paquetes. # ######################################################################### #$IPTABLES -A FORWARD -i $LAN_IFACE -o $INET_IFACE -j ACCEPT $IPTABLES -A FORWARD -i $INET_IFACE -j ACCEPT $IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-leve l DEBUG --log-prefix "IPT FORWARD packet died: " $IPTABLES -A FORWARD -i $INET_IFACE -m state --state NEW,INVALID -j DROP ######################################################################### #Redireccionamiento de paquetes DNAT. FTP,SSH,WEB,SMTP, Pop3 y Tomcat 8080# ######################################################################### $IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 80 -j DNAT --to 192.16 8.1.2:80 $IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 8080 -j DNAT --to 192. 168.1.2:8080 $IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 21 -j DNAT --to 192.16 8.1.2:21 $IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 25 -j DNAT --to 192.16 8.1.2:25 $IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport 110 -j DNAT --to 192.1 68.1.2:110 ######################################################################### # Reglas para paquetes ICMP, TCP y UDP # ######################################################################### #$IPTABLES -N icmp_packets $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 ######################################################################### # Reglas para conexiones ICMP # ######################################################################### #$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT #$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT ######################################################################### # Reglas para conexiones SSH con el firewall # ######################################################################### $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed ######################################################################### # Reglas para puertos UDP DNS y NTP # ######################################################################### #$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT #$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 123 -j ACCEPT #$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 2074 -j ACCEPT #$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 4000 -j ACCEPT ######################################################################### # Reglas INPUT para TCP no deseados y Provenientes de Internet # ######################################################################### $IPTABLES -A INPUT -p tcp -j bad_tcp_packets #$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets ######################################################################### # Reglas INPUT para la LAN la Loopback y la Interfaz del ISP # ######################################################################### $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BCAST_ADRESS -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 A CCEPT $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: " ######################################################################### # Reglas OUTPUT TCP no deseados # ######################################################################### $IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets ######################################################################### # Reglas OUTPUT para decidir las IP 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 ######################################################################### # Logs 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 "IPT OUTPUT packet died: " ######################################################################### # Imprime que arranco el script # ######################################################################### echo "Starting Firewall Linux AleXerTecH (Iptables)...done"

