Iptables blocking broadcast y multicast

ID-1008828
Dentro del compendio de reglas que se pueden añadir a iptables (que también existen módulos iptables ( -m pkttype–pkt-type) que implementan el tipo de bloqueo de tráfico del que tratamos a continuación, y también se puede tratar mediante parametrización de la pila tcp/ip del kernel de linux), podemos añadir también reglas para bloqueo de tráfico broadcast.

¿Por qué bloquear este tipo de tráfico?

Son direccionamientos especiales, donde enviar tráfico a la dirección de broadcast supone envío de tráfico a todas las máquinas, se utiliza por arp para hacer descubrimientos de redes, o también para hacer descubrimentos por otros protocolos como netbios.  Si se envía tráfico de manera indiscriminada a una dirección de broadcast, este se propagará por todas las ips del segmento de red al que pertenezca esa dirección broadcast.

Algo parecido sucede con tráfico multicast, con la diferencia que este tráfico en lugar de ser a todos, es de uno a muchos o de muchos a muchos. Permitir este tipo de tráfico sin ningún control podría conllevar a problemas de red o saturación de la misma.

Las reglas que he visto a nivel de iptables sin añadir módulos, no me convencen, ya que la red puede estar segmentada (vlan) y las direcciones broadcast y multicast pueden variar de las siguientes reglas:

iptables -A OUTPUT -s 0/0 -d 255.255.255.255 -o eth0 -j DROP
iptables -A INPUT -s 0/0 -d 255.255.255.255 -i eth0 -j DROP
iptables -A OUTPUT -s 0/0 -d xx.xx.xx.255 -o eth0 -j DROP
iptables -A INPUT -s 0/0 -d xx.xx.xx.255 -i eth0 -j DROP

por lo que no añadiría dichas reglas a nuestro firewall.

El bloqueo de este tipo de tráfico se hace a nivel de elementos de red, aunque también se puede implementar a nivel de servidor dedicado bloqueando tráfico de salida hacia esas direcciones. En este caso, podríamos implementarlo como:

A nivel de kernel:

/bin/echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

Con módulos adicionales de iptables, bloqueandopor tipo de paquetes:

/sbin/iptables -I INPUT -m pkttype –pkt-type broadcast -j DROP
/sbin/iptables -I INPUT -m pkttype –pkt-type multicast -j DROP

Personalmente, en lugar de tráfico broadcast de entrada, bloquearía el tráfico broadcast de salida de la máquina:

/sbin/iptables -I OUTPUT -m pkttype –pkt-type broadcast -j DROP
/sbin/iptables -I OUTPUT -m pkttype –pkt-type multicast -j DROP

Pero esto implica añadir módulos a iptables por lo que quizás tengas que recompilar el kernel.

Otra tercera opción sería bloquear tráfico a la dirección broadcast del segmento de red al que pertenezca tu máquina, independientemente del tipo de ataque (flood syn, flood udp…) o del tipo de tráfico que salga de tu servidor (tcp, udp)-

La opción más viable sea configurar correctamente la pila tcp/ip, tema que trataremos más adelante.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s