[FUG-BR] Filtro L7

Klaus Schneider klausps em gmail.com
Sábado Novembro 24 12:50:39 BRST 2007


Em 03/10/07, Daniel Loureiro <daniel em termasa.com.br> escreveu:
>
> Marcelo Soares da Costa escreveu:
> > Filtrar conteudo = squid
> >
> > snort me parece que vc procura , pode usar ainda ipfw com dumynet para
> > controle de banda
> >
>
> obrigado pela resposta Marcelo, mas o squid eu já uso para o conteúdo
> web. Eu queria controlar o uso de aplicativos como emule, msn, etc,
> independente da porta/ip usados. Algo como isto:
>
> http://l7-filter.sourceforge.net/protocols
>
> Poderia ser algo como:
>
> -> liberar msn para o 192.168.0.1
> # ipfw add 10 allow app msn from 192.168.0.1 to any layer7
>
> -> banda reduzida para p2p
> # ipfw add 20 pipe 1 app p2p any to any layer7
>
> Tentei eu mesmo fazer um filtro da seguinte forma: criei um programa
> ouvindo a porta 5000 (com "IPPROTO_DIVERT") e usei o ipfw para
> "divertar" (alguém traduza isto ;P) todo o tráfego para ele.
>
> # ipfw add 1 divert 5000 from any to any
>
> Isto funcionou bem, mas o problema é que o ipfw só repassa o cabeçalho
> do pacote, sem os dados. Só o cabeçalho, é útil para fazer um filtro
> L2/L3 (portas/ip/mac), mas é inútil para fazer um filtro L7 (ex.,
> procurar pela palavra "proto-x-donkey" nos dados).
>
> > http://freebsd.rogness.net/snort_inline/
>
> O snort_inline usa o mesmo esquema que eu reproduzi. Como o ipfw só
> repassa cabeçalhos, o máximo que ele vai fazer é filtrar por
> ip/mac/porta, e não pelo conteúdo do pacote.
>
> Se alguém tiver mais alguma idéia...
>
> Sds,
> Daniel Loureiro.
>
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
>
>
Velho, conhece o snort2pf?

Esse deve fazer uma coisa parecida com o que tu faz:
O snort detecta uma "intrusão"(no teu caso um tipo de conexão que tu não
quer que seja estabelecida) e passa para o pf via uma table ou anchor as
conexões que devem ser bloqueadas.
Mas mesmo assim eu acho isso muito mais gambiarra que bloquear tudo e
liberar apenas o que tu quer, é muito mais prático, já que filtros em camada
7 dependem de finger prints, e como tu mesmo mencionou, finger prints mudam
quando o protocolo muda e ai já era, sem falar em protocolos p2p que usam
criptografia, ai nem a mãe diná consegue saber o que tem dentro do pacote...
Complicar é fácil, o difícil é simplificar =)


-- 
/*
* Klaus Schneider
*/


Mais detalhes sobre a lista de discussão freebsd