Usando o PF - Packet Filter

Neste artigo venho mostrar como é fácil usar o firewall PF, do OpenBSD, que também pode ser usado no FreeBSD (no pfsense, por exemplo) e no NetBSD. O packet filter é considerado por muitos o firewall mais seguro. Veremos o por quê.

[ Hits: 48.112 ]

Por: C00L3R_ em 20/08/2008 | Blog: http://bugsec.com.br


Exemplo 1: VPN



# Exemplo de config uso de VPN e controle de banda feita por cooler
#Config by Cooler for VPN conections"
#Primeiramente as macros
#show de bola macros nas configs
if_ppp="tun0";
if_int="tun2";
if_vpn="tun1";
ip_Juquinha="195.56.55.204";
ip_otario="192.168.2.1";
tcp_outdeny="{25}" #tabelas ips da rede etc
table persist { 10.1.0.0/16, 10.2.0.0/16, 10.3.0.0/16, 127.0.0.1/8,$
table persist { 10.1.0.0/16, 10.3.0.0/16, 192.168.2.1/32 } #opções de config
set block-policy return
set debug none
set limit frags 4096
set state-policy floating

# scrub filtra pacotes mal formados etc"
scrub in on $if_ppp all fragment reassemble
scrub in on $if_int all no-df
scrub on $if_ppp all random-id

#esta parte é para dar limite na banda em serviços"
altq on $if_ppp hfsc bandwidth 170Kb queue { std, ssh, http, ack, vpn, stdack}
queue std bandwidth 16% priority 0 hfsc (default realtime 32Kb upperlimit 170Kb)
queue ssh bandwidth 16% priority 5 hfsc (realtime 32Kb upperlimit 160Kb )
queue http bandwidth 16% priority 2 hfsc (realtime 16Kb upperlimit 160Kb )
queue stdack bandwidth 16% priority 5 hfsc ( realtime 8Kb upperlimit 160Kb)
queue vpn bandwidth 16% priority 6 hfsc ( realtime 16Kb upperlimit 170Kb)
queue ack bandwidth 16% priority 7 hfsc ( realtime 8Kb upperlimit 160Kb)

# configuração do NAT
nat on $if_ppp from {10.1.0.0/16, 127.0.0.1, $ip_otario} to 0.0.0.0/0 -> ($if_ppp:0)

# Dá uma redirecionada no tráfego de pacotes
rdr on $if_int proto tcp from any to any port 21 -> 127.0.0.1 port 8021
rdr on $if_ppp inet proto {tcp,udp} to port 60050 -> 10.1.0.1 port 60050
rdr on $if_ppp inet proto {tcp,udp} to port 60150 -> 10.1.0.1 port 60150
rdr pass on {$if_int, $if_vpn, lo0 } inet proto tcp from any to 10.1.0.254 port 80 -> $ip_otario port 80
#rdr on $if_ppp inet proto udp to port 6881 -> 10.1.0.1 port 6881
rdr pass on $if_ppp proto tcp to port 8010 -> 10.1.0.1 port 8010

# filtra tudo da macro exp e loga
block in log on $if_ppp all

#Comunicação com o Host
pass in quick on lo0
pass out quick on lo0

pass out on $if_ppp from any to any queue (std, stdack)

# Habilita VPN
pass in quick on $if_ppp proto udp from $ip_Juquinha port 5000
pass out quick on $if_ppp proto udp to $ip_Juquinha port 5000 keep state queue (vpn)

#bloqueio de algumas flags
pass out quick on $if_ppp proto tcp from any to port 22 flags S/SA keep state queue (ssh, ack)
pass out quick on $if_ppp proto tcp from any to port {80,443} flags S/SA keep state queue (http,
ack)

# configurando o tráfego
pass out quick on $if_ppp flags S/SA keep state
pass out quick on $if_ppp proto udp keep state
pass out quick on $if_ppp proto {icmp,igmp} keep state

# Habilita o proxy do FTP
pass in quick on $if_ppp inet proto tcp from any to ($if_ppp:0) user proxy keep state

# Habilita torrent
#pass in quick on $if_ppp proto tcp to port 50100:51000 keep state #depende da porta..
pass in quick on $if_ppp proto {udp,tcp} to port 60050
pass in quick on $if_ppp proto {udp,tcp} to port 60150
pass out quick on $if_ppp proto tcp from port 60150 to any keep state queue(std, stdack)

# bloqueia algumas conexões
block out quick on $if_ppp proto tcp from port $tcp_outdeny to any

Página anterior     Próxima página

Páginas do artigo
   1. introdução ao PF
   2. Exemplo 1: VPN
   3. Exemplo 2: Gateway
   4. Logs do PF
   5. Exemplo 3: configuração usada no meu servidor
   6. Conclusão
Outros artigos deste autor

Usando o NetBSD como desktop

Bind: Explorando e evitando falhas

Apache + PHP + MySQL + ftpd no OpenBSD

Usando OpenBSD como desktop

Ponteiros - Saindo de Pesadelos

Leitura recomendada

Zentyal 2.0 - Solução completa de segurança open source

Controle de banda com Slackware 10 + CBQ + Iptables + DHCP

Revisão atualizada de instalação do Iptables com Layer7

Configurando o iptables-p2p no Slackware

Análise da distribuição Mandrake Security

  
Comentários
[1] Comentário enviado por Thiago Madella em 20/08/2008 - 11:09h

Otimo artigo companheiro...parabéns.

[2] Comentário enviado por joaocdc em 20/08/2008 - 16:33h

Exelente artigo, Parabéns.

[3] Comentário enviado por drakula em 08/09/2008 - 22:12h

Parabens pelo artigo muito bom

[4] Comentário enviado por Junior Maia em 04/03/2009 - 10:03h

Amigo... li os seus artigos aqui VOL e achei "duca".... mas como sou iniciante nesse mundo BSD, tenho algumas dúvidas e gostaria q vc me ajudasse dentro do possivel!

1) O que são FLAGS? Sinceramente não entendi!
2) Scrub.. no manual diz que ele normaliza os pacotes mal formados, como assim?
3) Qual a "vantagem e desvantagem" dos pacotes passarem pelo loopback?

Aguardo anciosamente as suas respostas!

Atenciosamente... Júnior Maia!!!

[5] Comentário enviado por marcio.cardoso em 08/07/2009 - 08:31h

Bom dia.

Será que você poderia mandar documentações, tutoriais, enfim, toda documentação necessária para inicialização de trabalho com a ferramenta. Acabo de ser contratado por uma empresa que utiliza o PFSense e gostaria do máximo de informações possiveis.

Grande abraço.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts