Hola

ya estoy desesperado... he mirado en google, la documentaci�n, alg�n
libro... pero no consigo configurar correctamente el cortafuegos :(

Os cuento: Tengo una red privada en casa y me gustar�a montar un
cortafuegos. Hasta ahora he tenido lo siguiente:

<--- 
#!/bin/sh

echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -A POSTROUTING -t nat -j MASQUERADE -o ppp0
/sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 4661 -j DNAT
--to 172.16.0.3:4661
/sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 4662 -j DNAT
--to 172.16.0.3:4662
/sbin/iptables -A PREROUTING -t nat -p udp -i ppp0 --dport 4665 -j DNAT
--to 172.16.0.3:4665

# INBOUND POLICY

# Accept inbound packets that initiate SSH sessions
/sbin/iptables -A INPUT -p tcp -j ACCEPT --dport 22 -m state --state NEW

# Accept inbound packets that initiate HTTP sessions
/sbin/iptables -A INPUT -p tcp -j ACCEPT --dport 80 -m state --state NEW
;;
--->

Pero como todo quedaba demasiado abierto me he decidido a cerrar un poco
m�s los accesos. El resultado lo teneis en el adjunto iptables_full

Problemas que me han aparecido:
-Aunque me permite acceder a la web de mi casa, no me permite navegar
fuera de mi red.
-No me permite enviar correo: una m�quina lo env�a mediante exim
directamente y la otra mediante evolution+smtp de un isp. La prueba la
he hecho con la primera.
-Es posible que si me permita recibir correo desde servidores externos
pop3 (en un log de snort aparece la conexi�n a los buzones)
-No me permite utilizar clientes de mensajer�a instantanea (tipo MSN,
etc)
-No me permite acceder a las cuentas FTP de otros sitios, teniendo que
conectarme mediante ssh al cortafuegos para poder establecer la conexi�n
FTP con los servidores externos.
-Por �ltimo, eMule. No estoy seguro porque estaba descargando pero mucho
me temo que tal y como est� el panorama... me dar� low-id 

Se me olvidaba... una de las m�quinas tiene que trabajar de vez en
cuando con WinXP. La salida a internet la hace mediante SAMBA. Imagino
que tambi�n tendr� que aparecer algo en el cortafuegos �me equivoco?

Desde luego he conseguido lo que buscaba... cerrar m�s los accesos al
sistema... pero los he cerrado demasiado :'( Ya no se qu� hacer, qu�
cambiar ni qu� tocar... �alguna ayuda?

Gracias por adelantado. Un saludo.
-- 
Ferm�n Manzanedo | Badajoz - Spain |   Utilice formatos libres para
http://efiex.homelinux.org/~fermin | compartir informaci�n. No utilice
Llave p�blica gpg en pgp.rediris.es |      .doc .xls .gif...
Powered by Debian GNU/Linux "Sid" |    as�, gana la humanidad ;)
#!/bin/sh
#
# last modified 28 Dec 2003
#

IPTABLES=/sbin/iptables
test -x $IPTABLES || exit 5

case "$1" in
start)
echo -n "Cargando el filtrado de paquetes de la red"

# SETUP -- Necesario para todos los host

# Carga los m�dulos del n�cleo
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_nat
modprobe ipt_MASQUERADE

# Elimina reglas antiguas y tablas
$IPTABLES --flush
$IPTABLES -F -t nat
$IPTABLES --delete-chain

# Establece reglas de denegaci�n por defecto para las tres cadenas
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

# Permite loopback
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT

# Permite actuar de pasarela
/sbin/iptables -A POSTROUTING -t nat -j MASQUERADE -o ppp0

$IPTABLES -A FORWARD -i eth0 -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPTABLES -A FORWARD -s 172.16.0.0/12 -j ACCEPT
$IPTABLES -A FORWARD -d 172.16.0.0/12 -j ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forward

# Permite conectarse a idefix al eMule
/sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 4661 -j DNAT --to 
172.16.0.3:4661
/sbin/iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 4662 -j DNAT --to 
172.16.0.3:4662
/sbin/iptables -A PREROUTING -t nat -p udp -i ppp0 --dport 4665 -j DNAT --to 
172.16.0.3:4665

# Para evitar (de manera rudimentaria) ip-spoofing
$IPTABLES -A INPUT -s 255.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!"
$IPTABLES -A INPUT -s 255.0.0.0/8 -j DROP
$IPTABLES -A INPUT -s 0.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!"
$IPTABLES -A INPUT -s 0.0.0.0/8 -j DROP
$IPTABLES -A INPUT -s 127.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!"
$IPTABLES -A INPUT -s 127.0.0.0/8 -j DROP
$IPTABLES -A INPUT -s 192.168.0.0/16 -j LOG --log-prefix "Spoofed source IP!"
$IPTABLES -A INPUT -s 192.168.0.0/16 -j DROP

# Tengo que a�adir la interface a la que me refiero para que permita las 
# conexiones desde la red interna.
$IPTABLES -A INPUT -i ppp0 -s 172.16.0.0/12 -j LOG --log-prefix "Spoofed source 
IP!"
$IPTABLES -A INPUT -i ppp0 -s 172.16.0.0/12 -j DROP

$IPTABLES -A INPUT -s 10.0.0.0/8 -j LOG --log-prefix "Spoofed source IP!"
$IPTABLES -A INPUT -s 10.0.0.0/8 -j DROP

# No permitir el paso de paquetes con el indicativo --syn
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix 
"Stealth scan attempt?"
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# Pol�tica de filtrado de paquetes:

# POL�TICA DE ENTRADA 

# Aceptar paquetes entrantes que sean parte de una sesi�n previamente autorizada

$IPTABLES -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

# Aceptar paquetes entrantes que inicien sesi�n SSH
$IPTABLES -A INPUT -p tcp -j ACCEPT --dport 22 -m state --state NEW

# Permitir paquetes entrantes que inicien sesi�n HTTP
$IPTABLES -A INPUT -p tcp -j ACCEPT --dport 80 -m state --state NEW

# Hacer log de todo lo que no se acepte
$IPTABLES -A INPUT -j LOG --log-prefix "Dropped by default:"

# POLITICA DE SALIDA

# Si es parte de una conexi�n aprovada, dejar salir.
$IPTABLES -I OUTPUT 1 -m state --state RELATED,ESTABLISHED -j ACCEPT

# Permitir consultad de DNS
$IPTABLES -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

# Hacer log de todo lo que no se acepte
$IPTABLES -A OUTPUT -j LOG --log-prefix "Dropped by default:"
;;

wide_open)
echo -n "PELIGRO! Unloading Packet Filters!!"
# Unload filters and reset default policies to ACCEPT.
# FOR EMERGENCY USE ONLY -- else use 'stop' !!
$IPTABLES --flush
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
;;

stop)
echo -n "Filtrado detenido..."
# Unload all fw rules, leaving default drop policies
$IPTABLES --flush
$IPTABLES -F -t nat
;;

status)
echo "Preguntando por el estado de iptables (via iptables --list)..."
$IPTABLES --line-numbers -v --list
;;

*)
echo "Utilizacion: $0 {start|stop|wide_open|status}"
exit 1
;;
esac

Attachment: signature.asc
Description: Digital signature

Responder a