[FUG-BR] Filtro L7

Evandro Nunes evandronunes12 em gmail.com
Segunda Novembro 26 16:35:14 BRST 2007


On Oct 3, 2007 3:29 PM, Daniel Loureiro <daniel em termasa.com.br> wrote:
> Bom dia,
>
> sou iniciante no FreeBSD, e gostaria de fazer filtragem na camada 7.
> Ex.: dar uma certa banda para emails, bloquear msn para alguns ips,
> fazer gráficos por protocolo, etc. No linux eu uso o iptables +
> filter-l7, mas no freeBSD eu não achei nada parecido.
>
> Eu sei que é possível fazer isso na camada 3, usando portas e ips que
> estes programas usam, mas acho isso muito "gambiarrado" e frágil.

irmão tu tem que rever um pouco seus conceitos de rede, gambiarra é
ponteiro descontrolado em kernel fazendo regexp de string, controlar
tráfego na camada 3 é a coisa mais adequada e segura possível, não é a
toa que é a forma mais tradicional

> Afinal, se eu faço shaping em uma porta, o usuário pode usar outra.
>
> Perguntando ao Google, ele me mostrou uma mensagem antiga dos
> desenvolvedores do ipfw dizendo que não implementariam layer 7 pois
> seria algo baseado em expressões regulares, o que, além de ser lento,
> poderia dar falsos-positivos ou falsos-negativos.

o que é a mais pura verdade, vide a tabela a "precisão" dos módulo L7
do linux, a maioria dos protocolos tem uma boa chance de ser
falso-positivo, e falso-negativo então é 98% de chance irmão, dai tu
se apega nos outros 2% restante se liga na marmita? se não saca só:

no linux você usa uma gambi q eles chamam de conntraq pra rastrear
conexão, e dai da um match de camada 7 (q pode ser falso) e joga pro
conntraq e no final das conta a banda ou o filtro voce controle é na
camada 3 dos pacotes q passam naquema "conn"q  ta sendo rastreada,
sacou? dai só pra ilustrar o tamanho do seu engano em achar q camada 3
é furada, camada 3 é o a única viável de verdade, aí tu se apega em
como trabalhar a classificação do jeito que deseja se liga? os linuxer
fazem em kernel, e isso pra qualquer especialista em segurança é
simplesmente errado
>
> Porém, eu já trabalhei com o filter-l7 do linux e sei que funciona muito
> bem. Além disso, dado o poder atual dos processadores, esta métdo não
> interfere na velocidade de transmissão.

entao tu sabe bem q o L7 eh apenas para classificar

>
> Entre as hipóteses que pesquisei:
> * netgraph: achei muito complexo, praticamente precisa ter que programá-lo.
> * ipfw + divert: não dá, o ipfw pega só o cabeçalho do protocolo, assim,
> não tem o que eu filtrar.
> * snort_inline: usa o mecanismo acima, e portanto em nível L2/L3;

não viaja irmaozinho, divert manda o pacote inteiro e você faz com ele
o que quiser, e nao tem nada de L2 na estoria

> * hackear o ipfw: complexo, mas parece mais simples que usar o netgraph;
> * ipfw + pipes: é possível usar pipes para enviar tráfego para meu
> programa ? o ipfw envia os dados para o pipe ou só o cabeçalho ?

envia tudo pro pipe mas nao da pra desviar pra programa nao

pra mandar pra programa tu faz com divert

>
> Enfim, alguém já teve uma experiência deste tipo, ou tem alguma idéia ?

minha experiencia é usar snortsam jogando os peers pra 2 tables e ai
tu mete eles num pipe e ja era, vai pra casa, pega um dia de folga e
vai aproveita sua namorada num dia improvavel a tarde, (ela vai
adorar) porque tudo vai funcionar sem vc precisar estar por perto,
como de costume com freebsd

>
> Sds,
> Daniel Loureiro.
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>
>


Mais detalhes sobre a lista de discussão freebsd