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
Buenazo, haber si nos das una
Buenazo, haber si nos das una mano para centos 5.3, yo te ayudo! jeje
Debería ser lo mismo pero con
Debería ser lo mismo pero con las herramientas de CentOS:
- Descargar el kernel
- Parchar el kernel
- Compilar el kernel
- Instalar el kernel
- Compilar iptables
- Parchar iptables
- Compilar xtables
-----
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({});
Estuve intentando hacer esto
Estuve intentando hacer esto en un centos 5.3 y no logré compilar iptables :(
-----
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({});
estamos iguales lo hice bien
estamos iguales lo hice bien en un centos 5.1 pero en el 5.3 no logro hacerlo.... snip.. a seguir intentando!
super fácil con centos,
super fácil con centos, simplemente instalas el repo de centalt (centos.alt.ru) e instalas los rpm que requieras. Incluso usan l7 via userland para no recompilar el kernel, super interesante.
Voy a tratar de poner un simple howto que se centrará más en el uso de estos paquetes que no en la compilación... deja ver si hago un tiempo.
Saludos

epe
EcuaLinux.com
+(593) 9 9924 6504
Servicios en Software Libre
Chevere... lástima que no me
Chevere... lástima que no me guste centos :( :P
-----
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({});
Estuve intentando hacer esto
Estuve intentando hacer esto en un centos 5.3 y no logré compilar iptables Sad
Lo importante es que lo intentas.
verás que cuando postee el howto y hagas el yum install y en 3 minutos tengas lo mismo, te gustará mucho más este Linux, verás que sí.
Pero te entiendo, como siempre digo: lo importante no es perder tiempo recompilando de fuentes, sino buscar y encontrar alguien que ya lo hizo y que te permita fácil redistribución. Te imaginas realizando todo este proceso en 1000 máquinas? no sería gracioso (tiene una forma que es tener una lista de todo lo instalado).
A mi no me gusta debian, pero ten la certeza que cuando me hizo falta aprendí en 1 hora a recompilar paquetes .deb y creé mi propio paquete. La idea no es estar como las niñas de 11 años "ay no me gusta" sino simplemente aprender a crear bien las cosas, crece, aprende que no soy eterno ñaño!
Saludos

epe
EcuaLinux.com
+(593) 9 9924 6504
Servicios en Software Libre
disculpa por preguntar pero
disculpa por preguntar pero ya posteaste?? howto no lo encuentro me dices donde esta pofavor
gracias
"El que se enorgullece de sus conocimientos es como si estuviera ciego en plena luz."
Buen post maestro, esa es,
Buen post maestro, esa es, gracias por el aporte, lo del htb, eso queda de tarea para el que tenga tiempo de ir probando yo ando full, pero si tengo time le metere mano.
Saludos.
Gran artículo.
Buenas,
Muy buen artículo, pero me he encontrado un par de errores, cuando compilo el paso kernel:
[code]make-kpkg --append-to-version=-l7 --initrd kernel-image kernel-headers kernel-source
[/code]
Me faltaba la instalción de [code]zlib1g-dev[/code], [code]apt-get install zlib1g-dev[/code] y solucionado.
También me he encontrado otro problema a la hora compilar xtables-addons me da un error.
[code]nodo03:/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[3]: se ingresa al directorio `/usr/src/linux-2.6.30.1'
Building modules, stage 2.
MODPOST 33 modules
make[3]: se sale del directorio `/usr/src/linux-2.6.30.1'
make[3]: se ingresa al directorio `/usr/src/xtables-addons-1.17/extensions/ipset'
make[3]: No se hace nada para `all'.
make[3]: se sale del directorio `/usr/src/xtables-addons-1.17/extensions/ipset'
CC libxt_CHAOS.oo
libxt_CHAOS.c:16:21: warning: xtables.h: No existe el fichero o el directorio
libxt_CHAOS.c: In function ‘chaos_tg_check’:
libxt_CHAOS.c:61: warning: implicit declaration of function ‘xtables_error’
libxt_CHAOS.c:61: error: ‘PARAMETER_PROBLEM’ undeclared (first use in this function)
libxt_CHAOS.c:61: error: (Each undeclared identifier is reported only once
libxt_CHAOS.c:61: error: for each function it appears in.)
libxt_CHAOS.c: At top level:
libxt_CHAOS.c:95: error: variable ‘chaos_tg_reg’ has initializer but incomplete type
libxt_CHAOS.c:96: error: unknown field ‘version’ specified in initializer
libxt_CHAOS.c:96: error: ‘XTABLES_VERSION’ undeclared here (not in a function)
libxt_CHAOS.c:96: warning: excess elements in struct initializer
libxt_CHAOS.c:96: warning: (near initialization for ‘chaos_tg_reg’)
libxt_CHAOS.c:97: error: unknown field ‘name’ specified in initializer
libxt_CHAOS.c:97: warning: excess elements in struct initializer
libxt_CHAOS.c:97: warning: (near initialization for ‘chaos_tg_reg’)
libxt_CHAOS.c:98: error: unknown field ‘family’ specified in initializer
libxt_CHAOS.c:98: error: ‘AF_INET’ undeclared here (not in a function)
libxt_CHAOS.c:98: warning: excess elements in struct initializer
libxt_CHAOS.c:98: warning: (near initialization for ‘chaos_tg_reg’)
libxt_CHAOS.c:99: error: unknown field ‘size’ specified in initializer
libxt_CHAOS.c:99: warning: excess elements in struct initializer
libxt_CHAOS.c:99: warning: (near initialization for ‘chaos_tg_reg’)
libxt_CHAOS.c:100: error: unknown field ‘userspacesize’ specified in initializer
libxt_CHAOS.c:100: warning: excess elements in struct initializer
libxt_CHAOS.c:100: warning: (near initialization for ‘chaos_tg_reg’)
libxt_CHAOS.c:101: error: unknown field ‘help’ specified in initializer
libxt_CHAOS.c:101: warning: excess elements in struct initializer
libxt_CHAOS.c:101: warning: (near initialization for ‘chaos_tg_reg’)
libxt_CHAOS.c:102: error: unknown field ‘parse’ specified in initializer
libxt_CHAOS.c:102: warning: excess elements in struct initializer
libxt_CHAOS.c:102: warning: (near initialization for ‘chaos_tg_reg’)
libxt_CHAOS.c:103: error: unknown field ‘final_check’ specified in initializer
libxt_CHAOS.c:103: warning: excess elements in struct initializer
libxt_CHAOS.c:103: warning: (near initialization for ‘chaos_tg_reg’)
libxt_CHAOS.c:104: error: unknown field ‘print’ specified in initializer
libxt_CHAOS.c:104: warning: excess elements in struct initializer
libxt_CHAOS.c:104: warning: (near initialization for ‘chaos_tg_reg’)
libxt_CHAOS.c:105: error: unknown field ‘save’ specified in initializer
libxt_CHAOS.c:105: warning: excess elements in struct initializer
libxt_CHAOS.c:105: warning: (near initialization for ‘chaos_tg_reg’)
libxt_CHAOS.c:106: error: unknown field ‘extra_opts’ specified in initializer
libxt_CHAOS.c:106: warning: excess elements in struct initializer
libxt_CHAOS.c:106: warning: (near initialization for ‘chaos_tg_reg’)
libxt_CHAOS.c: In function ‘chaos_tg_ldr’:
libxt_CHAOS.c:111: warning: implicit declaration of function ‘xtables_register_target’
make[2]: *** [libxt_CHAOS.oo] Error 1
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
[/code]
Alguna idea de que puede ser.
Gracias y a triunfar ; )
Paloke
Páginas