Firewall com Iptables e Layer 7 Filter - HOWTO

Configurando o repositório

root@localhost:~# vi /etc/apt/sources.list

#
deb ftp://ftp.br.debian.org/debian etch main contrib non-free
deb-src ftp://ftp.br.debian.org/debian etch main contrib non-free

deb ftp://ftp.br.debian.org/debian etch-proposed-updates main contrib non-free

deb http://security.debian.org/ etch/updates main contrib non-free
#deb-src http://security.debian.org/ etch/updates main contrib non-free

Atualizando a lista de pacotes

root@localhost:~# aptitude update

Instalando os fontes do kernel

root@localhost:~# aptitude install linux-source-2.6.18 kernel-package libncurses5-dev

Descompactando o kernel source que foi baixado:

root@localhost:~# cd /usr/src
root@localhost:/usr/src# tar xjvf linux-source-2.6.18.tar.bz2

Baixando os pacotes necessários

Se preferir, poderá utilizar o wget para isso.

root@localhost:/usr/src# wget -c ftp://ftp.netfilter.org/pub/iptables/iptables-1.3.8.tar.bz2
root@localhost:/usr/src# wget -c http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2008-10-04.tar.gz
root@localhost:/usr/src# wget -c http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.7.tar.gz

Descompactando os pacotes

root@localhost:/usr/src# tar xjvf iptables-1.3.8.tar.bz2
root@localhost:/usr/src# tar xzvf l7-protocols-2008-10-04.tar.gz
root@localhost:/usr/src# tar xzvf netfilter-layer7-v2.7.tar.gz

Aplicando o patch no kernel

root@localhost:/usr/src# cd linux-source-2.6.18
root@localhost:/usr/src/linux-source-2.6.18# patch -p1 < ../netfilter-layer7-v2.7/kernel-2.6.18-layer7-2.7.patch
root@localhost:/usr/src/linux-source-2.6.18# cp /boot/config-2.6.18-X-686 .config

Habilitando as opções do kernel

root@localhost:/usr/src/linux-source-2.6.18# make menuconfig
General setup  --->
  (-layer7) Local version - append to kernel release


Networking  --->
  Networking options  ---> 
    [*] Network packet filtering (replaces ipchains)  --->
      IP: Netfilter Configuration  --->
        <M> Layer 7 match support (EXPERIMENTAL)                                              
          [*] Layer 7 debugging output

Marcada as opções, podemos sair do menu salvando as configurações.

Compilando o kernel

root@localhost:/usr/src/linux-source-2.6.18# make-kpkg --initrd --us --uc kernel_image

Esse é o comando que faz a mágica.

  1. - -initrd: indica que junto com o kernel deve ser criado um arquivo “initrd”.
  2. - -us e - -uc: são opções pra criação do pacote pra não tentar assinar com gpg o pacote, nem criar changelog
  3. “kernel_image”: é a ação que o make-kpkg vai executar. Com essa ação, ele cria um pacote Debian com a imagem do kernel.

Recompilando o Iptables

root@localhost:~# cd /usr/src/iptables-1.3.8
root@localhost:/usr/src/iptables-1.3.8# patch -p1 < ../netfilter-layer7-v2.7/iptables-layer7-2.7.patch
root@localhost:/usr/src/iptables-1.3.8# chmod +x extensions/.layer7-test
root@localhost:/usr/src/iptables-1.3.8# make KERNELDIR=/usr/src/linux-source-2.6.18
root@localhost:/usr/src/iptables-1.3.8# make install KERNELDIR=/usr/src/linux-source-2.6.18
root@localhost:/usr/src/iptables-1.3.8# cd /sbin
root@localhost:/sbin# mv iptables iptables.OLD
root@localhost:/sbin# ln -s /usr/local/sbin/iptables

Configurando o l7-protocols

root@localhost:/sbin# cd /usr/src/l7-protocols-2008-10-04
root@localhost:/usr/src/l7-protocols-2008-10-04# make install

Por fim, execute um script de firewall com o suporte a layer7 para realizar os bloqueios necessários. Um exemplo de script de firewall pode ser obtido em http://downloads.fabriciovc.eti.br/iptables/


Voltar

linux/artigos/iptables-layer7-etch.txt · Última modificação: 13/01/2015 10:44 (edição externa)