Debian + kernel 2.6.30.1 + l7-filter + ipp2p

Imagen de RazaMetaL

Tema: 

El siguiente manual describe como parchar y habilitar en Debian Lenny:

- Kernel 2.6.30.1
- l7-filter
- iptables 1.4.4
- xtables-addons
- xtables ipp2p

Instalamos dependencias:

aptitude install module-assistant


m-a prepare


aptitude install kernel-package quilt autoconf automake libtool libncurses5-dev pkg-config checkinstall build-essential zlib1g-dev iptables-dev

Removemos los fuentes del kernel que vienen en lenny:

aptitude purge linux-headers-2.6.26-1-686 linux-headers-2.6.26-1-common iptables-dev

Descargamos xtables, l7-filter, nuevo kernel e iptables:

cd /usr/src
wget http://ufpr.dl.sourceforge.net/sourceforge/xtables-addons/xtables-addons-1.17.tar.bz2
wget http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.21.tar.gz
wget http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2009-05-28.tar.gz
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.1.tar.bz2
wget http://iptables.org/projects/iptables/files/iptables-1.4.4.tar.bz2

Descomprimimos los paquetes:

tar -jvxf xtables-addons-1.17.tar.bz2
tar -zvxf netfilter-layer7-v2.21.tar.gz
tar -zvxf l7-protocols-2009-05-28.tar.gz
tar -jvxf linux-2.6.30.1.tar.bz2
tar -jvxf iptables-1.4.4.tar.bz2

Creamos links simbólicos:

ln -s xtables-addons-1.17 xtables-addons
ln -s linux-2.6.30.1 linux
ln -s iptables-1.4.4 iptables

Parchamos el kernel:

cd /usr/src/linux
patch -p1 < ../netfilter-layer7-v2.21/kernel-2.6.25-2.6.28-layer7-2.21.patch

Seleccionamos las opciones para habilitar l7 y grabamos la nueva configuración para luego compilar el kernel:

make menuconfig
-*- Networking support --->
Networking options --->
[*] Network packet filtering framework (Netfilter) --->
Core Netfilter Configuration --->
Netfilter connection tracking support
"layer7" match support
< exit >
< exit >
< exit >
< exit >
< exit >
< Yes >

Compilamos nuestro nuevo kernel:

make-kpkg --append-to-version=-l7 --initrd kernel-image

Si necesitan los paquetes linux-headers y linux-source para esta nueva versión de kernel y si quieren compilar algún nuevo driver la línea quedaría de esta manera:

make-kpkg --append-to-version=-l7 --initrd kernel-image kernel-headers kernel-source

Reiniciamos con el nuevo kernel.

init 6

Parchamos iptables:

cd /usr/src/iptables/extensions
cp ../../netfilter-layer7-v2.21/iptables-1.4.1.1-for-kernel-2.6.20forward/libxt_layer7.* .
sed -i 's/exit_error(/xtables_error(/' libxt_layer7.c

Compilamos iptables:

cd /usr/src/iptables
./configure --with-ksource=/usr/src/linux --prefix=/usr --with-xtlibdir=/lib/xtables --libdir=/lib --enable-libipq --enable-devel
make
checkinstall

Instalamos los regex de protocolos soportados por l7-filter:

cd /usr/src/l7-protocols-2009-05-28
make install

Compilamos xtables-addons:

cd /usr/src/xtables-addons
./configure --with-xtables=/lib --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --libexecdir=/lib --with-ksource=/usr/src/linux --includedir=/usr/include/
make
checkinstall

Podemos probar la instalación ejecutando:

iptables -m ipp2p --help
iptables -m layer7 --help

Para bloquear con ipp2p podemos agregar estas líneas a nuestro firewall:

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

Si queremos bloquear ares con l7-filter agregamos:

iptables -A FORWARD -p tcp -m layer7 --l7proto ares -j DROP

Estos nuevos módulos nos pueden servir además para marcar los paquetes de determinado protocolo y luego manejar el ancho de banda o prioridades con htb.init.

Podemos obtener una completa lista de protocolos que l7-filter soporte en:
[url]http://l7-filter.sourceforge.net/protocols[/url]

Estas son las líneas que tengo aplicadas para que l7-filter bloquée el trafico p2p:

iptables -A INPUT -m layer7 --l7proto edonkey -j ACCEPT
iptables -A OUTPUT -m layer7 --l7proto edonkey -j ACCEPT
iptables -A FORWARD -m layer7 --l7proto edonkey -j DROP

iptables -A INPUT -m layer7 --l7proto ares -j ACCEPT
iptables -A OUTPUT -m layer7 --l7proto ares -j ACCEPT
iptables -A FORWARD -m layer7 --l7proto ares -j DROP

