l7 en ubuntu

4
Objetivos El objetivo es controlar el tráfico mediante colas y prioridades en un servidor Ubuntu Server. Habría que parchear el kernel y recompilarlo para que iptables soporte filtrado con l7. Y diréis……. ¿qué es filtrado con l7 ? L7 es filtrado a nivel 7 (capa OSI = Aplicación), lo cual nos permitiría filtrar paquetes a alto nivel, en este caso a nivel de aplicación: tráfico P2P (Azureus, amule), etc…. cosa que no podríamos hacer con la versión estándar 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 tráfico a un nivel de protocolo más bajo: ssh, ftp, www, smtp, etc…… Con todo esta parrafada, quiero decir que si no quereis usar L7, podéis pasar directamente al punto de configuración. 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: versión 1.4.2 4. Layer7: nos servirá para filtrar paquetes a nivel 7 (aplicación) como protocolos P2P. Descarga de paquetes necesarios Layer7 L7-filter kernel wget http://downloads.sourceforge.net/l7-filter/netfilter-layer7- v2.20.tar.gz

Upload: christyan-leon

Post on 18-Jan-2016

6 views

Category:

Documents


0 download

DESCRIPTION

ubuntus

TRANSCRIPT

Page 1: l7 en Ubuntu

ObjetivosEl objetivo es controlar el tráfico mediante colas y prioridades en un servidor Ubuntu Server.Habría que parchear el kernel y recompilarlo para que iptables soporte filtrado con l7. Y diréis……. ¿qué es filtrado con l7 ?L7 es filtrado a nivel 7 (capa OSI = Aplicación), lo cual nos permitiría filtrar paquetes a alto nivel, en este caso a nivel de aplicación: tráfico P2P (Azureus, amule), etc…. cosa que no podríamos hacer con la versión estándar 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 tráfico a un nivel de protocolo más bajo: ssh, ftp, www, smtp, etc……

Con todo esta parrafada, quiero decir que si no quereis usar L7, podéis pasar directamente al punto de configuración.

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: versión 1.4.24. Layer7: nos servirá para filtrar paquetes a nivel 7 (aplicación) como protocolos

P2P.

Descarga de paquetes necesarios

Layer7

L7-filter kernel

wget http://downloads.sourceforge.net/l7-filter/netfilter-layer7-v2.20.tar.gz

L7-filter userpace

wget http://downloads.sourceforge.net/l7-filter/l7-filter-userspace-0.10.tar.gz

L7 descarga de definiciones de protocolos

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

Iptables

Descarga de Iptables (versión 1.4.2)

Page 2: l7 en Ubuntu

wget http://www.netfilter.org/projects/iptables/files/iptables-1.4.2.tar.bz2

Kernel 2.6.27.7

Descarga del kernel

sudo apt-get install linux-source

Parcheo y recompilación del kernel

Instalar l7-filter y los fuentes del kernel

tar -xvf /usr/src/linux-source-2.6.27.tar.bz2ln -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/linuxpatch -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.bz2cd iptables-1.4.2patch -p1 < ../netfilter-layer7-v2.20/iptables-1.4-for-kernel-2.6.20forward-layer7-2.20.patchchmod +x extensions/.layer7-testmake KERNEL_DIR=/usr/src/linuxmake install KERNEL_DIR=/usr/src/linux

Si no funcionara la compilación, copiar los ficheros libxt_layer7.c y libxt_layer7.man del directorio:

/usr/src/netfilter-layer7-v2.20/iptables-1.4.1.1-for-kernel-2.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.gzcd l7-protocols-2008-12-18.tar.gzmake install

Page 3: l7 en Ubuntu

Configuración, compilación e instalación 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 configuración 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 continuación accedemos a los menús de configuración del kernel:

cd /usr/src/linuxmake menuconfig

Y debemos asegurarnos que están 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