compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6
TRANSCRIPT
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
1/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 noDebian Linux
Autor: Francisco Claudionor Avelar Albuquerque <claudionor at fretcar.com.br>Data: 17/11/2008
Instalando os pacotes necessários para copilar o kernel
Caros amigos, após atualizar o meu kernel 2.6.18 para o 2.6.26, resolvi compartilhar a internet, mas não
conseguia mais subir os módulos ip_table e iptable_nat, simplesmente retornavam o erro:
FATAL: Module ip_tables not found
Depois de muitas noites em claro pesquisando na internet como habilitar o módulo nat no kernel 2.26 paraassim compartilhar a NET, enfim encontrei a solução e quero muito compartilhar com vocês. Nesse artigo
mostrarei como atualizar o kernel e habilitar os módulos necessários para carregar o ip_table e o iptable_nat.
Então vamos ao trabalho.
Antes de começar precisamos de alguns pacotes básicos, essenciais para o processo: o kernel-package, gcce libncourses5-dev. Sem eles não será possível a compilação. Para isto abra o terminal e use os seguintes
comandos para baixá-los via apt-get dos repositórios da distribuição (lembrando sempre que linhas iniciadas
em "#" são para comandos como root (administrador) e linhas iniciadas em "$" são para comandos como
usuários):
# apt-get update
# apt-get install kernel-package
# apt-get install gcc
# apt-get install libncurses5-dev
Baixando o kernel
Baixando o kernel diretamente dos repositórios da sua distribuição via apt-get.
Primeiro temos que saber a versão do kernel atual, para isso utilize o comando:
$ uname -a
Com a versão na mão, utilizaremos o seguinte comando para pesquisar qual o kernel mais atualizado no
nosso repositório:
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
2/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
# apt-cache search linux-source
Esse comando vai mostrar as versões mais atuais do seu kernel, com isso usaremos o seguinte comando:
# apt-get install linux-source-2.6.xx
Obs.: Substituindo o "xx" com a versão que iremos atualizar. o apt-get coloca o arquivo na pasta /usr/src.
Baixe também o linux-headers e linux-kbuild:
# apt-get install linux-kbuild-2.6.xx
# apt-get install linux-headers-2.6.xx-etchnhalf.1-all-i386
É importante lembrar que a versão dos dois pacotes precisa ser a mesma que o source.
Baixando o kernel pelo kernel.org
Acesse a página: http://www.kernel.org/pub/linux/v2.6/
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
3/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
Nesta página você escolhe o kernel que mais lhe agrada, no meu caso escolhi o kernel linux-2.6.26.tar.bz2.
No terminal, como root, você utiliza o seguinte comando:
# wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.bz2
Obs.: Este comando deverá ser executado no diretório /usr/src, pois é o diretório base onde executaremos oprocesso do kernel.
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).
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
4/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
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
Selecionaremos a opção Networking.
Selecione a opção Networking options.
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
5/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
Selecione a opção Network packet filtering framework (Netfilter).
Entrando na opção IP: Netfilter Configuration, explicarei o grande mistério do kernel 2.6.26:
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.
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
6/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
Então vamos habilitar, vá à opção <Exit> para retornar a tela anterior:
E vá à opção Core Netfilter Configuration.
Aqui está o grande segredo, marque a opção Netfilter connection tracking support (NEW) como módulo
(M).
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
7/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
Selecione <Exit> para retornar a tela anterior:
E vá novamente para a opção IP: Netfilter Configuration.
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
8/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
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).
E bem abaixo marque como modulo (M) a opção Full Nat:
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
9/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
Marque as opções MASQUERADE target support, REDIRECT target support, NETMAP target support,
Basic SNMP-ALG support como modulo (M).
Selecione a opção <Exit> até chegar a essa tela:
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
10/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
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
Levantando os módulos: ip_tables e iptables_nat
Após ser reiniciado o sistema com o seu novo kernel, vamos ativar os módulo do ip_tables e iptables_nat:
# modprobe ip_tables
# modprobe iptable_nat
Agora execute o comando "lsmod | grep iptable" e verificamos que os arquivos estão habilitados no módulo:
Bem, tem várias maneiras de deixar o carregamento dos módulos no kernel automático, mas eu prefiro utilizar
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
11/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
um utilitário para fazer esse trabalho para mim, sem precisar colocar em algum arquivo de inicialização ou
ficar fazendo manualmente, estou falando do modconf. Caso não esteja instalado no seu sistema é só executaro seguinte comando:
# apt-get install modconf
Depois de instalado é só chamar o aplicativo:
# modconf
Ir à opção kernel/net/ipv4/netfilter.
Verificando que a opção iptable_nat está com um sinal de -, significa que o mesmo não está carregado nomódulo. Para carregar é só teclar enter em cima da opção.
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
12/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
Confirma:
Enter:
Enter novamente:
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
13/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
Verificamos agora que o sinal está com o sinal de +, significando que o mesmo está carregado no módulo,vamos fazer o mesmo procedimento para o ip_table, caso o mesmo esteja com o sinal de -.
Após a configuração é só sair com <ESC>.
Vamos reiniciar novamente o sistema para ver se realmente funcionou:
# reboot
Depois de reiniciado, vamos verificar se os módulos realmente estão carregados no kernel:
# lsmod | grep iptable
Pronto, agora é com você ativar o compartilhamento da internet. Existem muitos artigos espalhados pela net
ensinando como ativar o compartilhamento, mas de qualquer maneira vou colocar só uma dica de comocompartilhar:
# modprobe iptable_nat # echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Obs.: Como o iptable_nat já está ativado, então não precisa utilizar o modprobe.
Espero ter contribuído de alguma forma a ajudar algum colega que, como eu, após ter atualizado o kernel e
tentou compartilhar a NET não estava conseguindo sucesso por não conseguir carregar os módulos
30/04/12 Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux [Artigo]
14/14www.vivaolinux.com.br/artigos/impressora.php?codigo=9175
necessários para tal.
Até a próxima...
http://www.vivaolinux.com.br/artigo/Compilar-e-habilitar-os-modulos-ip_table-e-iptable_nat-no-kernel-2.6.26-no-Debian-Linux
Voltar para o site