Instalação do Layer7 no Debian Etch

O Layer7 é um excelente plugin para o kernel e iptables, onde é possível realizar o bloqueio de programas direto na camada de aplicação sem a necessidade de bloqueio por portas, o que muitas vezes é inviável.

[ Hits: 47.438 ]

Por: Marcelo Vitor em 17/05/2007


Introdução



O Layer7 é um excelente plugin para o kernel e iptables, onde é possível realizar o bloqueio de programas direto na camada de aplicação sem a necessidade de bloqueio por portas, o que muitas vezes é inviável.

Imagine realizar o bloqueio do Emule, Kazza, Bittorrent com todas as portas que eles utilizam, sendo que as portas são dinâmicas. Você certamente ficaria doido, pois a cada momento seria um porta diferente. Com o Layer7 é possível bloquear sem ter que fazer alteração alguma na estação, somente no servidor. O Layer7 também bloqueia P2P, MSN e muitos outros programas. Vamos começar!

Todos os fontes baixados deverão estar localizados no diretório /usr/src/. Os fontes baixados serão: kernel, iptables, netfilter-layer7 e seus protocolos.

Nota: As linhas que começam com # são comandos a serem utilizados.

Começando:

Baixando os fontes:

# cd /usr/src
# wget
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.tar.gz
# wget http://www.netfilter.org/projects/iptables/\\
files/iptables-1.3.7.tar.bz2

# wget http://ufpr.dl.sourceforge.net/sourceforge/\\
l7-filter/netfilter-layer7-v2.9.tar.gz

# wget http://ufpr.dl.sourceforge.net/sourceforge/\\
l7-filter/l7-protocols-2007-01-14.tar.gz


Preparando para compilar o kernel e descompactando fontes:

# aptitude install bzip2 gzip unzip
# aptitude install libncurses5-dev
# aptitude install kernel-package

# tar xvzf linux-2.6.19.tar.gz
# tar xvjf iptables-1.3.7.tar.bz2
# tar xvzf netfilter-layer7-v2.9.tar.gz
# tar xvzf l7-protocols-2007-01-14.tar.gz


Crie um link para o diretório do kernel:

# ln -s /usr/src/linux-2.6.19 /usr/src/linux

Copie as configurações de boot:

# cp /boot/config-2.6.18-2-386 /usr/src/linux/.config

Aplicando o patch do layer7 no kernel:

# cd /usr/src/linux

# patch -p1 < /usr/src/netfilter-layer7-v2.9/kernel-2.6.18-2.6.19-layer7-2.9.patch

Agora o kernel está pronto para ser configurado, compilado e instalado.

Estando ainda no diretório /usr/src/linux, digite:

# make menuconfig

A tela de configuração do kernel será mostrada. Você deverá seguir os passos:

Networking ---> Networking options ---> [*] Network packet filtering (replaces ipchains) ---> Core Netfilter Configuration ---> Netfilter Xtables support (required for ip_tables)

Ative com M a opção Netfilter Xtables support.

Com o módulo ativado, selecione Exit e pressione <ENTER>.

Siga para:

Networking ---> Networking options ---> [*] Network packet filtering (replaces ipchains) ---> IP: Netfilter Configuration ---> IP tables support (required for filtering/masq/NAT) --->

e ative:

<M> Layer 7 match support (EXPERIMENTAL)
[*] Layer 7 debugging output

Após ativar conforme acima, siga selecionando Exit e <ENTER> até que seja perguntado se você deseja salvar a nova configuração do kernel, selecione YES e <ENTER> para salvar.

Pronto! O kernel está configurado para o Layer7, basta agora compilar e instalar.

Para compilar. digite o comando:

# make-kpkg -initrd kernel_image

Agora tenha paciência e saia para tomar um café, porque dependendo do seu servidor esse processo pode demorar bastante.

Após terminar a compilação volte ao diretório /usr/src:

# cd /usr/src

Foi criado nesse diretório um arquivo chamado linux-image-2.6.19.7_2.6.19.7-10.00.Custom_i386.deb.

Esse arquivo é o kernel do qual teremos que instalar. Utilize o comando:

# dpkg -i linux-image-2.6.19.7_2.6.19.7-10.00.Custom_i386.deb

O novo kernel está pronto. Agora faltam aplicar o patch ao iptables e instalar o iptables. Por enquanto, ainda não reinicie nada.

Aplicando o patch ao iptables e realizando a instalação. Siga os comandos:

