A instalação do
Layer7 será dividida em duas partes, a primeira é a compilação do kernel com o módulo e a segunda a compilação do iptables com as bibliotecas do Layer7. Ao decorrer do artigo veremos que compilar o kernel e o iptables são tarefas simples e necessárias para qualquer administrador de rede.
Let`s go!
1. Compilação do kernel
Vamos fazer primeiramente todos os downloads necessários.
Esses pacotes são necessários para descompactar os downloads e para fazer a compilação do kernel:
# apt-get install bzip2 gzip unzip
# apt-get install libncurses5-dev kernel-package build-essential zlib1g-dev
Fontes do kernel - A última versão do kernel que foi testado e 100% estável para implementação do Layer7 foi a 2.6.28, não quer dizer que o Layer7 não funcione em versões superiores do kernel, somente não foram testadas pela equipe de desenvolvimento do L7.
Protocolos do Layer7 - São os plugins de bloqueios do Layer7:
Netfilter/Layer7 - Necessário para aplicar o patch do Layer7 ao kernel:
Fontes do iptables - Os últimos plugins desenvolvidos do Layer7 para o iptables foram para versão 1.4.1, aconselho que instalem esta versão:
Agora copie todos os downloads para dentro de /usr/src, iremos descompactar todos eles e criar alguns links para facilitar o acesso as pastas:
# tar xvf linux-2.6.28.tar.gz (descompactando kernel)
# tar xvf netfilter-v2.21.tar.gz (descompactando netfilter)
# tar xjfv iptables-1.4.1.tar.gz2 (descompactando iptables)
# tar xvf l7-protocols-2009-05-28.tar.gz (descompactando L7)
# ln -s linux-2.6.28 /usr/src/linux (criando link do kernel com o nome de "linux")
# ln -s iptables-1.4.1 /usr/src/iptables (criando link iptables com nome de "iptables")
Arquivo de configuração .config
Esse arquivo armazena todas as informações do hardware do seu computador e todos os módulos que estão habilitados no kernel, pode-se utilizar o que está dentro do próprio
Linux, que já esta com as configurações adaptadas para seu hardware ou podemos baixar a versão novinha em folha. Para utilizar a versão do próprio Linux, copiaremos o arquivo do diretório /boot para o diretório /usr/src/linux, com o nome
.config.
# cp /boot/config-2.6.26 /usr/src/linux/.config
Para baixar a versão do .config novinha em folha usaremos o link abaixo, depois é só copiar para dentro da pasta "linux":
Todas duas formas funcionam perfeitamente...
Agora dentro da pasta "/usr/src/linux" aplicaremos o patch do Layer7 dentro do kernel. Sem aplicar o patch não é possível habilitar o Layer7.
# patch -p1 < ../netfilter-layer7-v2.21/kernel-2.6.25-2.6.28-layer7-2.21.patch
Como podemos ver, essa é a última versão do patch desenvolvida e foi para a versão "2.6.25-2.6.28" do kernel. Para habilitarmos o módulo do Layer7 que foi inserido com o patch acima utilizaremos o "make menuconfig", esse utilitário lê o arquivo de configuração (.config) e permite que habilitemos suporte a hardware ou módulos. O caminho para habilitar o módulo do Layer7 é esse:
# make menuconfig
Networking Support -> Networking Options -> Networking PacketFiltering Framework (Netfilter) -> Core Netfilter Configuration
(M) "Layer7" Match Suport
(x) "Layer7" Debugging Output
Depois de fazer todas as alterações é só clicar em exit e pedir para salvar.
Agora que o módulo foi habilitado devemos fazer a compilação e instalação, o Debian tem um utilitário que faz todas as configurações e cria um arquivo (.deb) dentro de /usr/src, esse pacote de instalação faz tudo automático, configura, compila, instala e atualiza o Grub com os novos arquivos do kernel. Dentro da pasta "linux" execute:
# make-kpkg -initrd kernel_image (faz todo processo de compilação e cria o arquivo que será instalado)
# dpkg -i [Nome Kernel] (instala o novo kernel)
Pronto... O novo kernel está instalado, agora é só reiniciar o sistema e dar o boot pelo novo kernel. Para testar o módulo do Layer7, abra o shell e execute o comando:
# modprobe ipt_layer7
Se não aparecer nenhuma mensagem de erro, meus parabéns, o kernel está compilado com suporte ao Layer7. A parte mais difícil e demorada já foi feita, agora o restante é mamão com açúcar...
2. Compilação do iptables com as bibliotecas do layer7
Agora faremos a compilação do iptables com as bibliotecas do layer7, primeiramente devemos remover o iptables que está instalado:
# apt-get remove --purge iptables
Agora copiaremos as bibliotecas do layer7 para o iptables e faremos a instalação do iptables:
# cp /usr/src/netfilter-layer7-v2.21/iptables-1.4.1.1-for-kernel-2.6.20forward/* /usr/src/iptables/extensions/
Dentro da pasta do iptables execute os comandos abaixo:
# ./configure --with-ksource=/usr/src/linux sbindir=/sbin
# make
# make install
Prontinho, o iptables já está instalado com suporte ao layer7. Para ver a versão do iptables instalada execute:
# iptables -V
Agora vamos instalar os protocolos do layer7. Dentro da pasta /usr/src/l7-protocol-2009-05-28 execute o comando:
# make install
Se você chegou até aqui, meus parabéns, o kernel e o iptables estão instalados com suporte ao layer7!
Criando algumas regras de bloqueio do Layer7
iptables -t filter -A FORWARD -m layer7 --l7proto msnmessenger -j DROP
iptables -t filter -A FORWARD -m layer7 --l7proto ares -j DROP
iptables -t filter -A FORWARD -m layer7 --l7proto skypetoskype -j DROP
iptables -t filter -A FORWARD -m layer7 --l7proto edonkey -j DROP
iptables -t filter -A FORWARD -m layer7 --l7proto tor -j DROP
Para ver os plugins de bloqueio do layer7, pode consultar a página oficial: