En este tip muestro los pasos para instalar un clasificador de paquetes de capa 7 en Linux Centos 5.2 (es valido tambien para otras distribuciones).
Para este fin, voy a usar Netfilter y L7-Filter, el cual identifica los paquetes basandose en patrones de los datos de la capa de aplicacion.
Un ejemplo de uso util seria la identificacion del trafico P2P, FTP, HTTP…
Entrando en materia…
PARTE 1
Descarga de L7-Filter Kernel:
wget http://puzzle.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.20.tar.gz
Descarga de L7-Filter Userspace
wget http://downloads.sourceforge.net/l7-filter/l7-filter-userspace-0.10.tar.gz
Descarga de definiciones de protocolo
wget http://puzzle.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2008-10-04.tar.gz
Descarga de Iptables 1.4.2
wget http://www.netfilter.org/projects/iptables/files/iptables-1.4.2.tar.bz2
Descarga del ultimo kernel disponible 2.4.27.2
wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.2.tar.bz2 -P /usr/src
PARTE 2
Instalar L7-Filter
tar -xvf /usr/src/linux-2.6.27.2.tar.bz2
tar -xvf netfilter-layer7-v2.20.tar.gz
Aplicar el parche a las fuentes del kernel
cd /usr/src/linux-2.6.27.2
patch -p1 < ../netfilter-layer7-v2.20/kernel-2.6.25-layer7-2.19.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.19/iptables-1.4-for-kernel-2.6.20forward-layer7-2.19.patch
chmod +x extensions/.layer7-test
make KERNEL_DIR=/usr/src/linux-2.6.27.2
make install KERNEL_DIR=/usr/src/linux-2.6.27.2
Instalar las definiciones de protocolo
tar -xvf l7-protocols-2008-10-04.tar.gz
cd l7-protocols-2008-10-04.tar.gz
mkdir /etc/l7-protocols
cp protocols/* /etc/l7-protocols
Configuración, compilación e instalación del nuevo kernel
Habilitar las siguientes opciones:
* «Network packet filtering framework(Netfilter)» (Networking → Networking option)
* «Netfilter connection tracking support» (… → Network packet filtering framework(Netfilter) → Core Netfilter Configuration)
* «Connection tracking flow accounting» (en la misma ventana)
* «Layer 7 match support»
El resto de opciones para Netfilter como soporte FTP y demas, es aconsejable habilitarlo. Si no estas seguro del todo, habilitar todo.
cd linux-2.6.27.2
make menuconfig
make all
make modules_install
make install
Comprobar gestor de arranque (Grub en este caso)
cat /etc/grub.conf
* Deberia mostrar algo similar:
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 5.2 (2.6.27.2)
root (hd0,0)
kernel /vmlinuz-2.6.27.2 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.27.2.img
* En mi caso es similar a esto, puede que tu sistema tenga Lilo, no use LVM etc.
Arrancar con el nuevo kernel y comprobar que todo fue bien
reboot
Una vez reiniciado:
/sbin/iptables -m layer7 –help
Espero que os sea util 🙂