# cd /usr/src/iptables-1.3.7
# patch -p1 < /usr/src/netfilter-layer7-v2.9/iptables-layer7-2.9.patch
# chmod +x extensions/.layer7-test
# make KERNEL_DIR=/usr/src/linux
# make install KERNEL_DIR=/usr/src/linux


A aplicação e instalação do patch no iptables está finalizada. Agora iremos instalar os protocolos.

# cd /usr/src/l7-protocols-2007-01-14
# make install


Tudo pronto!!!!! Agora você já pode reiniciar e na inicialização selecionar o novo kernel.

Ao iniciar tudo, para fazermos um teste, teremos que habilitar o módulo do iptables e aplicar uma regra.

# modprobe ipt_layer7
# iptables -A FORWARD -m layer7 --l7proto bittorrent -j DROP


Pronto! O Bittorrent está bloqueado!!!!

Caso você queira bloquear o MSN o comando seria:

# iptables -A FORWARD -m layer7 --l7proto msnmessenger -j DROP

Na página do Layer7 tem todos os protocolos suportados.
Devido a grande necessidade que tive de instalar o Layer7, pois alguns programas são impossíveis de realizar o bloqueio por portas, escrevi esse artigo com o intuito de ajudar a todos que passam por essa dificuldade.

O artigo foi baseado em parte em outro artigo, o do Hugo Alvarez, no endereço:
Valeu a todos!

   

Páginas do artigo
   1. Introdução
Outros artigos deste autor

Squid autenticando em Win2000/2003 com Debian Etch

Leitura recomendada

Balanceamento de carga entre 2 placas de rede

Migrando do ipchains para o iptables

Port Forward mais completo: caçando o fantasma da rede interna

Firewall invisível com Proxy ARP

Estrutura do IPTables 2: a tabela nat

  
Comentários
[1] Comentário enviado por y2h4ck em 17/05/2007 - 13:18h

O Layer7 é uma solução muito boa para trabalhar com alguns bloqueios na camada 7 porêm ele é um tanto limitado quanto a forma com que ele trabalha.

Não da pra fazer deploy em cima de qualquer protocolo afim de criar uma base de web inteligence para realizar filtragens mais específicas.


[2] Comentário enviado por hugoalvarez em 17/05/2007 - 16:27h

Oi,

É isso aí, não testei mas esse tenho certeza que funciona!!!

Até mais.

[3] Comentário enviado por deivd em 18/05/2007 - 01:14h

Parabéns kra ótimo artigo de muita valia pra todos nós...

Estava muito precisando dessa solução, já efetuei a instalação e configuração seguindo seu artigo e realmente funcionou perfeitamente.

Obrigado pelo artigo.

[4] Comentário enviado por predator em 18/05/2007 - 07:52h

Ótimo artigo cara...

Já tinha tentado varias vezes instalar o layer7 e sempre alguma coisa saia errado,com o seu artigo deu certo.

valeu mesmo cara

[]'s

[5] Comentário enviado por macvitor em 18/05/2007 - 10:14h

beleza, galera. eu também bati muito a cabeça tentando instalar o layer 7 e resolvi documentar pra poder ajudar a quem precisa. depois da primeira, as outras vezes ficam faceis...hehehehehe

[]'s
Marcelo Vitor

[6] Comentário enviado por predator em 18/05/2007 - 15:07h

Caro Marcelo é o seguinte...

Escrevi as regras layer7 no meu script de firewall, e o coloquei pra iniciar no bootmisc.sh e quando reinicio a maquina da esse erro:

"iptables v1.3.6: couldn't load mach 'layer7':/lib/iptables/libipt_layer7.so:
cannot open shared object file: no such file or directory"

depois do linux já carregado checo as regras com o comando iptables -L
e as regras não são ativadas,mas se eu reiniciar o firewall manualmente as regras são ativadas normalmente;

Resumindo toda vez que o computador é reiniciado ele da o erro,dai eu faço login no terminal e reinicio o firewall que da certo...

Como posso resolver esse problema??

[]'s

[7] Comentário enviado por leopvh em 18/05/2007 - 18:52h

Cara, muito legal seu artigo, mas deixa eu te perguntar uma coisa: Eu posso usar o APT-GET para instralar os programas? E outra coisa, o Layer 7 é capaz de parar o Your Freedom? Desde já agradeço.

[8] Comentário enviado por macvitor em 22/05/2007 - 15:08h

predator,

eu fiz a mesma coisa que vc e funcionou normal. vc colocou o modproble ipt_layer7 no script? Um item diferente que me chamou a atenção é a versão do seu iptables "iptables v1.3.6" e eu usei o iptables v1.3.7.

