Hi i need your help please. I try to install l7 filter in ubuntu 8.10 intrepid ibex with kernel 2.6.27-7-generic and iptables version 1.4.0. I read a manual that i find in jpcozar qos page and it tell i must follow this steps:


Layer7

L7-filter kernel

wget http://downloads.sourceforge.net/l7-...7-v2.20.tar.gz
L7-filter userpace

wget http://downloads.sourceforge.net/l7-...ce-0.10.tar.gz
L7 descarga de definiciones de protocolos

wget http://downloads.sourceforge.net/l7-...8-12-18.tar.gz
Iptables

Descarga de Iptables (versión 1.4.2)

wget http://www.netfilter.org/projects/ip...-1.4.2.tar.bz2
Kernel 2.6.27.7

Descarga del kernel

sudo apt-get install linux-source
Parcheo y recompilación del kernel

Instalar l7-filter y los fuentes del kernel

tar -xvf /usr/src/linux-source-2.6.27.tar.bz2ln -s /usr/src/linux-source-2.6.27 /usr/src/linuxtar -xvf netfilter-layer7-v2.20.tar.gz
Aplicar el parche a las fuentes del kernel

cd /usr/src/linuxpatch -p1 < ../netfilter-layer7-v2.20/kernel-2.6.25-layer7-2.20.patch
Aplicar el parche e instalar Iptables 1.4.2

tar -xvf iptables-1.4.2.tar.bz2cd iptables-1.4.2patch -p1 < ../netfilter-layer7-v2.20/iptables-1.4-for-kernel-2.6.20forward-layer7-2.20.patchchmod +x extensions/.layer7-testmake KERNEL_DIR=/usr/src/linuxmake install KERNEL_DIR=/usr/src/linux
******************************

Well ....when i try to compile iptables 1.4.2 with "make KERNEL_DIR=/usr/src/linux "
the pc show me this error:

root@marcelo-laptop:/usr/src/iptables-1.4.2# make KERNEL_DIR=/usr/src/linux
make all-recursive
make[1]: se ingresa al directorio `/usr/src/iptables-1.4.2'
Making all in extensions
make[2]: se ingresa al directorio `/usr/src/iptables-1.4.2/extensions'
GEN initext4.c
CC initext4.o
AR libext4.a
GEN initext6.c
CC initext6.o
AR libext6.a
GEN matches4.man
GEN matches6.man
GEN targets4.man
GEN targets6.man
CC libxt_CLASSIFY.oo
CCLD libxt_CLASSIFY.so
CC libxt_comment.oo
CCLD libxt_comment.so
CC libxt_connbytes.oo
CCLD libxt_connbytes.so
CC libxt_connlimit.oo
CCLD libxt_connlimit.so
CC libxt_connmark.oo
CCLD libxt_connmark.so
CC libxt_CONNMARK.oo
CCLD libxt_CONNMARK.so
CC libxt_CONNSECMARK.oo
CCLD libxt_CONNSECMARK.so
CC libxt_conntrack.oo
CCLD libxt_conntrack.so
CC libxt_dccp.oo
CCLD libxt_dccp.so
CC libxt_dscp.oo
CCLD libxt_dscp.so
CC libxt_DSCP.oo
CCLD libxt_DSCP.so
CC libxt_esp.oo
CCLD libxt_esp.so
CC libxt_hashlimit.oo
CCLD libxt_hashlimit.so
CC libxt_helper.oo
CCLD libxt_helper.so
CC libxt_iprange.oo
CCLD libxt_iprange.so
CC libxt_length.oo
CCLD libxt_length.so
CC libxt_limit.oo
CCLD libxt_limit.so
CC libxt_mac.oo
CCLD libxt_mac.so
CC libxt_mark.oo
CCLD libxt_mark.so
CC libxt_MARK.oo
CCLD libxt_MARK.so
CC libxt_multiport.oo
CCLD libxt_multiport.so
CC libxt_NFLOG.oo
CCLD libxt_NFLOG.so
CC libxt_NFQUEUE.oo
CCLD libxt_NFQUEUE.so
CC libxt_NOTRACK.oo
CCLD libxt_NOTRACK.so
CC libxt_owner.oo
libxt_owner.c: En la función ‘owner_mt_print_item_v0’:
libxt_owner.c:327: aviso: el formato no es una cadena literal y no tiene argumentos de formato
libxt_owner.c: En la función ‘owner_mt6_print_item_v0’:
libxt_owner.c:378: aviso: el formato no es una cadena literal y no tiene argumentos de formato
CCLD libxt_owner.so
CC libxt_physdev.oo
CCLD libxt_physdev.so
CC libxt_pkttype.oo
CCLD libxt_pkttype.so
CC libxt_quota.oo
CCLD libxt_quota.so
CC libxt_rateest.oo
CCLD libxt_rateest.so
CC libxt_RATEEST.oo
CCLD libxt_RATEEST.so
CC libxt_sctp.oo
CCLD libxt_sctp.so
CC libxt_SECMARK.oo
CCLD libxt_SECMARK.so
CC libxt_standard.oo
CCLD libxt_standard.so
CC libxt_state.oo
CCLD libxt_state.so
CC libxt_statistic.oo
CCLD libxt_statistic.so
CC libxt_string.oo
CCLD libxt_string.so
CC libxt_tcp.oo
CCLD libxt_tcp.so
CC libxt_tcpmss.oo
CCLD libxt_tcpmss.so
CC libxt_TCPMSS.oo
CCLD libxt_TCPMSS.so
CC libxt_TCPOPTSTRIP.oo
CCLD libxt_TCPOPTSTRIP.so
CC libxt_time.oo
CCLD libxt_time.so
CC libxt_tos.oo
CCLD libxt_tos.so
CC libxt_TOS.oo
CCLD libxt_TOS.so
CC libxt_TRACE.oo
CCLD libxt_TRACE.so
CC libxt_u32.oo
CCLD libxt_u32.so
CC libxt_udp.oo
CCLD libxt_udp.so
CC libipt_addrtype.oo
CCLD libipt_addrtype.so
CC libipt_ah.oo
CCLD libipt_ah.so
CC libipt_CLUSTERIP.oo
CCLD libipt_CLUSTERIP.so
CC libipt_DNAT.oo
CCLD libipt_DNAT.so
CC libipt_ecn.oo
CCLD libipt_ecn.so
CC libipt_ECN.oo
CCLD libipt_ECN.so
CC libipt_icmp.oo
CCLD libipt_icmp.so
CC libipt_layer7.oo
libipt_layer7.c:27:39: aviso: linux/netfilter/xt_layer7.h: No existe el fichero ó directorio
libipt_layer7.c: En la función ‘help’:
libipt_layer7.c:41: error: ‘IPTABLES_VERSION’ no se declaró aquà (primer uso en esta función)
libipt_layer7.c:41: error: (Cada identificador no declarado solamente se reporta una vez
libipt_layer7.c:41: error: para cada funcion en la que aparece.)
libipt_layer7.c: En el nivel principal:
libipt_layer7.c:52: aviso: se declaró ‘struct xt_layer7_info’ dentro de la lista de parámetros
libipt_layer7.c:52: aviso: su ámbito es solamente esta definición o declaración, lo cual probablemente no es lo que desea
libipt_layer7.c:52: aviso: no hay un prototipo previo para ‘parse_protocol_file’
libipt_layer7.c: En la función ‘parse_protocol_file’:
libipt_layer7.c:55: aviso: la declaración de ‘line’ oscurece a una declaración global
../include/iptables.h:16: aviso: aquà está la declaración oscurecida
libipt_layer7.c:96: error: ‘MAX_PROTOCOL_LEN’ no se declaró aquà (primer uso en esta función)
libipt_layer7.c:99: error: puntero deferenciado a tipo de dato incompleto
libipt_layer7.c:105: error: ‘MAX_PATTERN_LEN’ no se declaró aquà (primer uso en esta función)
libipt_layer7.c:107: error: puntero deferenciado a tipo de dato incompleto
libipt_layer7.c: En la función ‘pre_process’:
libipt_layer7.c:152: aviso: la declaración de ‘rindex’ oscurece a una declaración global
/usr/include/string.h:313: aviso: aquà está la declaración oscurecida
libipt_layer7.c: En el nivel principal:
libipt_layer7.c:205: aviso: no hay un prototipo previo para ‘readl7dir’
libipt_layer7.c:260: aviso: se declaró ‘struct xt_layer7_info’ dentro de la lista de parámetros
libipt_layer7.c: En la función ‘parse_layer7_protocol’:
libipt_layer7.c:287: aviso: se pasa el argumento 3 de ‘parse_protocol_file’ desde un tipo de puntero incompatible
libipt_layer7.c:305: error: puntero deferenciado a tipo de dato incompleto
libipt_layer7.c:305: error: puntero deferenciado a tipo de dato incompleto
libipt_layer7.c:305: error: ‘MAX_PATTERN_LEN’ no se declaró aquà (primer uso en esta función)
libipt_layer7.c: En la función ‘parse’:
libipt_layer7.c:318: aviso: se pasa el argumento 2 de ‘parse_layer7_protocol’ desde un tipo de puntero incompatible
libipt_layer7.c:320: error: puntero deferenciado a tipo de dato incompleto
libipt_layer7.c: En la función ‘print’:
libipt_layer7.c:365: error: puntero deferenciado a tipo de dato incompleto
libipt_layer7.c:366: error: puntero deferenciado a tipo de dato incompleto
libipt_layer7.c: En la función ‘save’:
libipt_layer7.c:374: error: puntero deferenciado a tipo de dato incompleto
libipt_layer7.c:374: error: puntero deferenciado a tipo de dato incompleto
libipt_layer7.c: En el nivel principal:
libipt_layer7.c:377: error: la variable ‘layer7’ tiene inicializador pero de tipo de dato incompleto
libipt_layer7.c:378: error: se especificó el campo desconocido ‘name’ en el inicializador
libipt_layer7.c:378: aviso: exceso de elementos en el inicializador de struct
libipt_layer7.c:378: aviso: (cerca de la inicialización de ‘layer7’)
libipt_layer7.c:379: error: se especificó el campo desconocido ‘version’ en el inicializador
libipt_layer7.c:379: error: ‘IPTABLES_VERSION’ no se declaró aquà (no en una función)
libipt_layer7.c:379: aviso: exceso de elementos en el inicializador de struct
libipt_layer7.c:379: aviso: (cerca de la inicialización de ‘layer7’)
libipt_layer7.c:380: error: se especificó el campo desconocido ‘size’ en el inicializador
libipt_layer7.c:380: error: aplicación inválida de ‘sizeof’ a un tipo de dato incompleto ‘struct xt_layer7_info’
libipt_layer7.c:380: aviso: exceso de elementos en el inicializador de struct
libipt_layer7.c:380: aviso: (cerca de la inicialización de ‘layer7’)
libipt_layer7.c:381: error: se especificó el campo desconocido ‘userspacesize’ en el inicializador
libipt_layer7.c:381: error: aplicación inválida de ‘sizeof’ a un tipo de dato incompleto ‘struct xt_layer7_info’
libipt_layer7.c:381: aviso: exceso de elementos en el inicializador de struct
libipt_layer7.c:381: aviso: (cerca de la inicialización de ‘layer7’)
libipt_layer7.c:382: error: se especificó el campo desconocido ‘help’ en el inicializador
libipt_layer7.c:382: aviso: exceso de elementos en el inicializador de struct
libipt_layer7.c:382: aviso: (cerca de la inicialización de ‘layer7’)
libipt_layer7.c:383: error: se especificó el campo desconocido ‘parse’ en el inicializador
libipt_layer7.c:383: aviso: exceso de elementos en el inicializador de struct
libipt_layer7.c:383: aviso: (cerca de la inicialización de ‘layer7’)
libipt_layer7.c:384: error: se especificó el campo desconocido ‘final_check’ en el inicializador
libipt_layer7.c:384: aviso: exceso de elementos en el inicializador de struct
libipt_layer7.c:384: aviso: (cerca de la inicialización de ‘layer7’)
libipt_layer7.c:385: error: se especificó el campo desconocido ‘print’ en el inicializador
libipt_layer7.c:385: aviso: exceso de elementos en el inicializador de struct
libipt_layer7.c:385: aviso: (cerca de la inicialización de ‘layer7’)
libipt_layer7.c:386: error: se especificó el campo desconocido ‘save’ en el inicializador
libipt_layer7.c:386: aviso: exceso de elementos en el inicializador de struct
libipt_layer7.c:386: aviso: (cerca de la inicialización de ‘layer7’)
libipt_layer7.c:387: error: se especificó el campo desconocido ‘extra_opts’ en el inicializador
libipt_layer7.c:388: aviso: exceso de elementos en el inicializador de struct
libipt_layer7.c:388: aviso: (cerca de la inicialización de ‘layer7’)
libipt_layer7.c: En la función ‘libipt_layer7_init’:
libipt_layer7.c:392: aviso: declaración implÃcita de la función ‘register_match’
make[2]: *** [libipt_layer7.oo] Error 1
make[2]: se sale del directorio `/usr/src/iptables-1.4.2/extensions'
make[1]: *** [all-recursive] Error 1
make[1]: se sale del directorio `/usr/src/iptables-1.4.2'
make: *** [all] Error 2
root@marcelo-laptop:/usr/src/iptables-1.4.2#

I´m wait for help. Thanks.