[FUGSPBR] Re: [extendido] Ipfw barrando telnet.
Patrick Tracanelli
eksffa em freebsdbrasil.com.br
Qua Dez 4 13:51:07 BRST 2002
Capriotti wrote:
> HAHAHAHA !
>
> Tá falando japonês agora, meu filho ??? hehehe
>
> Essa ficou extremamente hermética para quem não estudou pelo menos por
> 15 minutos a man do ipfw !
>
> hehehe
>
> []s
>
>
>> add <n> drop log tcp from not 200.200.200.200/32 to me in recv
>> <interface>
hahaha vixi, eh pra poupar processamento. Acho que minha convivencia com
o Jean e suas solucoes "embedded" de freebsd me fizeram ficar
paranoico quanto a processamento (afinal quando se tem processador de
2Ghz blz, mas quando se tem de 50 a 80 mhz :/).
Tipo, "in recv" tu garante que o pacote ja sera bloqueado ao entrar pela
interface. Se nao coloca "in" ele fica verificando in recv e out xmit
(gasta processamento), entao vamos barrar logo na entrada. O "not XX"
faz o host virar uma exclusao `a regra, bem bunitinho alem de economizar
ciclos de processamento economiza memoria (ja que nao precisa existir
outra regra carregada tratando a situacao).
Essa e' uma sintaxe generica (serve pro IPFW1 e IPFW2) mas quem tiver
IPFW2 pode abusar das virgulas, {}, or e and. Segundo a explicacao do
Luigi Rizzo (mantenedor do IPFW) e' interessante trabalhar assim pois a
economia de processamento e memoria fica clara, ja que as regras vao ser
interpretadas como (analogia dele) uma especie de meta-ACL interna (com
instrucoes `a la bpf)
por exemplo
add drop log icmp from 10.0.0.0/6{8,16,27} to not { 200.200.200.200/32
or 200.200.222.0/24 } keep-state out xmit wi0 icmtypes 0,18,13
seria mais ou menos (a forma como eu entendi as analogias do kra)
ACL-from = 10.0.0.0/6, 10.0.0.0/8, 10.0.0.0/16, 10.0.0.0/27
ACL-to = !(200.200.200.200/32), !(200.200.222.0/24)
<subc 1> = acao, protocolo
<subc 2> = direcao, opcoes
enta a regra se constitui em
<subc 1> ACL-from ACL-to <subc 2>
A economia se da onde <subc 1> e <subc 2> sao definicoes constantes em
memoria pra aquela regra, e as variaveis ACL-from/ACL-to sao as unicas
que precisam ser "procesadas" durate a verificacao de "matching". Caso
exista o "match" a acao (drop log) que ja estava em memoria e'
processada. Senao passa pra proxima regra.
No IPFW1 *sem* usar "not" seriam necessarias *mais de* 8 regras, todas
elas carregadas e com as acoes e opcoes (<subc 1> e <subc 2>)
multiplicadas entre as regras (processamento redundante).
Eu nao sei se questao do processamento das instrucoes funcionam da mesma
forma para icmptypes e ipoptions por exemplo. Caso funcione, teriamos
uma especie de ACL 3 controlando "icmptype 0 ou icmptype 8 ou...". Nao
sei se seria uma constante a verificacao pelas N opcoes ou variavel.
Teria que ler o codigo ou apurrinhar o luigi hehehe.
Eh, me extendi no assunto, mas espero ter me justificado hehe.
--
Atenciosamente,
Patrick Tracanelli
FreeBSD Brasil LTDA.
The FreeBSD pt_BR Documentation Project
http://www.freebsdbrasil.com.br
patrick em freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"
_______________________________________________________________
Sair da Lista: http://www2.fugspbr.org/mailman/listinfo/fugspbr
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/
Mais detalhes sobre a lista de discussão freebsd