leopvh,
não sei se o apt-get faz a instalação, nunca tentei, mas acredito que não. e sobre o Your Freedom, dá uma olhada em http://l7-filter.sourceforge.net/protocols. Lá tem todos os protocolos suportados.

até mais!

[9] Comentário enviado por predator em 23/05/2007 - 16:17h

macvitor...

A minha instalação do debian ja tinha por default o iptables 1.3.6.. rodei um aptitude remove iptables; e funcionou...

[] 's


[10] Comentário enviado por rebinat em 28/05/2007 - 21:50h

teria como rodar uma regra do iptables liberando pra um certo ip e depois negando pro restante...


grato desde já...

ps.: os administradores não podem ficar sem P2p.. rsrsrsrs

[11] Comentário enviado por macvitor em 29/05/2007 - 14:43h

tem sim. vc primeiro tem q liberar o ip do chefe e depois negar os demais...tipo assim:

Liberar Ip do chefe:
iptables -A FORWARD -s ip-do-chefe -m layer 7 --l7proto bittorrent -j ACCEPT
iptables -A FORWARD -d ip-do-chefe -m layer 7 --l7proto bittorrent -j ACCEPT

Bloqueio dos demais
iptables -A FORWARD -m layer 7 --l7proto bittorrent -j DROP


[]'s
Marcelo Vitor

[12] Comentário enviado por removido em 30/05/2007 - 16:26h

rpaz, eu só estou conseguindo achar a primeira opcao dentro do make menuconfig
a segunda q eh pra selecionar o layer7 eu nao acho nem por reza, nao aparece na tela especifica, sera q eu estou fazendo algo errado?
me ajuda ae lek

[13] Comentário enviado por macvitor em 30/05/2007 - 17:03h

vc aplicou o patch do kernel? acredito que nao. no tutorial verifique a parte em que fala do comando patch -p1 < /usr/src/netfilter-layer7-v2.9/kernel-2.6.18-2.6.19-layer7-2.9.patch

Marcelo Vitor

[14] Comentário enviado por removido em 30/05/2007 - 17:15h

apliquei sim Marcelo Vitor,
rapaz, isso sempre aconteceu cmg nao sei porque, estou seguindo o tutorial corretamente e a opcao nao aparece. Ate no slackware da isso, só consegui mesmo com kernel 2.4 no slackware, nem no no slackware com kernel 2.6 eu consegui, da o mesmo problema, nao aparece a opcao.

[15] Comentário enviado por juninho (RH.com) em 08/06/2007 - 11:08h

Interessante, é que no Kernel 2.6.19, funcionou legal, mas no Kernel 2.6.21.3 que é o último estável, não consegui habilitar as opções do Layer 7 no Kernel.

Alguém tem alguma explicação?

[16] Comentário enviado por pontozip em 09/06/2007 - 20:13h

Segui o tutorial a risca e após 17 horas de compilação do kernel em meu pentium 100 com 128Mb, não consegui bloquear o bittorrent, fiz um teste com o MSN e este funcionou. O que pode ter ocorrido errado ? Aguardo uma luz.

Ats.
Rodrigo
Curitiba/PR

[17] Comentário enviado por TothBR em 12/06/2007 - 18:17h

Boa noite!

Iniciando a conversa parabéns pelo post fazia mto tempo que eu vinha tentando com o debian 3.1 mas nunca consegui segui o seu e e consegui é claro com o debian etch, segui passo a passo porem to com o seguinte problema, rodo o modproble ipt_layer7 em meu script de firewall crio as regras tdo ok porem não bloqueia, uso proxy transparente no meu squid, se puder me ajudar ficarei grato, qualquer coisa me manda seu e-mail ai posto meu script pra vc dar uma olhadinha abraços.

[18] Comentário enviado por removido em 12/06/2007 - 19:02h

Ola amigos.....Otimo artigo.....Só tenho uma duvida...quando eu instalo o debian Etch em um Disco SATA e recompilo o kernel, ao rebootar a maquina ele para em um prompt "Waiting for root filesystem.." o links estão OK e o GRUB ta tudo certo...Nos Discos ATA IDE funciona redondinho....
Alguém ja passou por isso....

ABRAÇOS....OBRIGADO

[19] Comentário enviado por macvitor em 15/06/2007 - 15:55h

juninhoogai,
o layer 7 ainda não está disponível para o kernel 2.6.21. o último kernel que ele tem suporte é o 2.6.19.

pontozip,
além do protocolo bittorrent usa tbm o fasttrack e o edonkey. cria uma linha iptables para cada um.

leociroz,
vc esta tentando bloquear o q? retorna algum erro?

danielpicolli,
com certeza é preciso habilitar o suporte à hd's sata no kernel. só não sei dizer a vc qual o caminho, mas dê um procurada no google. ok?

galera,
desculpa a demora em responder....é que andei bastante ocupado esses dias, mas assim que puder estarei respondendo as dúvidas.
flw!

[20] Comentário enviado por TothBR em 18/06/2007 - 08:18h

Bom dia!

Obrigado por ter respondido minha pergunta, consegui aplicar as regas não tinha olhado ainda na inicialização do módulo layer7 tenho um script de firewal e apliquei carrego o módulo neste script porém não esta inicializando tenho que fazer manualmente reler o script ai sim carrega.

Abraços

[21] Comentário enviado por predator em 18/06/2007 - 09:01h

leociroz

parece que vc teve o mesmo problema que eu...

coloque no inicio do script de firewall uma variavel para o comando iptables assim:

iptables="/usr/local/sbin/iptables"

e coloque o $ antes do comando iptables que vai funcionar normal desde o carregamento
$iptables -A FORWARD -m layer7 --l7proto ares -j DROP

abraços

[22] Comentário enviado por macvitor em 18/06/2007 - 09:08h

na verdade é preciso substituir a variavel

$iptables="/sbin/iptables"

por

$iptables="/usr/local/sbin/iptables"

contida no script de firewall

abraços!

[23] Comentário enviado por andnovelli em 17/07/2007 - 09:09h

Olá! Belo tutorial!
A instalação foi feita tranquilamente, porem nao esta bloqueando o amule, nem o msn, coloquei as regras pelo scipt com a variavel $iptables apontando pro binario do iptables que compilei, mas nao bloqueia ....

[24] Comentário enviado por andnovelli em 17/07/2007 - 09:14h

Ishi....vacilo meu... era apenas a ordem das regras! coloquei elas antes de todas as outras e rolou!!

leociroz
Veja se nao foi isso que rolou com vc ;-)
[]s!!!

[25] Comentário enviado por removido em 04/08/2007 - 00:02h

Parabéns pelo Artigo, estava precisando disso mesmo.
Obrigado


[26] Comentário enviado por arium em 15/08/2007 - 23:26h

Amigao fiz como vc descreve ai ficou 100% tudo perfeito!!! so tem um detalhe quando do um drop em algum protocolo ex: edonkey! a tty é inundada de uns caracteres loucos parece um sniffer de pacote .. dah que o layer 7 reconheceu X pacotes e eles foram flitrandos no meio do lixo dali a pouco diz o layer 7 nao reconheceu o protocolo.. enfim... nao seria porque a opçao debug layer 7 esta habilitada? tipo se eu aciono pelo ssh nao aparece no pts/0 por exemplo mais se eu ligo um monitor na maquina lah esta o lixo todo...
[*] Layer 7 debugging output
me refiro a essa opçao do kernel..

e nao sei fazer isso parar hehehe

valeu pelo otimo artigo mano velho

[]´s!!

Luiz Biazus

[27] Comentário enviado por macvitor em 16/08/2007 - 08:17h

É por isso mesmo, Luiz. Essa opção faz aparecer todos esses lixos na tela. Quando eu escrevi o artigo não sabia disso. Pensei que fosse alguma coisa no syslog, mas ao reinstalar e fazer todo o processo novamente, sem marcar essa opção, os lixos não apareceram mais.

Abraço.
Marcelo Vitor
www.inetsolution.com.br

[28] Comentário enviado por arium em 16/08/2007 - 10:57h

valeu os esclarecimentos amigão :)

iptables -A PREROUTING -t mangle -p tcp -j CONNMARK --restore-mark
67
iptables -A PREROUTING -t mangle -p tcp -m mark ! --mark 0 -j ACCEPT
68
iptables -A PREROUTING -t mangle -m layer7 --l7proto edonkey -j MARK --set-mark 1

tc qdisc del dev eth0 root
tc qdisc add dev eth0 root handle 1: htb default 2
tc class add dev eth0 parent 1: classid 1:1 htb rate 256Kbit ceil 256Kbit
tc class add dev eth0 parent 1:1 classid 1:2 htb rate 200Kbit ceil 256Kbit
tc class add dev eth0 parent 1:1 classid 1:3 htb rate 56Kbit ceil 256Kbit
tc filter add dev eth0 parent 1:0 protocol ip prio 4 handle 1 fw classid 1:3