iptables -A INPUT -m layer7 --l7proto bittorrent -j ACCEPT
iptables -A OUTPUT -m layer7 --l7proto bittorrent -j ACCEPT
iptables -A FORWARD -m layer7 --l7proto bittorrent -j DROP

iptables -A INPUT -m layer7 --l7proto gnutella -j ACCEPT
iptables -A OUTPUT -m layer7 --l7proto gnutella -j ACCEPT
iptables -A FORWARD -m layer7 --l7proto gnutella -j DROP

iptables -A INPUT -m layer7 --l7proto applejuice -j ACCEPT
iptables -A OUTPUT -m layer7 --l7proto applejuice -j ACCEPT
iptables -A FORWARD -m layer7 --l7proto applejuice -j DROP

iptables -A INPUT -m layer7 --l7proto directconnect -j ACCEPT
iptables -A OUTPUT -m layer7 --l7proto directconnect -j ACCEPT
iptables -A FORWARD -m layer7 --l7proto directconnect -j DROP

iptables -A INPUT -m layer7 --l7proto imesh -j ACCEPT
iptables -A OUTPUT -m layer7 --l7proto imesh -j ACCEPT
iptables -A FORWARD -m layer7 --l7proto imesh -j DROP

iptables -A INPUT -m layer7 --l7proto soulseek -j ACCEPT
iptables -A OUTPUT -m layer7 --l7proto soulseek -j ACCEPT
iptables -A FORWARD -m layer7 --l7proto soulseek -j DROP

Noten que en el INPUT y OUTPUT estan en ACCEPT, deben hacerlo así para que l7filter pueda bloquear :evil:

También se puede limitar el ancho de banda para cada protocolo, se debe marcar cada paquete y luego con tc se limita el ancho de banda:

iptables -t mangle -A FORWARD -m layer7 --l7proto edonkey -j MARK --set-mark 123

Comentarios

Gracias por la observación,

Imagen de RazaMetaL

Gracias por la observación, he corregido el artículo agregando esa dependencia y además iptables-dev.

Instala iptables-dev y el error que tienes desaparecerá.

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

Buenas, Gracias por la

Imagen de paloke

Buenas,

