Está en la página 1de 3

Objetivos

El objetivo es controlar el trfico mediante colas y prioridades en un servidor Ubuntu


Server.
Habra que parchear el kernel y recompilarlo para que iptables soporte filtrado con l7. Y
diris. qu es filtrado con l7 ?
L7 es filtrado a nivel 7 (capa OSI = Aplicacin), lo cual nos permitira filtrar paquetes a
alto nivel, en este caso a nivel de aplicacin: trfico P2P (Azureus, amule), etc. cosa
que no podramos hacer con la versin estndar de iptables.
No es un requisito imprescindible para hacer un QoS pero s recomendable. No es
imprescindible porque sin L7 podemos filtrar el "resto" de trfico a un nivel de
protocolo ms bajo: ssh, ftp, www, smtp, etc
Con todo esta parrafada, quiero decir que si no quereis usar L7, podis pasar
directamente al punto de configuracin.
Vamos a trabajar con las siguientes versiones:
1. Ubuntu Server Intrepid (8.10, kernel 2.6.27-7-server)
2. iproute: contiene las herramientas tc necesarias para el rbol de preferencias
(qdisc, classes,.).
3. iptables: versin 1.4.2
4. Layer7: nos servir para filtrar paquetes a nivel 7 (aplicacin) como protocolos
P2P.

Descarga de paquetes necesarios


Layer7
L7-filter kernel
wget http://downloads.sourceforge.net/l7-filter/netfilter-layer7v2.20.tar.gz

L7-filter userpace
wget http://downloads.sourceforge.net/l7-filter/l7-filter-userspace0.10.tar.gz

L7 descarga de definiciones de protocolos


wget http://downloads.sourceforge.net/l7-filter/l7-protocols-2008-1218.tar.gz

Iptables
Descarga de Iptables (versin 1.4.2)

wget http://www.netfilter.org/projects/iptables/files/iptables1.4.2.tar.bz2

Kernel 2.6.27.7
Descarga del kernel
sudo apt-get install linux-source

Parcheo y recompilacin del kernel


Instalar l7-filter y los fuentes del kernel
tar -xvf /usr/src/linux-source-2.6.27.tar.bz2
ln -s /usr/src/linux-source-2.6.27 /usr/src/linux
tar -xvf netfilter-layer7-v2.20.tar.gz

Aplicar el parche a las fuentes del kernel


cd /usr/src/linux
patch -p1 < ../netfilter-layer7-v2.20/kernel-2.6.25-layer7-2.20.patch

Aplicar el parche e instalar Iptables 1.4.2


tar -xvf iptables-1.4.2.tar.bz2
cd iptables-1.4.2
patch -p1 < ../netfilter-layer7-v2.20/iptables-1.4-for-kernel2.6.20forward-layer7-2.20.patch
chmod +x extensions/.layer7-test
make KERNEL_DIR=/usr/src/linux
make install KERNEL_DIR=/usr/src/linux

Si no funcionara la compilacin, copiar los ficheros libxt_layer7.c y libxt_layer7.man


del directorio:
/usr/src/netfilter-layer7-v2.20/iptables-1.4.1.1-for-kernel2.6.20forward/

en el directorio:
/usr/src/iptables-1.4.2/extensions

y volver a compilar.

Instalar las definiciones de protocolos


tar -xvf l7-protocols-2008-12-18.tar.gz
cd l7-protocols-2008-12-18.tar.gz
make install

Configuracin, compilacin e instalacin del nuevo


kernel
Dependencias
Para poder compilar el kernel necesitaremos tener los siguientes paquetes instalados:
apt-get install fakeroot kernel-package libncurses5-dev

Fichero .config
Para no partir de cero en la configuracin del kernel, partimos del fichero .config
original y lo copiamos al directorio /usr/src/linux.
cp /boot/config-2.6.27-7-server /usr/src/linux/.config

Habilitar opciones del kernel para netfilter-L7


A continuacin accedemos a los mens de configuracin del kernel:
cd /usr/src/linux
make menuconfig

Y debemos asegurarnos que estn seleccionadas:

* Networking support
* Networking options
* Network packet filtering framework (Netfilter)
* Core Netfilter Configuration
* Connection tracking flow accounting
* Connection mark tracking support
* <M> Layer 7 match support
* Layer7 debugging support

También podría gustarte