Filtrar tráfico p2p en linux | Algo de Linux

lunes, 18 de enero de 2010

Filtrar tráfico p2p en linux

Un problema habitual para los administradores de redes es el abuso del uso de P2P. Si tenemos un servidor linux, podemos filtrar este tipo de tráfico con el fin de pararlo, o, al menos, ralentizarlo de forma que no merezca la pena.

Una forma de hacerlo es usando Xtables-addons.

Xtables-addons
contiene extensiones que no fueron aceptadas o aún no han sido aceptadas en los paquetes del kernel o iptables. Una de ellas es el módulo ipp2p (xt_ipp2p) que nos permite filtrar el tráfico p2p.

Como en Debian Lenny, a día de hoy, aún no tenemos la versión 1.4.3 de iptables, y es la versión mínima para trabajar con xtables, me he descargado el código fuente y lo he compilado. Pero vamos paso por paso lo que he hecho.

Primero, descargamos iptables-1.4.3.tar.bz2 y xtables-addons-1.21.tar.bz2.

Luego copiamos los archivos descargados a /usr/src:

# cp iptables-1.4.3.tar.bz2 /usr/src
# cp xtables-addons-1.21.tar.bz2 /usr/src

Y los descomprimimos:

# cd /usr/src
# tar xfvj iptables-1.4.3.tar.bz2

# tar xfvj xtables-addons-1.21.tar.bz2

Se nos crearán dos directorios:
  • iptables-1.5.3
  • xtables-addons-1.21
Como es necesario tener los headers correspondientes al núcleo que tenemos instalado, los instalamos:

# aptitude install linux-headers-`uname -r`

Primero compilaremos e instalaremos iptables. Para ello, entramos en el directorio iptables-1.5.3:

# cd iptables-1.5.3

# ./configure

Si tuviéramos algún error, es cuestión de ver qué es lo que nos falta. Si todo va bien, no tendremos ningún error y podremos compilar.

# make

Y, si el proceso de compilación no nos ha devuelto ningún error, instalamos:

# make install

Una vez instalado iptables, podemos ver si está funcionando si ejecutamos en un terminal:

# iptables --version

Una vez instalado iptables, vamos a instalar xtables-addons. Para ello, entramos en el directorio xtables-addons-1.21:

# cd xtables-addons-1.21

Y ejecutamos:

# ./configure

Si tuviéramos algún error, como ya dijimos al instalar iptables, es cuestión de ver qué es lo que nos falta. Si todo va bien, no tendremos ningún error y podremos compilar:

# make

Y, si el proceso de compilación no nos ha devuelto ningún error, instalamos:

# make install

Una vez instalado xtables-addons, podemos comprobar si todo ha ido bien de la siguiente manera:

# iptables -m ipp2p --help

Obtendremos una ayuda acerca de cómo usar ip2p con iptables.

Como podemos ver, podremos filtrar:


--edk [tcp,udp] All known eDonkey/eMule/Overnet packets
--dc [tcp] All known Direct Connect packets
--kazaa [tcp,udp] All known KaZaA packets
--gnu [tcp,udp] All known Gnutella packets
--bit [tcp,udp] All known BitTorrent packets
--apple [tcp] All known AppleJuice packets
--winmx [tcp] All known WinMX
--soul [tcp] All known SoulSeek
--ares [tcp] All known Ares

Ahora ya podríamos usar en iptables reglas que bloqueen los diferentes tipos de tráfico. Ejemplos:

iptables -A FORWARD -p tcp -m ipp2p --edk -j DROP
iptables -A FORWARD -p udp -m ipp2p --edk -j DROP
iptables -A FORWARD -p tcp -m ipp2p --dc -j DROP
iptables -A FORWARD -p tcp -m ipp2p --kazaa -j DROP
iptables -A FORWARD -p udp -m ipp2p --kazaa -j DROP
iptables -A FORWARD -p tcp -m ipp2p --gnu -j DROP
iptables -A FORWARD -p udp -m ipp2p --gnu -j DROP
iptables -A FORWARD -p tcp -m ipp2p --bit -j DROP
iptables -A FORWARD -p udp -m ipp2p --bit -j DROP
iptables -A FORWARD -p tcp -m ipp2p --apple -j DROP
iptables -A FORWARD -p tcp -m ipp2p --winmx -j DROP
iptables -A FORWARD -p tcp -m ipp2p --soul -j DROP
iptables -A FORWARD -p tcp -m ipp2p --ares -j DROP

1 comentario:

Ke00y dijo...

Excelente post.