Gracias por la respuesta, al instalar [code]iptables-dev[/code] desaparece el error, pero ahora tengo otro al ejecutar [code]checkinstall[/code].
[code]
Copying documentation directory...
./
./INSTALL
./COPYING
grep: /var/tmp/tmp.QeGSTnBOhR/newfile: No existe el fichero o el directorio
Copiando los archivos al directorio temporal...OK
Stripping ELF binaries and libraries...OK
Comprimiendo las páginas de manual...OK
Creando la lista de archivos...OK
Creando el paquete Debian...OK
Instalando el paquete Debian... FAILED!
*** La instalación del paquete falló
[/code]
Y en la parte de log pone:
[code]
dpkg - atención: desactualizando iptables de 1.4.2-6 a 0-1.
dpkg: acerca de .../iptables/iptables_0-1_i386.deb que contiene iptables:
iptables-dev entra en conflicto con iptables (<< 1.4.2-2)
iptables (versión 0-1) va a ser instalado.
dpkg: error al procesar /usr/src/iptables/iptables_0-1_i386.deb (--install):
paquetes en conflicto - no se instalará iptables
Se encontraron errores al procesar:
/usr/src/iptables/iptables_0-1_i386.deb
/var/tmp/tmp.QeGSTnBOhR/dpkginstall.log (END)
[/code]
Si le indico a [code]checkinstall[/code] que la versión es 1.4.2 rev 6 entonces el error es:
[code]
(Leyendo la base de datos ...
40889 ficheros y directorios instalados actualmente.)
Preparando para reemplazar iptables 1.4.2-6 (usando .../iptables_1.4.2-6_i386.deb) ...
Desempaquetando el reemplazo de iptables ...
dpkg: error al procesar /usr/src/iptables/iptables_1.4.2-6_i386.deb (--install):
intentando sobreescribir `/usr/include/xtables.h', que está también en el paquete iptables-dev
dpkg-deb: el subproceso paste fue terminado por la señal (Tubería rota)
Se encontraron errores al procesar:
/usr/src/iptables/iptables_1.4.2-6_i386.deb
/var/tmp/tmp.NhajGcrsUd/dpkginstall.log (END)

[/code]

A triunfar ; )

Paloke

Fallo al compilar Xtables-addons

Imagen de paloke

Buenas,

Después de probar con una instalación limpia de debian (debian-503-i386-CD-1.iso) sólo el sistema base he podido compilar IPTABLES, pero ahora me da un error al compilar XTABLES-ADDONS
[code]========================== Instalación exitosa ===========================

Copying documentation directory...
./
./README
./INSTALL
./LICENSE
./doc/
./doc/changelog.txt
grep: /var/tmp/tmp.CzKRofksdk/newfile: No existe el fichero o el directorio
Copiando los archivos al directorio temporal...OK
Stripping ELF binaries and libraries...OK
Comprimiendo las páginas de manual...OK
Creando la lista de archivos...OK
Kernel modules found. Calling depmod in the postinstall script
Creando el paquete Debian... FAILED!
*** La creación del paquete falló
¿Quieres ver el archivo de bitácora? [y]: y
Borrando directorios temporales...OK
Escribiendo el paquete de respaldoOK
Borrando el directorio temporal...OK
nodo03:/usr/src/xtables-addons#
[/code]

¿Alguna idea a que es debido?

Gracias y a triunfar ; )

Solucionado

Imagen de paloke

Me respondo a mi mismo.

Cuando salen la opciones:
[code]
*****************************************
**** Debian package creation selected ***
*****************************************

Este paquete será creado de acuerdo a estos valores:

0 - Maintainer: [ root@nodo03 ]
1 - Summary: [ Package created with checkinstall 1.6.1 ]
2 - Name: [ xtables ]
3 - Version: [ addons ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ i386 ]
8 - Source location: [ xtables-addons ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ xtables ]
[/code]

Editamos y cambiamos la opción 3.
[code]
Introduce un número para cambiar algún dato u oprime ENTER para continuar:3
Introduce la nueva versión:
>> addons-1
[/code]

Quedando de esta manera:
[code]
3 - Version: [ addons-1 ]
[/code]

A triunfar ; )

Paloke

Error al compilar el kernel

Imagen de jaramillo.corp

Saludos Razametal, muy buen manual y se te agradece mucho, pero tengo un pequeño problema al compilar el kernel, el error que me sale es el siguiente


test -d ./debian/stamps || mkdir debian/stamps
exec debian/rules APPEND_TO_VERSION=-l7 INITRD=YES kernel-image
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 3: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
[: 1: 2: unexpected operator
====== making target CONFIG-common [new prereqs: testdir]======

====== making target debian/stamp-conf [new prereqs: ]======
The changelog says we are creating 2.6.30.1-l7.
However, I thought the version is ..-l7
exit 3
make: *** [debian/stamp-conf] Error 3

He revisado todo y he ido viendo paso por paso pero no comprendo porque tengo ese error
Talvez me podrias hacer el favor de ayudarme y ver en que estoy fallando ??
Esto lo estoy haciendo con un sistema Ubuntu server 8.04 kernel 2.6.24-26-server

Al parecer se trata de un bug

Imagen de RazaMetaL

Al parecer se trata de un bug con make-kpkg:

[url]https://bugs.launchpad.net/ubuntu/+source/kernel-package/+bug/281699[/url]
[url]http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=446879[/url]

Debes agregar los modificadores, reemplazando amd64 por tu arquitectura:
[code]
--arch=amd64 --subarch=x86_64
[/code]

Revisa el reporte del bug, ahí dan luces de como solucionar definitivamente el problema.

-----

Visita este [url=http://www.sindominio.net/ayuda/preguntas-inteligentes.html]link[/url] :evil:

[img]http://www.bbspot.com/Images/News_Features/2003/01/os_quiz/debian.jpg[/img]

(adsbygoogle = window.adsbygoogle || []).push({});

Gracias RazaMetal por tu

Imagen de jaramillo.corp

Gracias RazaMetal por tu respuesta, y revisando lo que me dijiste ya puede compilar el kernel poniendo al final de la linea --arch=x86_64, y todo me funciono muy bien, pero ahora tengo problemas con la compilacion de iptables, el error que me bota es el siguiente:

Making install in include
make[1]: Entering directory `/usr/src/iptables-1.4.4/include'
make[2]: Entering directory `/usr/src/iptables-1.4.4/include'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/include" || mkdir -p -- "/usr/include"
/usr/bin/install -c -m 644 'libipq/libipq.h' '/usr/include/libipq.h'
test -z "/usr/include" || mkdir -p -- "/usr/include"
/usr/src/iptables/install-sh -c -m 644 'xtables.h' '/usr/include/xtables.h'
chmod: changing permissions of `/usr/include/_inst.20834_': No such file or directory
/usr/src/iptables/install-sh -c -m 644 'libiptc/ipt_kernel_headers.h' '/usr/include/libiptc/ipt_kernel_headers.h'
chmod: changing permissions of `/usr/include/libiptc/_inst.20843_': No such file or directory
/usr/src/iptables/install-sh -c -m 644 'libiptc/libiptc.h' '/usr/include/libiptc/libiptc.h'
chmod: changing permissions of `/usr/include/libiptc/_inst.20852_': No such file or directory
/usr/src/iptables/install-sh -c -m 644 'libiptc/libip6tc.h' '/usr/include/libiptc/libip6tc.h'
chmod: changing permissions of `/usr/include/libiptc/_inst.20861_': No such file or directory
/usr/src/iptables/install-sh -c -m 644 'libiptc/libxtc.h' '/usr/include/libiptc/libxtc.h'
chmod: changing permissions of `/usr/include/libiptc/_inst.20870_': No such file or directory

