Muitos administradores de rede sofrem muito com redes P2P ou Peer-to-Peer,
por isso resolvi escrever este tutorial, a intenção é facilitar um pouco as
coisas, geralmente, uma rede Peer-to-Peer (P2P) consume
muita banda de internet e na maiorias das vezes desnecessariamente, sendo assim
neste tutorial estaremos bloqueando o uso de protocolo P2P.
Para saber mais sobre redes P2P, clique
aqui!
Este tutorial foi escrito baseado em vários hotwos encontrados na internet;
Pacotes;
iptables-1.3.5.tar.bz2
iptables-p2p-0.3.0a.tar.gz
Todos os procedimentos realizados abaixo, deverão ser realizado pelo usuário
root;
Começando e organizando a instalação, para isso vamos criar um diretório onde os downloads serão salvos, para manter também a instalação organizada.
Criando o Diretório de instalação;
# mkdir /tmp/source
Adquirindo, descompactando e preparando o source do iptables.
# cd /tmp/source
# wget ftp://ftp.netfilter.org/pub/iptables/iptables-1.3.5.tar.bz2
# tar xvfj iptables-1.3.5.tar.bz2
# cd iptables-1.3.5
# mkdir /usr/include/iptables
# cp -R include/* /usr/include/iptables/
substituir a linha (5) do arquivo /usr/include/iptables/libiptc/libiptc.h , para:
#include "/usr/include/iptables/libiptc/ipt_kernel_headers.h"
Adquirindo, descompactando e preparando o source do iptables-p2p
# cd /tmp/source
# wget http://switch.dl.sourceforge.net/sourceforge/iptables-p2p/iptables-p2p-0.3.0a.tar.gz
# tar -zxvf iptables-p2p-0.3.0a.tar.gz
# cd iptables-p2p-0.3.0a
Substituir a linha (20) do arquivo iptables/Makefile , para:
IPTABLES = /usr/sbin/iptables
Substituir a linha (23) do arquivo iptables/libipt_p2p.c , para:
#include "/usr/include/iptables/iptables.h"
Alterar o bloco abaixo no arquivo iptables/libipt_p2p.c:
static struct iptables_match p2p =
{
NULL,
"p2p",
IPTABLES_VERSION,
IPT_ALIGN(sizeof(struct ipt_p2p_info)),
IPT_ALIGN(sizeof(struct ipt_p2p_info)),
&help,
&init,
&parse,
&final_check,
&print,
&save,
opts
};
Para:
static struct iptables_match p2p =
{
NULL,
"p2p",
+ 0,
IPTABLES_VERSION,
IPT_ALIGN(sizeof(struct ipt_p2p_info)),
IPT_ALIGN(sizeof(struct ipt_p2p_info)),
&help,
&init,
&parse,
&final_check,
&print,
&save,
opts
};
Agora vamos compilar;
# cd /tmp/source/iptables-p2p-0.3.0a
# make
Instalar o modulo no Kernel
# cd /tmp/source/iptables-p2p-0.3.0a/kernel
# insmod ipt_p2p.o
copiar o modulo para o iptables
# cd /tmp/source/iptables-p2p-0.3.0a/iptables
# cp libipt_p2p.so /usr/lib/iptables
Agora que o modulo já esta em execução, vamos copia-lo para o diretório
do kernel, para que no próximo boot ele seja executado;
# cd /tmp/source/iptables-p2p-0.3.0a/kernel/ipt_p2p.o /lib/modules/`uname
-r`/kernel/net/ipv4/netfilter/ipt_p2p.o
Agora quando a maquina for iniciada teremos que executar o com modprobe
ipt_p2p, para que o modulo seja habilitado, sendo assim vou salvar o
comando na ultima linha do meu rc.modules, faça como quiser no
seu, caso tenha um script de firewall, este comando pode ser salvo
nele também, ai já vai de sua preferência;
echo "/sbin/modprobe ipt_p2p" >> /etc/rc.d/rc.modules
Pronto, instalação completa, segue aqui algumas regras
Para bloquear o FORWARD de todos os pacotes p2p use:
# iptables -A FORWARD -m p2p -j DROP
Para bloquear o FORWARD de pacotes p2p, protocolo FastTrack (Kazaa, Grokster...)
# iptables -A FORWARD -m p2p --p2p-protocol fasttrack -j DROP
Agora basta implementar seu firewall. |