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 seguintetcp 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=8Continuamos 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.htmle
http://www.thedeepsky.com/howto/newbie_pf_guide.phpMarcadores: firewall, freebsd