Layer-7, IPP2P (Xtables-addons) unofficial packages for debian squeeze based routers

Last Update: 3 Jul 2009

Introduccion

Xtables-addons es el sucesor de patch-o-matic permitiendo instalar extensiones no actualmente aceptadas en el kernel y netfilter (iptables), ademas mediante xtables-addons no es necesario recompilar el kernel como ocurre con patch-o-matic.

Ademas de ipp2p xtables-addons incluye (v 1.17):

  • CHAOS
  • DELUDE
  • DHCPMAC
  • ECHO
  • IPMARK
  • LOGMARK
  • RAWNAT
  • STEAL
  • SYSRQ
  • TARPIT
  • TEE
  • condition
  • fuzzy
  • geoip
  • iface
  • ipset
  • ipv4options
  • length2
  • lscan
  • quota2

A partir de Debian Squeeze se incluye el paquete precompilado oficial de xtables-addons, por lo tanto si Ud. necesita estas extensiones considere instalarlas mediante apt, sin embargo si desea anadir layer7 u otras funcionalidades debera recompilar el kernel y iptables, causando incompatibilidad del paquete oficial de xtables-addons debian con su sistema, claro a menos que sea un avesado desarrollador.

Si Ud. desea implementar un router basado en debian, seguramente considerara la utilizacion de hardware especializado, sin partes mecanicas (ventiladores, discos duros) y con unidades de alamcenamiento basado en compact flash grado industrial. Personalmente he encontrado en antiguos IBM PIII Netvista (diseno compacto y bajo consumo de energia) y en Quad Ports Ethernet NICs una solucion robusta y confiable para mis desarrollos. Las imagenes de kernels disponibles en debian son de uso general y o estan optimizadas para PIII y poseen soporte para una gran variedad de hardware, fylesistems, drivers, features, etc innecesarios para un router, por lo tanto es necesario recompilar y ajustar el kernel a las necesidades, no solo para disminuir el tamano de la imagen (Para ponerla en una CF p.ej.) si no para disminuir el consumo de recursos

Existen numerosas distribuciones linux especializadas que probablemente se ajusten a sus necesidades, evalue estas alternativas antes de continuar

Paquetes precompilados PIII

Obs: Estos kernels solo bootean en maquinas con procesador PIII, no intente utilizarlos con otros procesadores
Obs2: Luego de instalar la imagen del kernel asegurese de generar la imagen initrd (update-initramfs) y editar menu.lst
Obs3: Se compila en version Debian Squeeze actualizada

linux 2.6.28.9-l7/iptables 1.4.3.2-l7/xtables-addons-1.17/netfilter-layer7-v2.21

Fecha Compilacion 2/Julio/2009
Debian Squeeze (Testing)
Kernel Config config.txt
Descripcion Kernel Optimizado PIII, No IPV6, No sound cards, No infiniband, minimal graphic support, full network devices, no parallel port, no firewire, no machintosh support, no ISDN, etc
Probado? Parcialmente probado en esta maquina luce bien, funcional. En booteo se lee mensaje "io apic resources could be not be allocated" el cual al parecer es un bug menor del kernel

Paquete Size
iptables_1.4.3.2-1_i386.deb 412K
linux-doc-2.6.28.9-l7_2.6.28.9-l7-10.00.Custom_all.deb 4.7M
linux-headers-2.6.28.9-l7_2.6.28.9-l7-10.00.Custom_i386.deb 5.8M
linux-image-2.6.28.9-l7_2.6.28.9-l7-10.00.Custom_i386.deb 8.9M
linux-image-2.6.28.9-l7-dbg_2.6.28.9-l7-10.00.Custom_i386.deb 4.2M
linux-manual-2.6.28.9-l7_2.6.28.9-l7-10.00.Custom_all.deb 2.1K
linux-source-2.6.28.9-l7_2.6.28.9-l7-10.00.Custom_all.deb 52M
xtables_1.17-1_i386.deb 151K

linux 2.6.28.9-l7-imq/iptables 1.4.3.2-imq-l7/xtables-addons 1.17/netfilter-layer7-v2.21/IMQ (AB)

Fecha Compilacion 3/Julio/2009
Debian Squeeze (Testing)
Kernel Config config.txt
Descripcion Kernel Optimizado PIII, No IPV6, No sound cards, No infiniband, minimal graphic support, full network devices, no parallel port, no firewire, no machintosh support, no ISDN, etc
IMQ linux-2.6.28.9-imq-test2.diff,AB, Max 16 dev
Probado? Parcialmente probado en esta maquina luce bien, funcional. En booteo se lee mensaje "io apic resources could be not be allocated" el cual al parecer es un bug menor del kernel,IMQ ok,Layer7 ok, xtables (ipp2p) ok,
Paquete Size
iptables-1.4.3.2-l7-imq_iptables-1.4.3.2-l7-imq-1_i386.deb 413K
linux-doc-2.6.28.9-l7-imq_2.6.28.9-l7-imq-10.00.Custom_all.deb 4.7M
linux-headers-2.6.28.9-l7-imq_2.6.28.9-l7-imq-10.00.Custom_i386.deb 5.8M
linux-image-2.6.28.9-l7-imq_2.6.28.9-l7-imq-10.00.Custom_i386.deb 8.6M
linux-image-2.6.28.9-l7-imq-dbg_2.6.28.9-l7-imq-10.00.Custom_i386.deb 4.1M
linux-manual-2.6.28.9-l7-imq_2.6.28.9-l7-imq-10.00.Custom_all.deb 2.2K
linux-source-2.6.28.9-l7-imq_2.6.28.9-l7-imq-10.00.Custom_all.deb 52M
xtables_1.17-1_i386.deb 151K

Paquetes precompilados Pentium-Pro, Full

Corresponde a kernel vanilla compilado con el .config de debian y ademas se ha agregado soporte a todos los dispositivos de red (no debug). Estos paquetes son genericos y posiblemente funcionen en cualquier maquina PC-compatible tal cual lo hace el kernel debian, utilize estos paquetes solo si no esta utilizando una maquina PIII, funcionara con una amplia variedad de hardware, pero el tamano de la imagen es mucho mayor.

linux 2.6.28.9-l7-imq/iptables 1.4.3.2-imq-l7/xtables-addons 1.17/netfilter-layer7-v2.21/IMQ (AB)

Fecha Compilacion 4/Julio/2009
Debian Squeeze (Testing)
Kernel Config config.txt
Descripcion Kernel Precompiled with debian .config
Probado? Parcialmente probado en esta maquina luce bien, funcional.

Paquete Size
iptables_1.4.3.2-l7-imq-1_i386.deb 413K
linux-doc-2.6.28.9-l7-imq-full_2.6.28.9-l7-imq-full-10.00.Custom_all.deb 4.7M
linux-headers-2.6.28.9-l7-imq-full_2.6.28.9-l7-imq-full-10.00.Custom_i386.deb 5.9M
linux-image-2.6.28.9-l7-imq-full_2.6.28.9-l7-imq-full-10.00.Custom_i386.deb 20M
linux-image-2.6.28.9-l7-imq-full-dbg_2.6.28.9-l7-imq-full-10.00.Custom_i386.deb 8.0M
linux-manual-2.6.28.9-l7-imq-full_2.6.28.9-l7-imq-full-10.00.Custom_all.deb 2.2K
linux-source-2.6.28.9-l7-imq-full_2.6.28.9-l7-imq-full-10.00.Custom_all.deb 52M
xtables_1.17-1_i386.deb 152K

Como instalar?

Remover iptables

apt-get remove --purge iptables

Instalar imagen del kernel

dpkg -i linux-image-2.6.28.9-l7-imq_2.6.28.9-l7-imq-10.00.Custom_i386.deb

Crear imagen initramfs

update-initramfs -c -k 2.6.28.9-l7-imq

Editar menu.lst y agregar la linea initrd correspondiente

vi /boot/grub/menu.lst
initrd  /boot/initrd.img-2.6.28.9-l7-imq

boot in new kernel

reboot

Instalar paquetes restantes

dpkg -i iptables-1.4.3.2-l7-imq_iptables-1.4.3.2-l7-imq-1_i386.deb
dpkg -i xtables-addons-1.17_xtables-addons-1.17-1_i386.deb

Instalar ultimos regex de protocolos

wget  http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2009-05-28.tar.gz
tar -xzvf l7-protocols-2009-05-28.tar.gz
cd l7-protocols-2009-05-28
make install

Test

iptables -A FORWARD -m ipp2p --edk -j DROP
iptables -A FORWARD -m layer7 --l7proto bittorrent -j DROP
iptables -L FORWARD -v
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)/
pkts bytes target    prot opt in  out  source    destination
0  0 DROP   all  --  any  any         anywhere   anywhere   ipp2p --edk
0  0 DROP   all  --  any  any         anywhere   anywhere   LAYER7 l7proto bittorrent

Guia compilacion

TODO

QoS Scripts

TODO

Links

TODO

Soporte, Consultas, Contacto

daniel.ortiz at lanpyme.cl