MAL - Memória Auxiliar do Lutieri

sábado, dezembro 01, 2007

Rapidinhas do pfctl [atualizado]

Por mim eu colocava todo o pfctl.man aqui. Mas por hora apenas o mais usado.

Ultimamente tive problemas ao carregar as regras. Como sempre gosto de saber o que está acontecendo nos bastidores. Portanto segue como ativar o modo versoso do pf:

pfctl -vvf /etc/pf.conf

Existem, ainda, algumas alternativas que podem ajudar a diagnosticar onde está o problema. Como por exemplo carregar primeiro as regras de NAT e redirecionamento e depois as de filtragem. Segue exemplos:

pfctl -f /etc/pf.conf Carrega o arquivo pf.conf
pfctl -nf /etc/pf.conf Analisa o arquivo, mas não o carrega
pfctl -Nf /etc/pf.conf Carrega apenas as regras NAT do arquivo
pfctl -Rf /etc/pf.conf Carrega apenas as regras de filtragem do arquivo

No momento que eu estava escrevendo essa nota, artigo ou seja lá como quiser chamar, eu estava tentando descobrir pra que raios servia a opcão -g do pfctl. No manual apenas diz que inclui na saída informacões úteis pra debug. Pois bem, achei uma utilidade.

Quando você está usando o tcpdump pra capturar o tráfego que passa pelo PF com o comando:

tcpdump -n -e -ttt -i pflog0
você vai ter informacões, da captura, como essa. Interrompendo nossa transmissão:
Essa interface eh padrão no openbsd no freebsd eh necessário compilar o kernel com ela ativa. Na versao 7.1-RELEASE e provavelmente apartir da 7?!?! a interface pflog0 jah estah compilada como modulo. Portanto para usar basta:

kldload pflog
E caso voce esteja capturando alguns pacotes que exibem o seguinte

tcp 40 [bad hdr length 0 - too short, <>


tente o comando:

tcpdump -s 1600 -n -e -ttt -i pflog0


Dica tirada daqui:
http://www.freebsd.org/cgi/man.cgi?query=pflogd&sektion=8


Continuamos com nossa transmissão normal:

Sep 17 17:07:37.443421 rule 14/0(match): pass in on fxp0: 55.66.77.88.14373 > 66.92.15.252.22: S 3920978973:3920978973(0) win 5840 (DF)

Isso diz que esse pacote coincidiu com a regra #14. Pois bem, é aí que entra o nosso amigo -g. Com o comando: pfctl -g -s rules. São exibidas as regras e os números que o PF alocou pra cada uma.


Existe também um modo de debug que pode ser usado. Ele é ativado através da opcão -x. E pode ter os seguintes valores:
none - Don't generate debug messages.
urgent - Generate debug messages only for serious errors.
misc - Generate debug messages for various errors.
loud - Generate debug messages for common conditions.

Exemplo:
pcftl -x urgent
Essas mensagens vão para /var/log/messages


Alguns comandos que você vai usar 90% do tempo:

































pfctl -d Diable the packet filter
pfctl -e Enable the packet filter
pfctl -Fa -f /etc/pf.conf Flush all (nat, filter, queue, state, info, table) rules and reload from
the file /etc/pf.conf
pfctl -s rules Report on the currently loaded filter ruleset.
pfctl -s nat Report on the currently loaded nat ruleset.
pfctl -s state Report on the currently running state table (very useful).
pfctl -v -n -f /etc/pf.conf This does not actually load any rules, but allows you to check for errors
in the file before you do load the ruleset. This is obviously good for testing.


Mais informacões acesse: http://www.openbsd.org/faq/pf/pt/index.html
e http://www.thedeepsky.com/howto/newbie_pf_guide.php

Marcadores: ,

0 Comentários:

Postar um comentário

<< Home



Chat with Lutieri G. B.

Subscribe in a reader