make[2]: *** [install-nobase_includeHEADERS] Error 1
make[2]: Leaving directory `/usr/src/iptables-1.4.4/include'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/usr/src/iptables-1.4.4/include'
make: *** [install-recursive] Error 1

**** La instalación falló. Abortando la creación del paquete.
Limpiando...OK
Adiós.

He buscado a ver si hay algo de informacion en la web pero solo hablan de otros programas con el mismo error y no encuentro como solucionarlo, revise iptables-dev y si esta instalado, talvez alguna sugerencia de parte de ustedes ?? y gracias por la ayuda

Compilacion falla en Lenny

;) Gracias por tu aporte, muy bueno!!!!!!!! ;)

Estoy en un Lenny con el kernel 2.6.26-2-686 con todo actualizado y bien...

Se instaló todo aparentemente bien pero tengo un problema que no sera grave pero se me queda ahí colgado el make-kpkg... Todo bien con todos los pasos anteriores, hasta que hago el "make-kpkg --append-to-version=-l7 --initrd kernel-image kernel-headers kernel-source"

Entonces hace esto que sigue... Te pego el snapshot:
---------------------------
Linux:/usr/src/linux# make-kpkg --append-to-version=-l7 --initrd kernel-image kernel-headers kernel-source
exec debian/rules DEBIAN_REVISION=2.6.30.1-l7-10.00.Custom APPEND_TO_VERSION=-l7 INITRD=YES kernel-image kernel-headers kernel-source
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `if test -e .config ; then echo .config; elif test -e ./debian/Config/config.686 ; then echo ./debian/Config/config.686; elif test -e ./debian/Config/config ; then echo ./debian/Config/config ; elif test -e ./debian/config ; then echo ./debian/config ; elif test -e /boot/config-2.6.30.1-l7[*]Networkpacketfilteringframework(Netfilter)---> ; then echo /boot/config-2.6.30.1-l7[*]Networkpacketfilteringframework(Netfilter)---> ; elif test -e /boot/config-$(uname -r) ; then echo /boot/config-$(uname -r) ; else echo /dev/null ; fi'
-----------------------------
Que sera el error de sintaxis? Me tiras una soga?
Abrazos

Estoy compilando...

No sé cuál fue el error que motivo lo que describi arriba, pero luego de volver a repetir el proceso hasta el make-kpkg y de utilizar el parche netfilter v.2.22 en lugar del que mencionas (v.2.21), todo parece estar OK... Estoy a la espera de que mi server (Compaq Proliant 3000) termine de procesar este rollo para comprobar que el resto del cambio de kernel se completa bien, incluido iptables y demas...
Queria dejar este aviso antes que te molestaras en responder algo que ha sido arreglado.
Cuando todo termine informare de los resultados.
Saludos!!!!
Y gracias por tu aporte tan valioso!!!!!!!!!!

ERROR AL COMPILAR XTABLES

Todo iba bien con la compilacion de todo, kernel iptables y demas hasta que
ProxyHyHv2:/usr/src/xtables-addons# make
make all-recursive
make[1]: se ingresa al directorio `/usr/src/xtables-addons-1.17'
Making all in extensions
make[2]: se ingresa al directorio `/usr/src/xtables-addons-1.17/extensions'
GEN modules
make: se ingresa a un directorio desconocido
make: *** /lib/modules/2.6.18-6-486/build: No existe el fichero o el directorio. Alto.
make: se sale del directorio desconocido
make[2]: *** [modules] Error 2
make[2]: se sale del directorio `/usr/src/xtables-addons-1.17/extensions'
make[1]: *** [all-recursive] Error 1
make[1]: se sale del directorio `/usr/src/xtables-addons-1.17'
make: *** [all] Error 2

y demas esta decir que a partir de ahi no me toma l7 ni ipp2p por favor ayudenmee

Páginas