En esta oportunidad, vamos a instalar el Layer 7 para el control y filtro del p2p, y el IMQ para el manejo de subida y de bajada, además del ipp2p para que trabaje junto con el Layer7. Para poder agregar el módulo del Layer7 y del IMQ, deberemos de parchar el kernel (que en este caso es uno de la version 2.6.x (recomendamos el 2.6.28)), y luego de esto instalaremos el ipp2p, como ya se vio anteriormente , pero haciendo algunos cambios en su modo de instalación. PARTE 1: INSTALANDO LAYER7 E IMQ Nos ubicamos en el directorio “/usr/src”, y nos logeamos como root su descargamos el patch de imq para el iptables y para el kernel (2.6.28 en mi caso)
wget http://www.linuximq.net/patchs/iptables-1.4.1-imq.diff wget http://www.linuximq.net/patchs/linux-2.6.28.9-imq-test2.diff
Patch l7 para kernel 2.6.22-2.6.24 wget http://downloads.sourceforge.net/project/l7-filter/l7-filter%20kernel%20version/2.22/netfilter-layer7-v2.22.tar.gz?use_mirror=nchc
Descargamos el layer7 protocol
wget http://sourceforge.net/projects/l7-filter/files/Protocol%20definitions/2009-05-28/l7-protocols-2009-05-28.tar.gz/download
Instalamos algunas dependencias
2
apt-get
install
build-essential kernel-package libncurses5-dev fakeroo
3
apt-get
source
linux-
source
-2.6.28 <-- segun
su
kernel (
uname
-r)
4
ln
-s linux-2.6.31 linux
Parchamos el kernel con layer7 e imq
2
patch -p1 < ../netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch
3
patch -p1 < ../linux-2.6.28.9-imq-test2.
diff
Preparamos la configuracion config.
1
cp
/boot/config-2.6.28-14-generic ./.config
Nos aparecera una “ventana” en consola e marcaremos los paquetes de imq y layer7
1
Networking -> Networking options -> Network packet filtering framework (Netfilter) -> Core netfilter configuration
2
<M> "IMQ" target support
3
<M> "layer7" match support
Guardamos y compilamos:
2
make
-kpkg --initrd --append-to-version=-l7-imq kernel_image kernel_headers
Esperamos a que termine la compilación, será cerca de 1 hora. la anterior compilacion creo nuestros archivos .deb, ahora instalamos el nuevo kernel
Reiniciamos.
init 6
Probamos la instalacion de layer7:
Ahora compilamos las bibliotecas de layer7: Eliminamos iptables
apt-get remove –purge iptables
*Copiamos las bibliotecas de layer7 a las de iptables
1
cp
/usr/src/netfilter-layer7-v2.22/iptables-1.4.3forward-
for
-kernel-2.6.20forward/* /usr/src/iptables-1.4.1/extensions/
*Editamos el archivo “libxt_layer7.c” en la anterior carpeta “/usr/src/iptables-1.4.1/” cambiamos todas las llamadas de la funcion “xtables_error” por “exit_error”. *Ahora Parcheamos el iptables con imq
1
patch -p1 < ../iptables-1.4.1-imq.
diff
Dentro de la carpeta iptables hacemos:
1
./configure --with-ksource=/usr/src/linux sbindir=/sbin
Compilamos e instalamos
Con esto ya estaria instalado el layer7, ahora instalemos los protocolos del l7: entramos al directorio “/usr/src/l7-protocols-2009-05-28″ y compilamos: make install Con esto esta listo para usar layer7:
02
iptables -A FORWARD -mlayer7 --l7proto ares -j DROP
03
iptables -A FORWARD -mlayer7 --l7proto edonkey -j DROP
04
iptables -A FORWARD -mlayer7 --l7proto bittorrent -j DROP
05
iptables -A FORWARD -mlayer7 --l7proto fasttrack -j DROP
06
iptables -A FORWARD -mlayer7 --l7proto gnutella -j DROP
07
iptables -A FORWARD -mlayer7 --l7proto applejuice -j DROP
08
iptables -A FORWARD -mlayer7 --l7proto imesh -j DROP
09
iptables -A FORWARD -mlayer7 --l7proto napster -j DROP
10
iptables -A FORWARD -mlayer7 --l7proto soulseek -j DROP
11
iptables -A FORWARD -mlayer7 --l7proto goboogy -j DROP
12
iptables -A FORWARD -mlayer7 --l7proto napster -j DROP
13
iptables -A FORWARD -mlayer7 --l7proto audiogalaxy -j DROP
14
iptables -A FORWARD -mlayer7 --l7proto directconnect -j DROP
15
iptables -A FORWARD -mlayer7 --l7proto soribada -j DROP
probaremos tambien el IMQ:
2
iptables -t mangle -A PREROUTING -p tcp --dport 1234 -j IMQ
PARTE 2: INSTALANDO IPP2P EN ESTE NUEVO KERNEL *Descargar ipp2p wget http://www.ipp2p.org/downloads/ipp2p-0.8.2.tar.gz *Descargar parches para kernel 2.8.22 y 2.8.28 (el nuestro es 2.8.28-11-generic) wget http://aur.archlinux.org/packages/ipp2p/ipp2p/ipp2p-0.8.2-kernel-2.6.22.patch wget http://aur.archlinux.org/packages/ipp2p/ipp2p/ipp2p-0.8.2-kernel-2.6.28.patch *Descargar parches para iptables 1.4.0 y 1.4.1 wget http://aur.archlinux.org/packages/ipp2p/ipp2p/ipp2p-0.8.2-iptables-1.4.0.patch wget http://aur.archlinux.org/packages/ipp2p/ipp2p/ipp2p-0.8.2-iptables-1.4.1.patch *INSTALANDO IPP2P
*Editamos el archivo “libipt_ipp2p.c” *CAMBIAMOS DONDE DICE “xtables_error” POR “exit_error” *Y en editamos la estructura:
1
struct
xtables_match ipp2p=
6
.version = XTABLES_VERSION,
7
.size = XT_ALIGN(
sizeof
(
struct
ipt_p2p_info)),
8
.userspacesize = XT_ALIGN(
sizeof
(
struct
ipt_p2p_info)),
*Guardamos cambios *Editamos el archivo “Makefile” *Editamos la linea:
1
ld -shared -o libipt_ipp2p.so libipt_ipp2p.o
3
$(CC) -shared -o libipt_ipp2p.so libipt_ipp2p.o
*GUARDAMOS CAMBIOS
*Ahora dentro de la carpeta ipp2p, compilamos: make *Finalmente
* Probamos: :~# iptables -m ipp2p –help * Ejemplo de uso:
1
iptables -A FORWARD -m ipp2p --edk --
dc
--kazaa --gnu --bit --apple --winmx --soul --ares -j DROP
Navegación de entradas