Existem diversos tutoriais na internet que tratam sobre esta instalação de layer7 com iptables, porém devido a atualização de versões, entre outros fatores, sempre é bom fazer uma revisão atualizando os dados e melhorando em alguns pontos. Este artigo tem por objetivo esta revisão.
Caso queira baixar todos os pacotes necessários antes de iniciar, segue os links diretos para download:
Layer 7 versão 2.21: http://downloads.sourceforge.net/project/l7-filter/l7-filter%20kernel%20version/2.21/netfilter-layer7-v2.21.tar.gz?use_mirror=ufpr&ts=1278937632
Kernel 2.6.25.2: ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.2.tar.bz2
Protocolos do Layer7 atualizados até 28/05/2009: http://downloads.sourceforge.net/project/l7-filter/Protocol%20definitions/2009-05-28/l7-protocols-2009-05-28.tar.gz?use_mirror=ufpr&ts=1278938145
1. Instalar pacotes necessários (caso falte alguma dependência, basta instalar ou se preferir faça a instalação dos pacotes abaixo usando o aptitude):
# apt-get install libncurses5-dev kernel-package gcc
2. Criar diretório para armazenar pacotes
# mkdir /opt/layer7
# cd /opt/layer7
3. Baixar e descompactar o pacote do projeto Layer7 (utilizei a versão 2.21)
# tar zxvf netfilter-layer7-v2.21.tar.gz
4. Baixar e descompactar o fonte do Kernel (utilizei a versão 2.6.25.2)
# cd /root/
# cd /usr/src
# tar jxvf /root/linux-2.6.25.2.tar.bz2
5. Aplicar o patch do layer7 no novo kernel:
# cd /usr/src/linux-2.6.25.2
# patch -p1 < /opt/layer7/netfilter-layer7.v2.21/kernel-2.6.25-2.6.28-layer7-2.21.patch
6. Aproveitar configuração do kernel atual:
Caso queira usar as configurações do kernel atual no novo kernel, utilize os comandos abaixo. Provavelmente será necessário responder várias perguntas, referente a novos itens inclusos no novo kernel e que não existiam no atual. Para estas perguntas, Caso não saiba as respostas pressione então de fora a fora, pois depois você poderá rever as opções na próxima etapa).
# cp /boot/config-2.6[pressione o tab] /.config
# make oldconfig
7. Configurar o novo kernel:
# make menuconfig
Acesse os submenus como segue:
- Networking
- Networking options
- Network packet filtering framework (netfilter)
- Core Netfilter Configuration
Marque os módulos referente ao layer 7 (na dúvida marque todos os módulos)
volte 1 nível e entre no submenu:
- IP: Netfilter Configuration
marque o módulo “IPv4 connection tracking support (required for NAT)”
marque o módulo “Full NAT” e demais sub-ítens desse módulo
obs.: Em caso de instalar sem utilizar configuração de kernel anterior, convém dar uma passada em todo o submenu de Networking afim de verificar se opções referente a bridge, nat, e afins estejam selecionados.
Terminado, salve e saia.
8. Compilar o novo kernel e criar um pacote .deb do mesmo:
# make-kpkg –initrd kernel_image
obs.: Caso esteja fazendo a atualização de um servidor remoto, por questões de segurança convém deixar este processamento em segundo plano.
# make-kpkg –initrd kernel_image &
Saia para tomar um merecido café pois esta etapa demora um tempo considerável.
Obs.: A instalação manual também pode ser realizada, mas como se trata de debian, não precisamos ficar “reiventando a roda”, vamos gerar o pacote e deixar o dpkg fazer o resto. Mas caso queira fazer manualmente também funciona.
9. Instalar o novo kernel:
# dpkg -i ../linux-image-2.6.25[pressione TAB].deb
10. Reiniciar a máquina com o novo kernel:
# shutdown -r now
obs.: caso aconteça algum erro, dê boot com o kernel antigo e então remova este novo kernel para fazer melhorias:
# apt-get remove --purge linux-image-2.6.25.2
(para ver o nome correto do pacote faça: dpkg -l | grep linux-image)
11. Baixar o Iptables (utilizei a versão 1.4.0, pois as posteriores não obtive sucesso)
# cd /opt/layer7
12. Descompactar o fonte e aplicar o patch:
# cd /opt/layer7
# tar jxvf iptables-1.4.0.tar.bz2
# cd iptables-1.4.0
# patch -p1 < /opt/layer7/netfilter-layer7-v2.1/iptables-1.4-for-kernel-2.6.20forward-layer7-2.21.patch
# chmod 755 extension/.layer7-test
13. Remover o iptables antigo e instalar a nova versão:
# aptitude purge iptables
# make KERNEL_DIR=/usr/src/linux-2.6.25 BINDIR=/sbin LIBDIR=/lib
# make install KERNEL_DIR=/usr/src/linux-2.6.25 BINDIR=/sbin LIBDIR=/lib
Verificar se tudo correu bem:
# iptables -n -L
# iptables -n -L -t nat
# ls -l /lib/iptables/*layer7*
14. Baixar e instalar os pacotes de protocolos do Layer7:
# cd /opt/layer7
# tar zxvf l7-protocols-2009-05-28.tar.gz
# cd l7-protocols-2009-05-28
# make install
# ls /etc/l7-protocols/protocols
FIM.
DICAS IMPORTANTES A RESPEITO DO LAYER7
Dica 1: Se você já tem o layer7 funcionando, e queira apenas fazer atualizações nos protocolos suportados, basta fazer apenas o ítem 14, observando é claro o nome do novo arquivo de protocolos. O que acontece é apenas copiar os novos pacotes de protocolos em cima dos antigos. Então convém fazer um backup dos arquivos dos protocolos antigos.
Dica 2: nem sempre todos os pacotes mais recentes envolvidos funcionam plenamente em conjunto, então observe as versões de kernel, iptables e layer7 compatíveis antes fazer as compilações.
Nenhum comentário:
Postar um comentário