[FUG-BR] Migração IPTABLES > IPFW

Alexandre Biancalana biancalana em gmail.com
Terça Julho 24 12:48:43 BRT 2007


On 7/24/07, Patrick Tracanelli <eksffa em freebsdbrasil.com.br> wrote:
>
> Eu sempre recomendo algumas estrategias na hora de fazer essa migracao:
>
> 1 - Pegue tudo na CHAIN FORWARD e {PRE,POST}ROUTING do netfilter e
> converta para NAT. Se sua opcao eh IPFW, brinque MUITO com divert e natd
> ANTES de por qualquer outra regra no firewall. Faca divert seletivo,
> nunca "from any to any". Explore tudo que o natd pode fazer. Ai voce ja
> vai ter em mente como substituir qualquer regra dessas chains ai. Se
> quiser estudar pf faca a mesma coisa com "nat" e "rdr" do pf.
>
> 2 - Pegue todos os filtros da chain OUTPUT do netfilter e seja seletivo,
> separe o "output" cuja origem eh a propria maquina (o proprio firewall).
>
> 3 - Todos os outros output output, converta-os pra input. Tudo q nao eh
> roiginado do proprio firewall, pra sair por uma interface
> IMPERATIVAMENTE tem que ter saido por outra. Dai fazer regras de output
> a reveria como se faz no netfilter é entropia e desperdiço de recursos,
> pois essa eh a ultima chain processada, e pra chegar nela, o Linux "tem
> a manha" de processar tudo antes... dai a performance vai pro espco.
> Sim, vc pode achar q Linux tem boa performance, mas nao tem hehe. Nao se
> comparar com o que poderia ser... e na questao de firewall o metodo de
> processamento das regras deixa essa diferenca de decisao de engenharia
> de software muito clara.
>
> 4 - Pegue as regras da chain input e converta-as para regras de IN no
> firewall do BSD.
>
> 5 - Tenha em mente (ipfw) que o processamento eh first match wins. Se
> nao entender isso e isso ficar tao instintitvo quanto respirar, nao vai
> dar pra continuar... ai comece de novo. Se for usar pf tenha em mente
> que eh last match wins. Ou seja processa tudo e vai "se lembrando" da
> ultima decisao, salvo, se a regra tem "quick".
>
> 6 - Coloque todas as regras mais frequentes, (ipfw) como as primeiras,
> sempre que possivel.
>
> 7 - Se for usar controle de banda, oriente-o a interfaces. Evite deixar
> aplicando a todas interfaces, e oriente à interface interna (a mais
> proxima do perimetro onde a estacao se encontra).
>
> 8 - Use one_pass=0 no ipfw, com controle de banda. Senao suas regras
> assumem "allow" ao chegar no controle. E voce pode nao querer isso.
>
> 9 - Nao pegue scripts prontos, de terceiros. Faca seu proprio firewall.
>
> 10 - O que voce nao entender, leia na pagina de manual antes. É incrivel
> como "man ipfw" é clara. Leia os textos, nao se apgeue a seção de
> EXAMPLES.
>
> 11 - Faca testes. Testes e mais testes. Teste o "divert". Teste o
> "forward". Entenda a diferenca entre eles. Teste-o antes de ter q qoutra
> regra no firewall, pra nao ter confusao de comportamento.
>
> 12 - Agora pega todos aqueles conceitos de CHAIN e a sintaxe alieginena
> do iptables e ESQUECE. Faca LAVAGEM CEREBRAL. Bem vindo a um mundo onde
> voce nao tem q pensar em como usar a ferramenta, tem apenas q projetar o
> firewall.. nao saber pra que que serve o -j o -J o -s -i -a -d -l -k -n
> -j -S ou se alguma dessas opcoes nao existem, ou ainda o
> --uma-expressa-que-nao-diz-nada=valor porque acabaram-se as letras do
> alfabeto para ser uma nova opcao.



FANTÁSTICOS pontos Patrick !!!

Apenas mais uma dica, use e abuse de diretivas de log (ipfw add <deny|allow>
log  ou  <block|pass> log) que facilitam MUITO no debug de eventuais
problemas e visibilidade do que o firewall está fazendo. Só tome cuidados em
gerar muito log quando a rede for grande >300 maquinas.


Mais detalhes sobre a lista de discussão freebsd