fiz uma adaptação de um script do ipp2p pra limitar o edonkey a 56k num link de 256kps.. ainda nao consegui testar efetivamente.. todos os comandos foram aceitos mais voce já utilizou shapping somente com layer 7 sem o ipp2p??... particularmente acho o ipp2p meio fraco e com suporte a muitos poucos protocolos... mais com ele eu fiz esse mesmo script e pra ele e funcionava... abraçao amigo!


Luiz Biazus

[29] Comentário enviado por rebinat em 28/08/2007 - 14:43h

amigos,

depois que instalei o layer7 como no arquivo.. fica aparecndo um monte de letras e simbolos passando na tela..

alguem sabe porque??

mesmo nao estando logado

[30] Comentário enviado por macvitor em 29/08/2007 - 10:18h

rebinat,

É porque ao selecionar os itens na compilação do kernel, a opção [*] Layer 7 debugging output foi marcada. Antes de escrever o artigo eu não sabia disso. Não selecione-a que os logs não aparecerão na tela.

[31] Comentário enviado por giovanejr em 04/09/2007 - 11:45h

Parceiro,

Passei só pra dar os parabéns mesmo, muito bom seu artigo, funciona perfeito, sem nenhuma alteração.

obrigado aí por todos que tem essas necessidades.

Abraços

[32] Comentário enviado por dorival.santos em 05/11/2007 - 17:31h

Amigo,

Segui seu tutorial à risca, mas a opção do layer7 não aparece, conferi se eu havia aplicado o patch para o kernel e está tudo normal. Até conferi o que foi inserido no kernel (na hora de aplicar o patch), aparece várias opções, mas na hora de marcar o layer7 não o encontro...

Alguma dica?

Abraços!

[33] Comentário enviado por nosrede em 07/11/2007 - 11:00h

Meu segui os passos certo, estava compilando normal, mas depois de 1:30 + ou - deu isso:

CC [M] drivers/media/dvb/ttpci/av7110_v41.o
drivers/media/dvb/ttpci/av7110_v41.o:937: internal compiler error: Segmentation fault

Ai aparece algumas informações a mais.

The bug is not reproducible, so it likely a hardware or OS Problem.
make[5]: *** [drivers/media/dvb/ttpci/av7110_v41.o] Error 1
make[4]: *** [drivers/media/dvb/ttpci] Error 2
make[3]: *** [drivers/media/dvb] Error 2
make[2]: *** [drivers/media] Error 2
make[1]: *** [drivers] Error 2
make[1]: *** Leaving directory '/usr/src/linux-2.6.19'
make: *** [debian/stamp-build-kernel] Erro 2

Oque será essa parada?
Grato.

[34] Comentário enviado por lopesronan em 08/01/2008 - 11:38h

Para ativar a opção do kenel para o patch layer7, siga os passos abaixo:

make menuconfig

Networking --->
Networking options --->
Network packet filtering framework (Netfilter) --->
Core Netfilter Configuration --->

agora é o "pulo do gato"
selecione:

<M> Netfilter connection tracking support

vai aparecer a opção para selecionar o layer7 na linha 49 abaixo contando a partir da opção acima:

<M> "layer7" match support

[35] Comentário enviado por rebinat em 08/01/2008 - 14:53h

por favor...

alguem sabe como bloquear o dreamule.. que é nada mais que o emule modificado..

mas o emule é bloqueado mas o dreamule não...

grato

[36] Comentário enviado por jcvalim em 24/01/2008 - 08:54h

Fala ai, blz pow segui exatamente os passos que vc passou e esta acontecendo o seguinte erro quando tento compilar o kernel.

