[hackmeeting] lo que iba a ha dar..

Esteve Fernàndez esteve en sindominio.net
Lun Sep 24 20:02:55 CEST 2001


On Sat, 22 Sep 2001 18:36:32 -0400
jjavi <qemm en upseros.com> wrote:

> reglas creadas y adaptar y crear otras con ayuda de la gente para 
> que entre todos aprender cosas nuevas como la adaptacion a distintos 
> casos de seguridad con este tipo de defensas.Creo esto es todo lo 
> que pretendia en pocas palabras.

Yo me las he mirado, algunas cosas que se pueden mejorar/cambiar:

"bucle invertido", mejor loopback que se entiende más.

Tal vez sería mejor ir creando las reglas de ipchains de forma separada
y luego ponerlas en los targets INPUT/FORWARD/etc. de esta forma
puedes escribir diferentes reglas pequeñas e ir añadiéndolas a las cadenas
(por ejemplo una regla que se encargue de los escaneos de puertos, otra
para limitar los DoS, etc.)

La solución para evitar los smurfs con ipchains está bien, pero con iptables
se puede mejorar:

iptables -A aduana -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

(aduana es una regla que tengo en mi firewall que se encarga de la mayoría
de cosas)

de esa forma aceptas los pings, pero con cierto límite (1 por segundo, más no).
Claro que hay que definir la política por defecto o una regla final que se encargue
de todo.

Para cualquier escaneo de puertos se puede hacer (con ipchains sólo se pueden filtrar
por SYN) y funciona con los escaneos por TCP de Xmas, NULL, SYN, FIN:
iptables -A scan-block -p tcp -m tcp --syn -j anti-scan-reject
iptables -A scan-block -p tcp -m tcp --tcp-flags ALL SYN -j anti-scan-reject
iptables -A scan-block -p tcp -m tcp --tcp-flags ALL FIN -j anti-scan-reject
iptables -A scan-block -p tcp -m tcp --tcp-flags ALL NONE -j anti-scan-reject
iptables -A scan-block -p tcp -m tcp --tcp-flags ALL FIN,PSH,URG -j anti-scan-reject
iptables -A scan-block -p tcp -m tcp --tcp-flags ALL ALL -j anti-scan-reject
iptables -A scan-block -p tcp -j anti-scan-reject

y luego algo como
iptables -A aduana -d $DIRECCION -i $INTERFAZ -p tcp -m tcp --syn -m limit --limit 1/s -j ACCEPT
iptables -A aduana -d $DIRECCION -i $INTERFAZ -p tcp -m tcp --tcp-flags ALL FIN -m limit --limit 1/s -j ACCEPT
iptables -A aduana -d $DIRECCION -i $INTERFAZ -p tcp -j scan-block

$INTERFAZ es una variable que contiene el interfaz de red (pppX, ethX, etc.)
y $DIRECCION es otra variable con la ip (si se tiene una ip estática)

después, anti-scan-reject es una regla que consiste en sólo:

iptables -A anti-scan-reject -p tcp -j REJECT --reject-with tcp-reset

así no se gasta tanta memoria llamando al REJECT directamente

Esto en el caso que se trate de una máquina conectada a internet y que preste
servicios al exterior. Si es una máquina con conexión normal y se quieren cerrar
los servicios al exterior, yo por ejemplo tengo exim (25), cups (631), samba
(139), swat (901) y no quiero que nadie los use (soy así de egoísta) puedo
poner esto:

iptables -A aduana -d $DIRECCION -i $INTERFAZ -p tcp -m multiport --dport 25,139,631,901 -j scan-block

pero si tengo algún servicio más y no me quiero preocupar de los puertos de
servicio:

iptables -A aduana -d $DIRECCION -i $INTERFAZ -p tcp -m tcp --dport 1025:65535 -j ACCEPT
iptables -A aduana -d $DIRECCION -i $INTERFAZ -p tcp -m tcp -j scan-block

Un truco muy útil para evitar DoS desde una misma máquina es usar el
módulo iplimit que restringe las conexiones paralelas, algo como esto para el puerto
25 de smtp y 5 conexiones simultáneas desde la misma ip:

iptables -A aduana -d $DIRECCION -i $INTERFAZ -p tcp -m tcp --syn --dport 25 -m iplimit --iplimit-above 5 -j anti-scan-reject

Hay más cosas como restringir por estados (netfilter/iptables es "stateful", como
les llaman a este tipo de firewalls de alto nivel, algo que no tiene ipchains)
Ok, es poco pero supongo que a base de discutirlo sacamos configuraciones mucho
mejores.
Adéu.

--
Imagination is more important than knowledge
esteve en sindominio.net
Key fingerprint = EC56 9368 0DBA B56E F67E  D938 27F0 3F30 C1B7 00AA
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : no disponible
Tipo       : application/pgp-signature
Tamaño     : 189 bytes
Descripción: no disponible
Url        : https://listas.sindominio.net/mailman/private/hackmeeting/attachments/20010924/9a5deabb/attachment-0001.pgp


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