[FUG-BR] Misturar IPFW e PF

Evandro Nunes evandronunes12 em gmail.com
Terça Outubro 16 19:03:18 BRST 2007


On 10/16/07, Saulo Bozzi <psykhe6 em gmail.com> wrote:
> "ah e pf tambem nao filtra metade dos ipoptions e tcpoptions que o ipfw
> filtra entao como firewall propriamente dito pf eh mediocre perto do
> ipfw"
>
> relevante o dito.
>
> para mim que estou apreendendo PF e ja implementei bem basicao em my
> home, my network, le isso, é constrangedor. sei la... talvez pegou
> pesado um tiquim, ou tem um pouco de veracidade nos fatos. para eu
> opinar fica mais dificil, sei muito pouco de openbsd, free e menos
> ainda de PF e others firewall.
>
> deixo os comentarios a quem ja tem conhecimentos de causa.
>
> abraços a lista.

brother o lance é bem simples se liga, por exemplo

- prioriza ai numa queue qualquer pacotes com ip precedence maior que
0 - não consegue? é porque pf não filtra ip precedence

- agora dropa ai todo pacote ip com header ip indicando ambos, loose
source route e strict source route - também não dá né? isso quer dizer
que esse firewall não consegue minimizar impacto num IOS da cisco mais
antiguinho, que toma um DoS e manda CPU nas alturas ao receber um
pacote desse

- filtra ai um range de ip ttl nocivo (e n invalido)

brother nem coisa primária o pf faz no q diz respeito a filtro, ta
ligado, pensa ai uma coisa basica, pacote com fragmentacao errada que
nao seja tcp ou um pacotao icmp, ou pacotinho icmp de tamano invalido
- sei la um `ping of death` voce acha que o pf filtra isso? que nada

mano la pelas metade da decada de 90 a gente entrava no irc, dava um
/host pra pega ip dos nego e ai no windao 98 baixava dos site ai uns
tal de jolt.exe se liga? ou boink.exe, ai no prompt rodava esses
programinha no IP alheio so pra ve o "conection reset by peer" e ter
certeza q o rapa caiu porque deu tela azul

dai eu te pergunto, um firewall que nem evita isso da pra chama de
firewall? da nao irmao

o pf tem uma magia negra que chama scrub que até "dropa" um moonte
dessas anomalias, mas nao todas

alem disso irmao nem sempre a gente quer dropa ou normaliza ou remonta
as anomalia as vezes queremos uma resposta (um unreach host ou tcp
rst) ou apenas contabilizar ou ainda as vez so queremo classificar pra
usar noutro lugar, num tag ou queue enfim deixar a decisao pra depois

ai bro segue o drama, o que eu tenho no meu pf.conf:

altq on $ext_if priq bandwidth 900Kb queue { q_prisete, q_pricinco,
q_p2p q_def }
queue q_prisete priority 7
queue q_pricinco priority 5
queue q_p2p priority 1
queue q_def priority 3 priq(default)

e comé que eu priorizo o que me importa? no meu rc.ipfw tenho:

${fwcmd} add count altq q_prisete all from any to any iplen 280-490
tcpdatalen 220-430 tcpoptions !window

${fwcmd} add count altq q_prisete udp from table\(10\) to any
1023-55000 iptos lowdelay,mincost,!congestion iplen 10-80

${fwcmd} add count altq q_cinco all from any to any ipttl 20-48 tagged
12 // tag 12 vem do snortsamq

${fwcmd} add count altq q_p2p all from any to any iplen 120-1500
tagged 9 // tag 9 sao os p2p identificados pelo snortsamq

${fwcmd} add count alt q_def all from any to any not tagged 12 //
tag12 vem do snortsamq

 por que o mundo n é limitado a priorizar ack e usa "flags S/SA" na
verdade temo os router na frente q ja podem prioriza os ack vazio pa,
entao vamo prioriza o que interessa, e o que interessa pra mim e' meus
voip da table 10 minhas aplicacoes identificada com snort e
desprioriza os p2p se liga?

 dai eu uso altq pra prioriza mas nao posso filtra com pf pq ele nao
tem essa manha
 dai depois eu faco tudo de novo com ipfw e queue porque so prioriza
ou desprioriza nao vale, quero tambem divide banda numa proporcao que
eu acho adequada saca? e porque n faco isso com altq? porque o tal do
pf ao incorpora altq estragou o que tinha de melhor no altq: o wfq
 dai o ipfw tem um wfq melhorado pa entao la to eu usando ipfw pra
cobrir os buraco q o pf nao da conta e que eu conseguia com altq.conf
(saudade dos bsd q tinha altq.conf ja depois do pf altq de verdade nem
compila mais nos bsd)

 honestidade irmao qualquer um que acha que pf e um bom firewall e que
nao precisa de outro, ou que no mundo bsd nao precisa de ipfw e porque
nao sabe nada de firewall de verdade e nao tem consciencia do que um
firewall de verdade deveria faze, e numa comparacao no mundo real vai
ser taxado de kid perto de um administrador que use checkpoint ou ate
memo um cara bom de netfilter (linux) ou ipfw (freeba) pq na real, pf
é a melhor implementacao de NAT disponivel nos BSD: nada mais do que
isso

 e se acha que a magia negra por tras do "scrub" resolve os problema