proxy-frade:/usr/src/linux# make menuconfig
HOSTCC scripts/basic/fixdep
scripts/basic/fixdep.c:105:23: error: sys/types.h: Arquivo ou diretório não encontrado
scripts/basic/fixdep.c:106:22: error: sys/stat.h: Arquivo ou diretório não encontrado
scripts/basic/fixdep.c:107:22: error: sys/mman.h: Arquivo ou diretório não encontrado
scripts/basic/fixdep.c:108:20: error: unistd.h: Arquivo ou diretório não encontrado
scripts/basic/fixdep.c:109:19: error: fcntl.h: Arquivo ou diretório não encontrado
scripts/basic/fixdep.c:110:20: error: string.h: Arquivo ou diretório não encontrado
scripts/basic/fixdep.c:111:20: error: stdlib.h: Arquivo ou diretório não encontrado
scripts/basic/fixdep.c:112:19: error: stdio.h: Arquivo ou diretório não encontrado
In file included from /usr/lib/gcc/i486-linux-gnu/4.1.2/include/syslimits.h:7,
from /usr/lib/gcc/i486-linux-gnu/4.1.2/include/limits.h:11,
from scripts/basic/fixdep.c:113:
/usr/lib/gcc/i486-linux-gnu/4.1.2/include/limits.h:122:61: error: limits.h: Arquivo ou diretório não encontrado
scripts/basic/fixdep.c:114:19: error: ctype.h: Arquivo ou diretório não encontrado
scripts/basic/fixdep.c:115:23: error: arpa/inet.h: Arquivo ou diretório não encontrado
scripts/basic/fixdep.c: In function âusageâ:
scripts/basic/fixdep.c:129: warning: implicit declaration of function âfprintfâ
scripts/basic/fixdep.c:129: warning: incompatible implicit declaration of built-in function âfprintfâ
scripts/basic/fixdep.c:129: error: âstderrâ undeclared (first use in this function)
scripts/basic/fixdep.c:129: error: (Each undeclared identifier is reported only once
scripts/basic/fixdep.c:129: error: for each function it appears in.)
scripts/basic/fixdep.c:130: warning: implicit declaration of function âexitâ
scripts/basic/fixdep.c:130: warning: incompatible implicit declaration of built-in function âexitâ
scripts/basic/fixdep.c: In function âprint_cmdlineâ:
scripts/basic/fixdep.c:138: warning: implicit declaration of function âprintfâ
scripts/basic/fixdep.c:138: warning: incompatible implicit declaration of built-in function âprintfâ
scripts/basic/fixdep.c: At top level:
scripts/basic/fixdep.c:141: error: âNULLâ undeclared here (not in a function)
scripts/basic/fixdep.c: In function âgrow_configâ:
scripts/basic/fixdep.c:154: warning: implicit declaration of function âreallocâ
scripts/basic/fixdep.c:154: warning: assignment makes pointer from integer without a cast
scripts/basic/fixdep.c:156: warning: implicit declaration of function âperrorâ
scripts/basic/fixdep.c:156: warning: incompatible implicit declaration of built-in function âexitâ
scripts/basic/fixdep.c: In function âis_defined_configâ:
scripts/basic/fixdep.c:172: warning: implicit declaration of function âmemcmpâ
scripts/basic/fixdep.c: In function âdefine_configâ:
scripts/basic/fixdep.c:185: warning: implicit declaration of function âmemcpyâ
scripts/basic/fixdep.c:185: warning: incompatible implicit declaration of built-in function âmemcpyâ
scripts/basic/fixdep.c: In function âuse_configâ:
scripts/basic/fixdep.c:204: error: âPATH_MAXâ undeclared (first use in this function)
scripts/basic/fixdep.c:212: warning: incompatible implicit declaration of built-in function âmemcpyâ
scripts/basic/fixdep.c:218: warning: implicit declaration of function âtolowerâ
scripts/basic/fixdep.c:220: warning: incompatible implicit declaration of built-in function âprintfâ
scripts/basic/fixdep.c:204: warning: unused variable âsâ
scripts/basic/fixdep.c: At top level:
scripts/basic/fixdep.c:223: error: expected declaration specifiers or â...â before âsize_tâ
scripts/basic/fixdep.c: In function âparse_config_fileâ:
scripts/basic/fixdep.c:225: error: âlenâ undeclared (first use in this function)
scripts/basic/fixdep.c:231: warning: implicit declaration of function ântohlâ
scripts/basic/fixdep.c:242: warning: implicit declaration of function âisalnumâ
scripts/basic/fixdep.c: In function âstrrcmpâ:
scripts/basic/fixdep.c:255: warning: implicit declaration of function âstrlenâ
scripts/basic/fixdep.c:255: warning: incompatible implicit declaration of built-in function âstrlenâ
scripts/basic/fixdep.c: In function âdo_config_fileâ:
scripts/basic/fixdep.c:266: error: storage size of âstâ isnât known
scripts/basic/fixdep.c:270: warning: implicit declaration of function âopenâ
scripts/basic/fixdep.c:270: error: âO_RDONLYâ undeclared (first use in this function)
scripts/basic/fixdep.c:272: warning: incompatible implicit declaration of built-in function âfprintfâ
scripts/basic/fixdep.c:272: error: âstderrâ undeclared (first use in this function)
scripts/basic/fixdep.c:274: warning: incompatible implicit declaration of built-in function âexitâ
scripts/basic/fixdep.c:276: warning: implicit declaration of function âfstatâ
scripts/basic/fixdep.c:278: warning: implicit declaration of function âcloseâ
scripts/basic/fixdep.c:281: warning: implicit declaration of function âmmapâ
scripts/basic/fixdep.c:281: error: âPROT_READâ undeclared (first use in this function)
scripts/basic/fixdep.c:281: error: âMAP_PRIVATEâ undeclared (first use in this function)
scripts/basic/fixdep.c:281: warning: assignment makes pointer from integer without a cast
scripts/basic/fixdep.c:288: error: too many arguments to function âparse_config_fileâ
scripts/basic/fixdep.c:290: warning: implicit declaration of function âmunmapâ
scripts/basic/fixdep.c:266: warning: unused variable âstâ
scripts/basic/fixdep.c: At top level:
scripts/basic/fixdep.c:295: error: expected declaration specifiers or â...â before âsize_tâ
scripts/basic/fixdep.c: In function âparse_dep_fileâ:
scripts/basic/fixdep.c:298: error: âlenâ undeclared (first use in this function)
scripts/basic/fixdep.c:300: error: âPATH_MAXâ undeclared (first use in this function)
scripts/basic/fixdep.c:302: warning: implicit declaration of function âstrchrâ
scripts/basic/fixdep.c:302: warning: incompatible implicit declaration of built-in function âstrchrâ
scripts/basic/fixdep.c:304: warning: incompatible implicit declaration of built-in function âfprintfâ
scripts/basic/fixdep.c:304: error: âstderrâ undeclared (first use in this function)
scripts/basic/fixdep.c:305: warning: incompatible implicit declaration of built-in function âexitâ
scripts/basic/fixdep.c:307: warning: incompatible implicit declaration of built-in function âmemcpyâ
scripts/basic/fixdep.c:308: warning: incompatible implicit declaration of built-in function âprintfâ
scripts/basic/fixdep.c:300: warning: unused variable âsâ
scripts/basic/fixdep.c: In function âprint_depsâ:
scripts/basic/fixdep.c:337: error: storage size of âstâ isnât known
scripts/basic/fixdep.c:341: error: âO_RDONLYâ undeclared (first use in this function)
scripts/basic/fixdep.c:343: warning: incompatible implicit declaration of built-in function âfprintfâ
scripts/basic/fixdep.c:343: error: âstderrâ undeclared (first use in this function)
scripts/basic/fixdep.c:345: warning: incompatible implicit declaration of built-in function âexitâ
scripts/basic/fixdep.c:349: warning: incompatible implicit declaration of built-in function âfprintfâ
scripts/basic/fixdep.c:353: error: âPROT_READâ undeclared (first use in this function)
scripts/basic/fixdep.c:353: error: âMAP_PRIVATEâ undeclared (first use in this function)
scripts/basic/fixdep.c:353: warning: assignment makes pointer from integer without a cast
scripts/basic/fixdep.c:360: error: too many arguments to function âparse_dep_fileâ
scripts/basic/fixdep.c:337: warning: unused variable âstâ
scripts/basic/fixdep.c: In function âtrapsâ:
scripts/basic/fixdep.c:372: warning: incompatible implicit declaration of built-in function âfprintfâ
scripts/basic/fixdep.c:372: error: âstderrâ undeclared (first use in this function)
scripts/basic/fixdep.c:374: warning: incompatible implicit declaration of built-in function âexitâ
make[1]: ** [scripts/basic/fixdep] Erro 1
make: ** [scripts_basic] Erro 2
proxy-frade:/usr/src/linux#

Poderiam me dar uma ajuda para resolver isso???
Estou utilizando o debian Debian versão GNU/Linux 4.0 \n \l

[37] Comentário enviado por jcvalim em 24/01/2008 - 10:50h

Pow galera ai ja consegui resolver o problema estava esquecendo de alguns detalhes, mas de qualquer forma vlw....

[38] Comentário enviado por paulopmt1 em 05/03/2008 - 00:11h

Show de bola o tutorial, Meus parabéns macvitor. A tempo estava tentando fazer isso, porém sempre empacava na compilação do kernel, pois eu uso hd sata aí quando dava o boot ficava na linha "waiting for root filesystem" então o que fiz foi copiar a configuração do outro kernel para este novo.
para fazer isso é simples:

copiar o arquivo de configuração do antigo kernel:
# cp /boot/config-2.6.18-2-386 /usr/src/linux/.config
dar um make menuconfig e ir em "Load an Alternate Configuration File" e então selecionar o arquivo .config. depois disso é só seguir o tutorial normalmente e ativar o layer7 e tals... essa dica serve pro nosso amigo danielpicolli, caso ainda precise.

até aí tudo ok, porém eu fiz tudo isso iniciei o novo kernel e então executei:
# modprobe ipt_layer7
# iptables -A FORWARD -m layer7 --l7proto bittorrent -j DROP

