Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux

Caros amigos, após atualizar o meu kernel 2.6.18 para o 2.6.26, simplesmente não conseguia mais compartilhar a internet. Surgia o seguinte erro: "FATAL: Module ip_tables not found" no momento que carregaria o módulo iptable_nat.

[ Hits: 41.081 ]

Por: Francisco Claudionor Avelar Albuquerque em 17/11/2008


Compilando o kernel



Execute o seguinte comando para descompactar o arquivo do kernel, importante, no diretório /usr/src.

# tar -xjvf linux-2.6.26.tar.bz2

Um diretório linux-2.6.26 foi criado. Crie um link para esse diretório e depois entre nele.

# ln -s linux-2.6.26 linux

Sei que estou sendo chato, mas lembrando sempre que essa operação terá que ser feita dentro do diretório /usr/src.

Depois de criado o diretório "linux", vamos entrar nele.

# cd linux

Vamos iniciar uma breve explicação, temos algumas maneiras de acessar os parâmetros do kernel, mas geralmente utilizo esses dois: menuconfig (texto) ou xconfig (gráfico).

Para utilizar o menuconfig já foi instalado o pacote libncurses5-dev. Caso não tenha sido instalado é só executar o comando abaixo:

# apt-get install libncurses5-dev.

Para o xconfig, instalar o pacote libqt3-mt-dev com o comando abaixo:

# apt-get install libqt3-mt-dev

Particularmente eu prefiro o menuconfig, mas fica por sua conta.

Continuando com o processo do kernel, execute o seguinte comando dentro do diretório /usr/src/linux:

# make menuconfig
Linux: make menuconfig
Selecionaremos a opção Networking.
Linux: kernel networking
Selecione a opção Networking options.
Linux: networking options
Selecione a opção Network packet filtering framework (Netfilter).
Linux: Network packet filtering framework (Netfilter)
Entrando na opção IP: Netfilter Configuration, explicarei o grande mistério do kernel 2.6.26:
Linux: IP: Netfilter Configuration
Não sei por que o módulo do nat não vem habilitado no kernel como mostrado abaixo, não confunda IP tables support (required for filtering/masq/NAT), pois essa opção não ativa o módulo do NAT.
Linux: IP tables support (required for filtering/masq/NAT)
Então vamos habilitar, vá à opção <Exit> para retornar a tela anterior:
Linux: IP: Netfilter Configuration
E vá à opção Core Netfilter Configuration.
Linux: Core Netfilter Configuration
Aqui está o grande segredo, marque a opção Netfilter connection tracking support (NEW) como módulo (M).
Linux: Netfilter connection tracking support
Linux: Netfilter connection tracking support
Selecione <Exit> para retornar a tela anterior:
E vá novamente para a opção IP: Netfilter Configuration.
Linux: IP: Netfilter Configuration
Veja que apareceu uma nova opção que não estava antes: Ipv4 connection tracking support (required for Nat) (NEW), marque ele como módulo (M).
Linux: Ipv4 connection tracking support
Linux: Ipv4 connection tracking support
E bem abaixo marque como modulo (M) a opção Full Nat:
Linux: Full Nat
Linux: Full Nat
Marque as opções MASQUERADE target support, REDIRECT target support, NETMAP target support, Basic SNMP-ALG support como modulo (M).
Linux: MASQUERADE target support, REDIRECT target support, NETMAP target support, Basic SNMP-ALG support
Selecione a opção <Exit> até chegar a essa tela:
Aí é só confirmar para passarmos ao próximo passo.

Crie agora o pacote com o seu novo kernel:

# make-kpkg -initrd kernel_image

Esta é a parte mais demorada do processo, agora é só relaxar e esperar.

Ao terminar o processo, sair do diretório atual e instalar o seu kernel:

# cd ..
# dpkg -i linux-image-2.6.26_2.6.26-10.00.Custom_i386.deb


O seu pode estar diferente, mas o comando tem que ser executado com o arquivo que esta dentro do diretório /usr/src com a terminação .deb.

Pronto, como estamos no Debian, não precisaremos mexer nas configurações do GRUB, pois esse comando já faz isso por você. Agora é só reiniciar o computador com o seu novo kernel.

# reboot

Página anterior     Próxima página

Páginas do artigo
   1. Instalando os pacotes necessários para copilar o kernel
   2. Compilando o kernel
   3. Levantando os módulos: ip_tables e iptables_nat
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Kernel 2.6 hacks

Registrando extensões no kernel com o binfmt_misc

Compilando o kernel do Slackware em 10 etapas

Compilação de Kernel

Compilando Kernel do Linux no Debian

  
Comentários
[1] Comentário enviado por removido em 17/11/2008 - 22:45h

É isso que me mata no debian... Ter de recompilar o kernel por causa de um simples módulo iptables.
Tenham a santa paciência!!!

[2] Comentário enviado por osmano807 em 18/11/2008 - 10:24h

Aqui em casa, só instaleio o pacote iptables que funcionou o module ip_tables.
Talvez ele queira que você já mude para ipv6, onde não existe nat, sei lá.

[3] Comentário enviado por agk em 08/12/2008 - 10:36h

Excelente artigo, mas tenho que discordar do que o amigo acsilva escreveu: "É isso que me mata no debian... Ter de recompilar o kernel por causa de um simples módulo iptables. Tenham a santa paciência!!!"

O Debian vem com iptables, nat, tudo funcionando perfeitamente, não tem que instalar e nem compilar nada, não fale o que não sabe, isso além de mostrar que não tem conhecimento do assunto, acaba por assustar usuários que buscam por informações sobre o Debian.

O que o nosso amigo fcavelar mostrou no seu artigo foi como habilitar esse módulo para utilizar com kernel 2.6.26, por padão o Debian Etch vem com kernel 2.6.18, se a versão mais nova do kernel não funciona por padrão isso não é problema do Debian, é problema do usuário saber configurar o kernel antes de sair compilando e instalando uma versão mais nova, pois o que vem por padrão com a distribuição funciona.

Muito bom o artigo, bem explicado, com certeza vai ajudar muita gente.

[4] Comentário enviado por firefiery em 18/11/2009 - 15:28h

Parabéns, me ajudou d+ esse artigo! :)

[5] Comentário enviado por manivelas_Brasil em 24/08/2010 - 01:14h

Excelente artigo. Fiz o passo a passo e deu tudo certo.Já estou compartilhando minha conexão da máquina virtual com a física. Agradeço ao amigo. Um abraço.

[6] Comentário enviado por juniorsaulo em 28/01/2013 - 10:24h

Olá amigo fcavelar, sou novo por aqui. Fui seguindo seu tutorial e estava tudo certo até o memento em que utilizei o comando make-kpkg -initrd kernel_image para criar o pacote. Parece que existe uma falha na sintaxe do comando. Pode me ajudar? Veja a saída do comando.

root@debian:/usr/src/linux# make-kpkg -initrd kernel_image
Unknown option: i
Unknown option: n
Unknown option: i
Unknown option: t
Unknown option: r
Unknown option: d
use --help to display command line syntax help.

[7] Comentário enviado por clovisvellardo em 23/10/2013 - 10:16h

Muito bom o post estou nesse exato momento tentando faze-lo
Sobre o comando make-kpkg -initrd kernel_image o correto é
make-kpkg --initrd kernel_image
É isso ai galera abraços...


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts