转载:
Conteúdo [esconder]
1 Prefacio
2 Dependencias
2.1 Kernel
2.2 Iptables
2.3 Ferramentas
2.4 Layer7
2.5 Layer7 protocols
3 Descompactando as aplicacoes
4 Aplicando os patchs de layer7
4.1 no kernel
4.2 no iptables
5 Compilando o kernel
6 Compilando o iptables
7 Instalando o l7-protocols
8 Criando uma regra
[editar]Prefacio
Tenho percebido ultimamente uma série de pessoas querendo fazer bloqueios de msn, p2p como o emule o kazaa, entre outras softwares, entao uma solucao para esta questao é usar o modulo layer7 no kernel, junto com o iptables
[editar]Dependencias
Como dependencias para trabalharmos com o layer7 temos as seguintes dependencias
kernel 2.6.14
iptables 1.3.4
gcc
make
libncurses5-dev
l7-patchs
l7-protocols
O kernel e o iptables terao de ser compilados, pois temos de aplicar patchs para isso
[editar]Kernel
entao para baixar o kernel, use o link abaixo
[url]http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2[/url]
[editar]Iptables
Para o iptables, use o link abaixo
[url]http://www.netfilter.org/projects/iptables/files/iptables-1.3.4.tar.bz2[/url]
[editar]Ferramentas
os outros pacotes, voce pode instalar pelo apt
apt-get install gcc make libncurses5-dev
[editar]Layer7
Os patchs do Layer7 voce pega no link abaixo
[url]http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.1.tar.gz[/url]
[editar]Layer7 protocols
[url]http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2006-01-22.tar.gz[/url]
[editar]Descompactando as aplicacoes
Bom, eu so ponho que voce tenha baixado todos os pacotes em /usr/src caso nao tenha feito isso, mova-os pra la
cd /usr/src
tar -xjvf netfilter-layer7-v2.1.tar.gz
tar -xjvf iptables-1.3.4.tar.bz2
tar -xjvf linux-2.6.14.tar.bz2
tar -xzvf l7-protocols-2006-01-22
mv l7-protocols-2006-01-22 /etc/l7-protocols
[editar]Aplicando os patchs de layer7
Agora com os aplicativos descompactados, podemos aplicar os patchs do layer7, vamos iniciar pelo kernel
[editar]no kernel
cd /usr/src/linux-2.6.14
patch -p1 < ../netfilter-layer7-v2.1/kernel-2.6.13-2.6.15-layer7-2.1.patch
[editar]no iptables
cd /usr/src/iptables-1.3.4
patch -p1 < ../netfilter-layer7-v2.1/iptables-layer7-2.1.patch
chmod +x extensions/.layer7-test
[editar]Compilando o kernel
Aqui eu espero que voce saiba compilar um kernel sem problemas, caso nao saiba sugiro que voce aprenda algumas coisas antes de tentar implanter este tipo de servico, pois voce esta pulando alguns passos
Para iniciarmos a compilacao do kernel vamos ate o diretorio
cd /usr/src/linux-2.6.14.3
make menuconfig
dentro do menu, vamos seguir o seguinte caminho
Networking --->
Networking options --->
Network packet filtering (replace ipchains) --->
IP: Netfilter Configuration --->
Layer 7 match support (EXPERIMENTAL)
[ ] Layer 7 debugging output
com estas opcoes selecionadas, e as outras que voce decidir, voce ja pode salvar o arquivo e compilar
[editar]Compilando o iptables
Agora que você ja compilou o kernel, e espero que voce o esteja usando agora vamos até o diretorio do iptables
cd /usr/src/iptables-1.3.4
make KERNEL_DIR=/usr/src/linux-2.6.14
make install KERNEL_DIR=/usr/src/linux-2.6.14
Os arquivos binários serão instalados em /usr/local/sbin/
ls /usr/local/sbin/
ip6tables iptables iptables-restore iptables-save
desta maneira, você pode ou passar o caminho todo no arquivo com as regras ou criar os links em /sbin
[editar]Instalando o l7-protocols
Agora precisamos instalar o l7-protocols para que o layer7 saiba como trabalhar com as regras
tar -xzvf /usr/src/l7-protocols-2006-01-22.tar.gz -C /usr/src
cd /usr/src/l7-protocols-2006-01-22
make install
[editar]Criando uma regra
Agora aqui em baixo, vou colocar um exemplo de uma regra simples:
#!/bin/bash
#
#
###############################################################
# Script de demonstracao para uso de layer7 criado por
# pruonckk le punk ( pruonckk at pruonckk.org ) para o
# tutorial de firewall com layer7 do DebianForDummies
#
# Este script nao tem nenhuma garantia, use por sua conta
# e risco, eu nao me responsabilizo por qualquer consequencia
# que voce possa ter ao usalo
#
###################################################################
#
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
#
#
echo "1" > /proc/sys/net/ipv4/ip_forward
#
#
iptables -L
iptables -t nat -L
iptables -t mangle -L
#
#
# Gerando logs do msn
#
iptables -A FORWARD -m layer7 --l7proto msnmessenger -j LOG --log-prefix "msn : "
#
# Gerando logs de emule
iptables -A FORWARD -m layer7 --l7proto edonkey -j LOG --log-prefix "edonkey : "
iptables -A FORWARD -m layer7 --l7proto gnutella -j LOG --log-prefix "gnutella : "
#
#######################
## exemplo de bloqueio
## OBS: O bloqueio deve ser feito antes do log, para que nao
## confunda o administrador
# iptables -A FORWARD -m layer7 --l7proto msnmessenger -j Drop
#
#
# Mascarando saida das conexoes
#
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# OBS: Substitua eth0 pela sua interface ligada a internet
#
Salve este arquivo em /etc/init.d com o nome de firewall
para acrescentar ele na inicializacao do debian, execute os comando abaixo
chmod +x /etc/init.d/firewall
ln -s /etc/init.d/firewall /etc/rc2.d/S99firewall
Feito isso, voce pode testar as conexoes e acompanhar os logs, e acrescentar os bloqueios de acordo com sua necessidade
Voltar
Retirado de " [url]http://www.debianfordummies.org/wiki/index.php/Firewall_com_Layer7[/url]"
Conteúdo [esconder]
1 Prefacio
2 Dependencias
2.1 Kernel
2.2 Iptables
2.3 Ferramentas
2.4 Layer7
2.5 Layer7 protocols
3 Descompactando as aplicacoes
4 Aplicando os patchs de layer7
4.1 no kernel
4.2 no iptables
5 Compilando o kernel
6 Compilando o iptables
7 Instalando o l7-protocols
8 Criando uma regra
[editar]Prefacio
Tenho percebido ultimamente uma série de pessoas querendo fazer bloqueios de msn, p2p como o emule o kazaa, entre outras softwares, entao uma solucao para esta questao é usar o modulo layer7 no kernel, junto com o iptables
[editar]Dependencias
Como dependencias para trabalharmos com o layer7 temos as seguintes dependencias
kernel 2.6.14
iptables 1.3.4
gcc
make
libncurses5-dev
l7-patchs
l7-protocols
O kernel e o iptables terao de ser compilados, pois temos de aplicar patchs para isso
[editar]Kernel
entao para baixar o kernel, use o link abaixo
[url]http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2[/url]
[editar]Iptables
Para o iptables, use o link abaixo
[url]http://www.netfilter.org/projects/iptables/files/iptables-1.3.4.tar.bz2[/url]
[editar]Ferramentas
os outros pacotes, voce pode instalar pelo apt
apt-get install gcc make libncurses5-dev
[editar]Layer7
Os patchs do Layer7 voce pega no link abaixo
[url]http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.1.tar.gz[/url]
[editar]Layer7 protocols
[url]http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2006-01-22.tar.gz[/url]
[editar]Descompactando as aplicacoes
Bom, eu so ponho que voce tenha baixado todos os pacotes em /usr/src caso nao tenha feito isso, mova-os pra la
cd /usr/src
tar -xjvf netfilter-layer7-v2.1.tar.gz
tar -xjvf iptables-1.3.4.tar.bz2
tar -xjvf linux-2.6.14.tar.bz2
tar -xzvf l7-protocols-2006-01-22
mv l7-protocols-2006-01-22 /etc/l7-protocols
[editar]Aplicando os patchs de layer7
Agora com os aplicativos descompactados, podemos aplicar os patchs do layer7, vamos iniciar pelo kernel
[editar]no kernel
cd /usr/src/linux-2.6.14
patch -p1 < ../netfilter-layer7-v2.1/kernel-2.6.13-2.6.15-layer7-2.1.patch
[editar]no iptables
cd /usr/src/iptables-1.3.4
patch -p1 < ../netfilter-layer7-v2.1/iptables-layer7-2.1.patch
chmod +x extensions/.layer7-test
[editar]Compilando o kernel
Aqui eu espero que voce saiba compilar um kernel sem problemas, caso nao saiba sugiro que voce aprenda algumas coisas antes de tentar implanter este tipo de servico, pois voce esta pulando alguns passos
Para iniciarmos a compilacao do kernel vamos ate o diretorio
cd /usr/src/linux-2.6.14.3
make menuconfig
dentro do menu, vamos seguir o seguinte caminho
Networking --->
Networking options --->
IP: Netfilter Configuration --->
com estas opcoes selecionadas, e as outras que voce decidir, voce ja pode salvar o arquivo e compilar
[editar]Compilando o iptables
Agora que você ja compilou o kernel, e espero que voce o esteja usando agora vamos até o diretorio do iptables
cd /usr/src/iptables-1.3.4
make KERNEL_DIR=/usr/src/linux-2.6.14
make install KERNEL_DIR=/usr/src/linux-2.6.14
Os arquivos binários serão instalados em /usr/local/sbin/
ls /usr/local/sbin/
ip6tables iptables iptables-restore iptables-save
desta maneira, você pode ou passar o caminho todo no arquivo com as regras ou criar os links em /sbin
[editar]Instalando o l7-protocols
Agora precisamos instalar o l7-protocols para que o layer7 saiba como trabalhar com as regras
tar -xzvf /usr/src/l7-protocols-2006-01-22.tar.gz -C /usr/src
cd /usr/src/l7-protocols-2006-01-22
make install
[editar]Criando uma regra
Agora aqui em baixo, vou colocar um exemplo de uma regra simples:
#!/bin/bash
#
#
###############################################################
# Script de demonstracao para uso de layer7 criado por
# pruonckk le punk ( pruonckk at pruonckk.org ) para o
# tutorial de firewall com layer7 do DebianForDummies
#
# Este script nao tem nenhuma garantia, use por sua conta
# e risco, eu nao me responsabilizo por qualquer consequencia
# que voce possa ter ao usalo
#
###################################################################
#
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
#
#
echo "1" > /proc/sys/net/ipv4/ip_forward
#
#
iptables -L
iptables -t nat -L
iptables -t mangle -L
#
#
# Gerando logs do msn
#
iptables -A FORWARD -m layer7 --l7proto msnmessenger -j LOG --log-prefix "msn : "
#
# Gerando logs de emule
iptables -A FORWARD -m layer7 --l7proto edonkey -j LOG --log-prefix "edonkey : "
iptables -A FORWARD -m layer7 --l7proto gnutella -j LOG --log-prefix "gnutella : "
#
#######################
## exemplo de bloqueio
## OBS: O bloqueio deve ser feito antes do log, para que nao
## confunda o administrador
# iptables -A FORWARD -m layer7 --l7proto msnmessenger -j Drop
#
#
# Mascarando saida das conexoes
#
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# OBS: Substitua eth0 pela sua interface ligada a internet
#
Salve este arquivo em /etc/init.d com o nome de firewall
para acrescentar ele na inicializacao do debian, execute os comando abaixo
chmod +x /etc/init.d/firewall
ln -s /etc/init.d/firewall /etc/rc2.d/S99firewall
Feito isso, voce pode testar as conexoes e acompanhar os logs, e acrescentar os bloqueios de acordo com sua necessidade
Voltar
Retirado de " [url]http://www.debianfordummies.org/wiki/index.php/Firewall_com_Layer7[/url]"