ao carregar o módulo blz, funciona ok, mais ao criar qualquer regra no iptables me retorna o seguinte erro:
"iptables v1.3.7: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)ch/i386/Kconfig
Perhaps iptables or your kernel needs to be upgraded."

Alguém sabe me dizer o que pode ser?
desde já agradeço a galera do VOL

[39] Comentário enviado por paulopmt1 em 06/03/2008 - 11:36h

timidboy se você ainda precisar da dica...pra mim também não aparecia o layer7 em primeira instância então tem o "pulo do cato". você deve selecionar o "Connection tracking flow accounting" pra daí sim aparecer lá em baixo "Layer 7 match support (EXPERIMENTAL)" senão não aparece mesmo.

para solucionar o problema que eu coloquei aí em cima do erro:
"iptables v1.3.7: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)ch/i386/Kconfig
Perhaps iptables or your kernel needs to be upgraded."

deve-se na mesma tela do layer7 bla bla selecionar a opção: "Packet filtering" e logo abaixo dela "REJECT target support". aí vai funcionar 100%. agora pouco que descobri o porquê desse erro e finalmente consegui resolver....
qualquer dúvida estamos aí
vlw galera do VOL

[40] Comentário enviado por kelisson em 09/04/2008 - 16:53h

***********************ATENÇÂO***************************
OBS: caso possua discos SATA, no momento que for compilar o kernel não esqueça de marcar para carregar os modulos SATA, pois do caso contrário a máquina não irá iniciar corretamente.
***********************ATENÇÂO***************************

no mais o tutorial esta perfeito e funcional.

[41] Comentário enviado por anju em 07/02/2009 - 02:46h

Veja, ainda não testei o tuto, mas agradeço pois procuro algo assim.
Mas gostaria de saber se funciona no slk 10.2

[42] Comentário enviado por gvcom em 05/03/2009 - 16:20h

Não vou elogiar por que nem precisa. O trabalho ficou bom.

macvitor segui seus procedimentos num P3 1 GHz, SIS 300 AGP (offboard), 512 RAM e HD de 40 GB, com a "pequena" diferença que usei o Debian Lenny. Após 3 horas de compilação ocorreu um erro:

"error: zlib.h: Arquivo ou diretório não encontrado
make[1]: ** [lguest]** Erro 1
make[1]: Saindo do diretório '/usr/src/linux 2.6.28.7/Documentation/lguest'
make: **[debian/stamp/build/kernel Erro 2"

Talvez você já tenha feito o mesmo procedimento no Lenny e possa me ajudar.
Obs.: todas alterações que percebi entre seu tuto e as opções do Lenny, corrigi e posso enviar o arquivo, se desejar.

Agradeço se puderem me ajudar. Dando certo, teremos um novo tuto para o Lenny.

[43] Comentário enviado por jucaetico em 11/03/2009 - 13:23h

Funcionou blz aqui!! Valeu. Abraços

[44] Comentário enviado por fboliveira em 13/04/2010 - 07:46h

Excelente! Consegui implementar sem problemas com o auxílio desse artigo.

[45] Comentário enviado por ngiongo em 22/06/2010 - 23:09h

boa noite.
muito bom,estou precisando exatamente disso,mas infelizmente ta dando esse erro quando carrego a regra do iptables com layer7:

/usr/local/libexec/xtables/libxt_layer7.so: /usr/local/libexec/xtables/libxt_layer7.so: undefined symbol: exit_error
iptables v1.4.3: Couldn't load match `layer7':/usr/local/libexec/xtables/libipt_layer7.so: cannot open shared object file: No such file or directory

[46] Comentário enviado por Xelito em 11/05/2011 - 16:20h

Ja fiz esse tutorial varias veses e tive problemas ao encontrar o diretorio linux/compiler.h com o comando:
make-kpkg -initrd kernel_image

Refiz tudo novamente e reparei que não tinha executado o comando para instalar o kernel_package. Apos executar e instalar agora apresenta outro erro (indedenpente de estar na pasta /usr/src/ ou /usr/src/linux):
Unknown option: i
Unknown option: n
Unknown option: i
Unknown option: t
Unknown option: r
Unknown option: d
Ou seja ele nao esta mais reconhecendo o comando initrd
como faço para tentar resolver isso?
Alguem pode me ajudar?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts