Hola a todos.

Estoy pegandome con iptables con politica drop, pero no lo consigo
dominar. 
Tengo un equipo con Debian Sarge, dos interfaces haciendo de firewall de
toda la red. Está conectaddo directamente al modem cable. No consigo
poder hacer la conexión a Internet. Si hago un "ping google.com" desde
el firewall o desde algún equipo de la red, me responde "unknown host
google.com".
Sólo necesito que los equipos puedan descargar el correo de un servidor
externo, usar msn y jabber, accder a Internet. Luego además permitir el
acceso por ssh desde el exterior, redireccionando a la dirección del
server. Todo esto lo tengo hecho con otro scipt con política ACCEPT y
funciona.

 Os pego el script que he creado para la política drop. Si alguien me
puede ayudar lo agradecería mucho.

Saludos.
Pablo.

#!/bin/bash

case "$1" in
        start)
                        
                #Limpieza de reglas.
                echo -n "Limpiando reglas iptables: "
                iptables -F
                iptables -X
                iptables -Z
                iptables -t nat -F
                echo "hecho."
                
                #Cargando modulos.
                echo -n "Cargando modulos: "
                /sbin/depmod -a
                modprobe ip_tables
                modprobe ip_conntrack
                modprobe iptable_filter
                modprobe iptable_nat
                modprobe ipt_state
                modprobe ipt_MASQUERADE
                modprobe ipt_LOG
                echo "hecho."           


                #Forwarding.
                echo -n "Activando forwarding: "
                echo "1"> /proc/sys/net/ipv4/ip_forward
                echo "hecho."
                
                #Política por defecto.
                echo -n "Aplicando política: "
                iptables -P INPUT DROP
                iptables -P OUTPUT DROP
                iptables -P FORWARD DROP
                #iptables -t nat -P POSTROUTING DROP
                #iptables -t nat -P PREROUTING DROP
                echo "hecho."
                
                #NAT
                echo -n "Activando NAT: "
                iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
                echo "hecho."
                
                #ICMP
                echo -n "Permitendo echo request: "
                iptables -A INPUT -i eth0 -p icmp -j ACCEPT
                iptables -A OUTPUT -o eth0 -p icmp -j ACCEPT 
                echo "hecho."
                
                #Conexión a Internet.
                echo -n "Activando acceso a Internet: "
                iptables -A INPUT -i eth0 -p tcp --sport 80 -m state --state
ESTABLISHED -j ACCEPT
                iptables -A OUTPUT -o eth0 -p tcp --dport 80 -m state --state
NEW,ESTABLISHED -j ACCEPT
                iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state
ESTABLISHED -j ACCEPT
                iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state
NEW,ESTABLISHED -j ACCEPT
                echo "hecho."

                #ssh exterior al server.
                echo -n "Activando redireccionamiento conexión ssh al server: "
                iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -m state
--state NEW -j DNAT --to 192.168.0.2:22
                iptables -A FORWARD -i eth0 -p tcp --dport 22 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
                echo "hecho."
                
                #Conexión mail
                echo -n "Aceptando conexiones mail: "
                iptables -A INPUT -i eth0 -p tcp --sport 25 -m state --state
ESTABLISHED -j ACCEPT
                iptables -A OUTPUT -o eth0 -p tcp --dport 25 -m state --state
NEW,ESTABLISHED -j ACCEPT
                iptables -A INPUT -i eth0 -p tcp --sport 110 -m state --state
ESTABLISHED -j ACCEPT
                iptables -A OUTPUT -o eth0 -p tcp --dport 110 -m state --state
NEW,ESTABLISHED -j ACCEPT
                echo "hecho."

                #Cerrar 
                echo -n "Cerrando conexiones no necesarias: "
                iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP
                iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP
                echo "hecho."
                ;;
                
        stop)
                echo -n "Parando el firewall: "
                iptables -F INPUT
                iptables -F OUTPUT
                iptables -F FORWARD
                iptables -F
                iptables -t nat -F
                echo "hecho."
                ;;
                
        restart)
                $0 stop
                echo -n "Reiniciando el firewall: "
                sleep 2
                $0 start
                echo "hecho."
                ;;
                
        status)
                iptables -L -n
                ;;
        *)
                echo "usar: $0 {start|stop|restart|status}"
                exit 1
esac
exit 0

-- 

Attachment: signature.asc
Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada digitalmente

Responder a