• Save
pf: O Filtro de Pacotes do OpenBSD
Upcoming SlideShare
Loading in...5
×
 

pf: O Filtro de Pacotes do OpenBSD

on

  • 613 views

 

Statistics

Views

Total Views
613
Slideshare-icon Views on SlideShare
610
Embed Views
3

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 3

http://www.linkedin.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    pf: O Filtro de Pacotes do OpenBSD pf: O Filtro de Pacotes do OpenBSD Presentation Transcript

    • PF: O Filtro de Pacotes do OpenBSD Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• OpenBSD o Sobre o OpenBSD o Objetivos do Projeto• pf Básico o Listas, Macros e Tabelas o Filtragem de Pacotes o NAT (Tradução do Endereço de Rede) o Redirecionamento de Tráfego• pf Avançado o Âncoras o Enfileiramento e Priorização de Tráfego o Balanceamento de Carga o Marcação de Pacotes• Referências de Pesquisa Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• Sobre o OpenBSD OpenBSD o Baseado no 4.4BSD o Códigos Fonte e Binário são Livres o Multiplataforma o Licenciamento do OpenBSD  Universidade da California (Berkeley)  Internet Systems Consortium (ISC) o Appliances Comerciais  Vantronix  Syscall Network Solutions  RTMX o Equipe de Colaboradores o Coordenado por Theo de Raadt Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• Objetivos do Projeto OpenBSD o Promover a melhor plataforma de desenvolvimento possível o Seguir e implementar padrões  ANSI, POSIX, X/Open, … o Lançar uma versão aproximadamente a cada seis meses o Prover um bom sistema multiplataforma. o Qualquer um pode usar para QUALQUER FIM, sem restrições  Produtos Comerciais  Hardware/Software para OpenBSD  Máquinas com OpenBSD Pré-instalado o Não deixar problemas sérios sem solução o Tentar ser o sistema operacional #1 em segurança Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• Listas, Macros e Tabelas pf Básico o Primeiros Passos  pfctl(8)  /etc/rc.conf.local  /etc/pf.conf o Listas  block out on fxp0 from { 192.168.0.1, 10.5.32.6 } to any  block out on fxp0 from 192.168.0.1 to any  block out on fxp0 from 10.5.32.6 to any  pass in on fxp0 from { 10.0.0.0/8, !10.1.2.3 }  pass in on fxp0 from 10.0.0.0/8  pass in on fxp0 from !10.1.2.3 o Múltiplas Listas  block out on fxp0 proto { tcp udp } from { 192.168.0.1, 10.5.32.6 } to any port { ssh telnet } Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• Listas, Macros e Tabelas pf Básico o Macros  ext_if="fxp0“  block in on $ext_if from any to any o Macros Expandidas  friends = "{ 192.168.1.1, 10.0.2.5, 192.168.43.53 }"  host1 = "192.168.1.1"  host1 = "192.168.1.2"  all_hosts = "{" $host1 $host2 "}“ o Tabelas  table <goodguys> { 192.0.2.0/24 }  table <rfc1918> const { 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }  table <spammers> persist file "/etc/pf/tables/spammers“  block in on fxp0 from { <rfc1918>, <spammers> } to any  pass in on fxp0 from <goodguys> to any Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• Filtragem de Pacotes pf Básico o Sintaxe das Regras  ação [direção] [log] [quick] [on interface] [família] [proto protocolo] [from origem [port porta]] [to destino [port porta]] [flags sinalizador/máscara] [estado] o Exemplos  pass in on $ext_if proto tcp to $web_server port www  pass in on fxp0 proto tcp from any to any port ssh flags S/SA  pass in on $ext_if proto tcp from any to $web_server port www flags S/SA synproxy state o Impressões Digitais de Sistemas Operacionais  /etc/pf.os  pass in on $ext_if from any os OpenBSD  block in on $ext_if from any os "Windows 2000" Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• NAT (Tradução do Endereço de Rede) pf Básico o RFC1918 o /etc/sysctl.conf  net.inet.ip.forwarding = 1  net.inet6.ip6.forwarding = 1 o Sintaxe das Regras  nat [pass] [log] on interface [família] from origem [port porta] to destino [port porta] -> endereço externo [grupo] [porta]• Redirecionamento de Tráfego o Exemplos  rdr on tl0 proto tcp from any to any port 80 -> 192.168.1.20  rdr on $ext_if proto tcp from any to $ext_if port 80 -> $server port 80  rdr on tl0 proto tcp from any to any port 5000:5500 -> 192.168.1.20 port 6000  rdr on tl0 proto tcp from any to any port 5000:5500 -> 192.168.1.20 port 7000:* Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• Âncoras pf Avançado o “loading”  anchor goodguys  load anchor goodguys:ssh from "/etc/anchor-goodguys-ssh" o pfctl(8) # echo "pass in proto tcp from 192.0.2.3 to any port 22" | pfctl -a goodguys -f -• pf.conf>> /etc/anchor-goodguys-www # cat o anchor "goodguys" { pass in proto tcp from 192.0.2.3 to any port 80 pass in proto tcp from 192.0.2.4 to any port to port 22 pass in proto tcp from 192.168.2.3 { 80 443 } #} pfctl -a goodguys -f /etc/anchor-goodguys-www Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• Enfileiramento e Priorização pf Avançado o Schedulers (Escalonadores)  FIFO – First IN, First OUT  CBQ – Class Based Queueing  PRIQ – Priority Queueing o Detecção do Tráfego Enfileirado  RED – Random Early Detection o Notificações de Congestionamento  ECN – Explicit Congestion Notification  RFC 3168 o ALTQ – Alternate Queueing  OpenBSD 3.0  OpenBSD 3.3 & pf Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• Enfileiramento e Priorização pf Avançado o Sintaxes  altq on interface escalonador bandwidth largura qlimit limite tbrsize tamanho queue { filas }  queue nome [on interface] bandwidth largura [priority prioridade] [qlimit limite] escalonador ( opções ) { filas } o Exemplo  altq on fxp0 cbq bandwidth 2Mb queue { std, ssh, ftp }  queue std bandwidth 50% cbq (default)  queue ssh bandwidth 25% { ssh_login, ssh_bulk }  queue ssh_login bandwidth 25% priority 4 cbq (ecn)  queue ssh_bulk bandwidth 75% cbq (ecn)  queue ftp bandwidth 500Kb priority 3 cbq (borrow red) Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• Balanceamento de Carga pf Avançado o Entrada  web_servers = "{ 10.0.0.10, 10.0.0.11, 10.0.0.13 }"  rdr on $ext_if proto tcp from any to any port 80 -> $web_servers round-robin sticky-address o Saída  lan_net = "192.168.0.0/24“  int_if = "dc0”  ext_if1 = "fxp0”  ext_if2 = "fxp1“  ext_gw1 = "68.146.224.1“  ext_gw2 = "142.59.76.1“  pass in on $int_if route-to { ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin from $lan_net to any keep state Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• Marcação de Pacotes pf Avançado o Atribuição de Etiquetas  pass in on fxp0 all tag [etiqueta]  pass in on $int_if all tag $int_tag_name keep state o Exemplo  pass in on $int_if tag INT_NET  pass in quick on $int_if proto tcp to port 80 tag INT_NET_HTTP  pass in quick on $int_if from 192.168.1.5 Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD• Marcação de Pacotes pf Avançado o Verificação de Etiquetas  pass out on $ext_if tagged INT_NET  pass out on $ext_if ! tagged WIFI_NET o Marcação de Quadros Ethernet # ifconfig bridge0 rule pass in on fxp0 src 00:DE:AD:BE:EF:00 tag USER1 in on fxp0 tagged USER1  pass Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD • OpenBSD.org Referências de Pesquisa o http://www.openbsd.org/faq/index.html o http://www.openbsd.org/faq/pf/index.html o http://www.openbsd.org/papers • The Book of PF, 2nd Edition o http://nostarch.com/pf2.htm • Undeadly (OpenBSD Journal) o http://www.undeadly.org • Google o http://www.google.com/bsdAlgumas das imagens utilizadas nesta apresentação foram copiadas do exemplar em formato PDF do livro “The Book of PF”, escrito por Peter Hansteen;O diagrama de exemplo para CARP e pfsync foi copiado do paper “Introduction to PF”, de Ryan McBride, disponível no sítio oficial do projeto OpenBSD. Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam
    • PF: O Filtro de Pacotes do OpenBSD Workshop de Tecnologia em Comunicação de Dados – WTCD 2011 Segurança de Redes de Computadores usando PF: O Filtro de Pacotes do OpenBSD – Vinícius Zavam