Incrementando seu Firewall com o Layer 7 Filter
Neste artigo demonstro como compilar, instalar e utilizar o L7 Filter, um filtro de pacotes que se baseia no protocolo da aplicação utiliza.
Parte 3: Descompactando, compilando e instalando
Para facilitar, vamos descompactar todos os arquivos em /usr/src.
# tar -zxvf netfilter-layer7-vX.X.X.tar.gz -C /usr/src
# tar -zxvf l7-protocols-YYYY_MM_DD.tar.gz -C /usr/src
# tar -jxvf iptables-1.X.XX.tar.bz2 -C /usr/src
# tar -jxvf linux-2.6.XX.tar.bz2 -C /usr/src
(se você estiver utilizando a versão do kernel de www.kernel.org)
OBS: É necessário que as coisas sejam feitas nesta ordem.
3.1) Patch do kernel (aqui vou considerar que você já possui os fontes do seu kernel no diretório /usr/src/linux-2.6.xx e que um link simbólico de nome /usr/src/linux aponta para este diretório).
Entre no diretório /usr/src/linux e execute o seguinte comando:
# patch -p1 < ../netfilter-layer7-vX.X.X/kernel-2.6-layer7-X.X.X.patch
Após isso, você deve habilitar algumas coisas no kernel:
3.2) Patch do iptables
Entre no diretório /usr/src/iptables-1.X.XX e execute o seguinte comando:
# patch -p1 < ../netfilter-layer7-vX.X.X/iptables-layer7-X.X.X.patch
Compile o iptables com o comando:
Conectiva:
# make BINDIR=/usr/bin LIBDIR=/usr/lib MANDIR=/usr/man
Debian Sarge:
# make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man
e instale com o comando:
Conectiva:
# make BINDIR=/usr/bin LIBDIR=/usr/lib MANDIR=/usr/man install
Debian Sarge:
# make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install
3.3) Arquivos de definições de protocolos
Entre no diretório /usr/src/l7-protocols-YYYY_MM_DD e digite o comando:
# make install
Isso vai criar um diretório /etc/l7-protocols e copiar os arquivos para lá. Simples não? Quando for atualizar as definições basta repetir estes passos (descompactar o arquivo com as definições atualizadas, entrar na pasta e executar "make install").
# tar -zxvf netfilter-layer7-vX.X.X.tar.gz -C /usr/src
# tar -zxvf l7-protocols-YYYY_MM_DD.tar.gz -C /usr/src
# tar -jxvf iptables-1.X.XX.tar.bz2 -C /usr/src
# tar -jxvf linux-2.6.XX.tar.bz2 -C /usr/src
(se você estiver utilizando a versão do kernel de www.kernel.org)
OBS: É necessário que as coisas sejam feitas nesta ordem.
3.1) Patch do kernel (aqui vou considerar que você já possui os fontes do seu kernel no diretório /usr/src/linux-2.6.xx e que um link simbólico de nome /usr/src/linux aponta para este diretório).
Entre no diretório /usr/src/linux e execute o seguinte comando:
# patch -p1 < ../netfilter-layer7-vX.X.X/kernel-2.6-layer7-X.X.X.patch
Após isso, você deve habilitar algumas coisas no kernel:
- Em "Device Drivers -> Networking support -> Networking options" marque a opção "Network packet filtering". Depois entre nela e em "Netfilter Configuration" e marque "Layer 7 match support". Você provavelmente vai querer marcar outras opções, ou talvez todas elas.
- Se você pretende utilizar o CBQ ou o HTB para limitação de banda (eu utilizo o HTB), você deve verificar se eles estão selecionados em "Device Drivers -> Networking support -> Networking options -> QoS and/or fair queueing". Aqui eu tenho todas as opções selecionadas.
- Opcionalmente você pode editar o arquivo Makefile do Kernel e na linha EXTRAVERSION você acrescenta a um texto sugestivo (como L7 ou algo assim ...). Esse texto vai aparecer junto da versão do Kernel quando você digitar "uname -r".
3.2) Patch do iptables
Entre no diretório /usr/src/iptables-1.X.XX e execute o seguinte comando:
# patch -p1 < ../netfilter-layer7-vX.X.X/iptables-layer7-X.X.X.patch
Compile o iptables com o comando:
Conectiva:
# make BINDIR=/usr/bin LIBDIR=/usr/lib MANDIR=/usr/man
Debian Sarge:
# make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man
e instale com o comando:
Conectiva:
# make BINDIR=/usr/bin LIBDIR=/usr/lib MANDIR=/usr/man install
Debian Sarge:
# make BINDIR=/sbin LIBDIR=/lib MANDIR=/usr/share/man install
3.3) Arquivos de definições de protocolos
Entre no diretório /usr/src/l7-protocols-YYYY_MM_DD e digite o comando:
# make install
Isso vai criar um diretório /etc/l7-protocols e copiar os arquivos para lá. Simples não? Quando for atualizar as definições basta repetir estes passos (descompactar o arquivo com as definições atualizadas, entrar na pasta e executar "make install").