irmao, vai le o codigo fonte do pf_norm.c mas toma cuidado pra nao cai
de costa ta valeno?

 minha opiniao, de quem tem q mexe com openbsd, freebsd, linux,
checkpoint, cisco e isa server quase todo dia irmao e nao acho a menor
graca em ver o pf nao fazer coisas que todos os outros fazem, e se
algum amante do pf rescreve as regra ai mencionada no pf de um jeito q
faz a mesma coisa e funcione ou resolve os problema que eu citei nos
exemplos, puder fazer, eu vou agradecer e ficar contente em poder me
redimir e pedir desculpa ta ligado? porque nao tenho prazer em
esculacha o firewall alheio nao

 mas os nego do openbsd esculachou o firewall do darren reed por causa
de uma mudanca na licenca, mas o ipf tinha "with op <opcao ip>" tinha
tambem "group" e tinha "short fragment" pa alem de outros lance que
nem me lembro mais de tanto tempo que faz (nostalgia dos firewall
hein) dai nem esseslance que ja tavam prontos o pf tem e era so manter

 palavras de alguem q usava openbsd com ipf e que nao ficou super
empolgado quando o pf apareceu - pq apesar de um mundo de coisa nova
muito interessante, outras coisa boa nao foram mantidas e nem
substituidas, foram removidas simplesmente, ou "resumidas" a um scrub
da vida, pa



>
> ate.
>
> Em 16/10/07, Evandro Nunes<evandronunes12 em gmail.com> escreveu:
> > irmão pode usar sem problemas
> >
> > so se lembre que o pf é processado primeiro e depois o ipfw entao por
> > exemplo se bloqueou no ipfw nao adianta ter liberado no pf
> >
> > outra coisa que voce tem que lembra irmão é que pelo motivo do pf ser
> > processado primeiro quando voce chegar no ipfw o nat do pf ja vai ter
> > acontecido, então os IPs ja vao tar traduzido, beleza?
> >
> > no mais pode usar os dois sem problema
> >
> > eu uso motivado pela mesma coisa que voce, porque o altq é muito
> > bonzinho pra quem meche com poucas filas, pra ter dezenas, centenas de
> > filhas tem q configurar uma por uma na mão, com ipfw tem pipe e queue
> > dinamico que é uma maravilha do outro mundo (ha ha exagero? sai de um
> > background com Linux e TC onde voce tem 4 arquivos de configuracao por
> > HOST pra fazer o que no ipfw agora eu faco "dinamico" com mask e voce
> > vai ve que nao eh exagero nao)
> >
> > alias irmao ve direito pra que voce precisa de pf
> >
> > pf so vale a pena se voce tem que fazer balanceamento de saida com
> > multiplos links, que no ipfw ate faz mas nao tem stick address entao
> > fode o esquema, alem disso no ipfw e muito dificil e confuso, no pf
> > faz sozinho
> >
> > se nao for isso, ou se nao for a necessidade nat-pool que o natd
> > tambem nao faz, se for um nat normal ou so saida por multiplos links
> > sem balancear dai o PF e so pra criar confusao ele e dispensavel
> > totalmente
> >
> > ah e pf tambem nao filtra metade dos ipoptions e tcpoptions que o ipfw
> > filtra entao como firewall propriamente dito pf eh mediocre perto do
> > ipfw
> >
> > mas tem umas feature mo bacana como nao matar state no reload das
> > regras, poder adicionar e remover um ip do pool, essas coisas. ah mas
> > pool volta no nat, e nisso, pf é impecavel, se voce precisa de coisa
> > avancada no nat
> >
> > On 10/15/07, João Paulo Just <jpjust em justsoft.com.br> wrote:
> > > Olá, pessoal.
> > >
> > > Gostaria de misturar o IPFW com o PF da seguinte forma: IPFW fazendo
> > > controle de banda e PF fazendo NAT.
> > >
> > > Porque isso? Porque não fazer tudo no PF?
> > >
> > > O problema é que uso controle de banda dinâmico no IPFW da seguinte forma:
> > >
> > > -- ipfw.rules --
> > > # Download
> > > ipfw pipe 1 config bw 150Kbit/s mask dst-ip 0xffffffff
> > > # Upload
> > > ipfw pipe 2 config bw 150Kbit/s mask src-ip 0xffffffff
> > >
> > > ipfw add pipe 1 ip from not me to 172.16.16.0/20 in via rl0
> > > ipfw add pipe 2 ip from 172.16.16.0/20 to not me in via tun*
> > > ----------------
> > >
> > > E não sei como fazer isso no PF, não consegui achar como fazer, e até já
> > > pedi auxílio à lista há um tempo atrás e ninguém pôde me ajudar (se
> > > alguém tiver a solução, me ajude).
> > >
> > > Então, pra continuar com o controle de banda do IPFW, qual seria a
> > > melhor forma de misturar os dois? Se eu tirar a NAT do IPFW e botar no
> > > PF direto vai funcionar tranquilo?
> > > -------------------------
> > > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> > >
> > -------------------------
> > Histórico: http://www.fug.com.br/historico/html/freebsd/
> > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
> >
> -------------------------
> 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