[FUG-BR] Dúvida com regra de PF

Mario Lobo lobo em bsd.com.br
Sexta Junho 15 19:08:05 BRT 2012


On Friday 15 June 2012 16:20:18 João Mancy wrote:
> Boa tarde,
> 
> Pessoal estou tentando bloquear alguns IP's externos - facebook por
> exemplo.
> 
> Então, eu declaro meu pf.conf
> 
> 
> #criei uma table com os liberados
> table < ips_liberados > persist file "/etc/pf/pf_ips_liberados.txt"
> 
> #ja tentei assim também:
> block out log proto  { tcp, udp }  from any  to  { any, !< ips_bloqueados >
> } port 443
> 
> Inicialmente liberou e bloqueou, após isso.. nunca mais consegui.
> 
> A pergunta é:
> 
> Como vocês bloqueiam sites com PF de forma correta e com regras de
> excessões?
> 
> obrigado.

João;

Pode ser até que eu esteja errado ou que todos discordem de mim mas eu tenho 
raciocinado da seguinte forma:

O pf é um firewall de "last match", ou seja, o pacote tem atravessar TODAS as 
regras para saber qual a última que bateu. Para conter essa varredura total 
recorrente das regras, todos os meus "pass" são "quick".

Deixa eu te dar um exemplo real em produção:

# Redirects
 # Squid

rdr on $lab_if inet proto tcp from any to any port 3128  -> 127.0.0.2 port 
3128
rdr on $aln_if inet proto tcp from { <servers>, $hiperdot } to any port 3128  
-> 127.0.0.2 port 3128
rdr on $aln_if inet proto tcp from any to any port 3128  -> 127.0.0.3 port 
3128

# Filtering

  #--- Squid
pass in quick on $lab_if inet proto tcp from any to 127.0.0.2 port 3128 flags 
S/SA keep state
pass in quick on $aln_if inet proto tcp from any to 127.0.0.2 port 3128 flags 
S/SA keep state
pass in quick on $aln_if inet proto tcp from any to 127.0.0.3 port 3128 flags 
S/SA keep state


Estas 3 "pass" são regras #1,2 e 3. 

Salvo se eu não entendi como funciona o "quick", pra que deixar o 
processamento ir atá a regra # 207 (block all) se na regra #1 eu JA SEI que 
eles tem que passar?

ou seja se a sua regra for:

block out quick log proto  { tcp, udp }  from any  to  < ips_bloqueados > port 
443

Vai bloquear de imediato todos para < ips_bloqueados > port 443.


Por favor, se o meu raciocínio estiver errado, me corrijam.


-- 
Mario Lobo
http://www.mallavoodoo.com.br
FreeBSD since 2.2.8 [not Pro-Audio.... YET!!] (99% winblows FREE)


Mais detalhes sobre a lista de discussão freebsd