Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
30 de setembro de 2010
1 verso 1.7.1 (Revision: 6538 ) a A ultima verso deste tutorial pode ser encontrada em: ftp://ftp.registro.br/pub/doc/tutorial-dnssec.pdf a 1 / 126
Objetivos
Introduzir os conceitos de DNSSEC Apresentar um exemplo prtico de DNSSEC utilizando BIND a Incentivar a utilizao de DNSSEC ca
2 / 126
Cronograma
DNS Conceitos Publicao ca Arquitetura Vulnerabilidades DNSSEC Conceitos Resource Records Funcionamento DNS Vs DNSSEC
3 / 126
4 / 126
5 / 126
Hierarquia
DNS database
"."
UNIX lesystem
6 / 126
com
br
Zona br
org
eng
Zona eng.br Zona foo.eng.br
nom silva
Zona nom.br
gov
Zona gov.br
Delegao ca
fazenda
foo
joao
tutorial
Zona tutorial.foo.eng.br Zona joao.silva.nom.br Zona fazenda.gov.br
Indica uma transferncia e de responsabilidade na administrao apartir ca daquele ponto na rvore a DNS
Domnio br
7 / 126
Reserva o direito da pessoa f sica ou jur dica sobre um determinado nome de endereo na Internet. c Dom nios no registrados no podem ser encontrados na Internet. a a
8 / 126
Formas de registro
Sistema WEB
A interface WEB permite de maneira prtica gerenciar os dom a nios de qualquer pessoa f sica ou jur dica.
http://registro.br/suporte/tutoriais/novo-registro.html
9 / 126
Publicao quasi-on-line ca
O que uma Publicao? e ca
As modicaes que so realizadas pela interface de provisionamento no co a a so efetivadas imediatamente. A cada intervalo de tempo pr-determinado a e ocorre uma publicao DNS a qual atualiza o sistema DNS. ca
10 / 126
Publicao quasi-on-line ca
O que uma Publicao? e ca
As modicaes que so realizadas pela interface de provisionamento no co a a so efetivadas imediatamente. A cada intervalo de tempo pr-determinado a e ocorre uma publicao DNS a qual atualiza o sistema DNS. ca As publicaes DNS ocorrem a cada 30 minutos co No caso do registro de um novo dom ele j estar vis na nio a a vel Internet aps a prxima publicao. o o ca No caso da alterao de dados de um dom ca nio, aps a prxima o o publicao, o dom passar por um per ca nio a odo de transio que ca poder durar at 24 horas (tempo necessrio para que o TTL do a e a dom expire e elimine o cache). nio
10 / 126
Resource Records
Os dados associados com os nomes de dom esto contidos em nio a Resource Records ou RRs (Registro de Recursos) So divididos em classes e tipos a Atualmente existe uma grande variedade de tipos O conjunto de resource records com o mesmo nome de dom nio, classe e tipo denominado RRset e
Indica onde comea a autoridade a zona c Indica um servidor de nomes para a zona Mapeamento de nome a endereo c Mapeamento de nome a endereo c Mapeia um nome alternativo
(IPv4) (IPv6) (servidor de email)
Tipos de servidores
Servidor Recursivo
Ao receber requisies de resoluo de nomes, faz requisies para os co ca co servidores autoritativos e conforme a resposta recebida dos mesmos continua a realizar requisies para outros servidores autoritativos at co e obter a resposta satisfatria o
Servidor Autoritativo
Ao receber requisies de resoluo de nome, responde um endereo caso co ca c possua, uma referncia caso conhea o caminho da resoluo ou uma e c ca negao caso no conhea ca a c
13 / 126
Resolver
Servio localizado c no cliente que tem como responsabilidade resolver as requisioes DNS c para diversos aplicativos
14 / 126
15 / 126
16 / 126
17 / 126
18 / 126
19 / 126
"."
em ex
se cia
rv
fe Re
BR
ENG
ex em
Resolver
exemplo.foo.eng.br ?
g.b
r?
FOO
TUTORIAL
20 / 126
"."
em ex
se cia
rv
fe Re
BR
ENG
ex em
20
0.1
Resolver
exemplo.foo.eng.br ?
60
g.b
r?
FOO
TUTORIAL
21 / 126
"."
em ex
se cia
rv
fe Re
BR
ENG
ex em
20
0.1
exemplo.foo.eng.br ?
60
g.b
200.160.10.251
r?
FOO
TUTORIAL
Resolver
22 / 126
"."
em ex
se cia
rv
fe Re
BR
ENG
ex em
20
0.1
exemplo.foo.eng.br ?
60
g.b
200.160.10.251
r?
FOO
TUTORIAL
Resolver
23 / 126
Fluxo de dados
1 2 3 4
Resolver faz consultas no Recursivo Recursivo faz consultas no Master ou Slave Master tem a zona original (via arquivo ou Dynamic Update) Slave recebe a zona do Master (AXFR ou IXFR)
24 / 126
Vulnerabilidades
25 / 126
Soluoes c
26 / 126
Exemplo de Ataque 1
Man-in-The-Middle
Resolver
27 / 126
Exemplo de Ataque 1
Man-in-The-Middle
Atacante
Resolver
exemplo.foo.eng.br ?
28 / 126
Exemplo de Ataque 1
Man-in-The-Middle
Atacante
exemplo.foo.eng.br ?
( ) 0 1 2 ( 3 ( 4 5 (
. . .
Resolver
29 / 126
Exemplo de Ataque 1
Man-in-The-Middle
"."
Atacante
BR
ENG
exemplo.foo.eng.br ?
. . .
20 . 6.2 2.1 2
C D E F
FOO
TUTORIAL
Resolver
30 / 126
Exemplo de Ataque 2
Poluio de Cache ca
31 / 126
Exemplo de Ataque 2
Poluio de Cache ca
32 / 126
Exemplo de Ataque 2
Poluio de Cache ca
33 / 126
Exemplo de Ataque 2
Poluio de Cache ca
34 / 126
Exemplo de Ataque 2
Poluio de Cache ca
35 / 126
Exemplo de Ataque 2
Poluio de Cache ca
"."
BR
ex em
ENG
g.b
r?
20 7. 46 .2 32 .1 82
FOO
TUTORIAL
Resolver Atacante
36 / 126
Exemplo de Ataque 2
Poluio de Cache ca
"."
BR
ex em
ENG
g.b
r?
Resolver Atacante
20 7. 46 .2 32 .1 82
20
0.1
60
.10
.2
FOO
TUTORIAL
37 / 126
Segmentos compartilhados L2 ponto-multiponto Ethernet (no bridge 802.1d) a Ethernet Wireless (802.11)
38 / 126
Segmentos compartilhados L2 ponto-multiponto Ethernet (no bridge 802.1d) a Ethernet Wireless (802.11)
38 / 126
Soluoes c
TSIG
Transaction Signatures RFC 2845 Autorizao de AXFR (atualizao total), IXFR (atualizao das ca ca ca modicaes) e Dynamic Updates (atualizao imediata) co ca Autenticao do servidor cache forwarder ca Trfego assinado com a chave compartilhada a
39 / 126
Soluoes c
TSIG
Transaction Signatures RFC 2845 Autorizao de AXFR (atualizao total), IXFR (atualizao das ca ca ca modicaes) e Dynamic Updates (atualizao imediata) co ca Autenticao do servidor cache forwarder ca Trfego assinado com a chave compartilhada a
DNSSEC
Prov segurana para a resoluo de endereos e c ca c Funciona como um caminho alternativo para a vericao de ca autenticidade Suas vericaes ocorrem antes de diversas aplicaes de segurana co co c (SSL, SSH, PGP, etc...)
39 / 126
Extenso da tecnologia DNS a (o que existia continua a funcionar) Possibilita maior segurana para o usurio na Internet c a (corrige falhas do DNS) Atualmente na verso denominada DNSSEC bis com opcional NSEC3 a
40 / 126
Garantias de DNSSEC
O que garante?
Origem (Autenticidade) Integridade A no existncia de um nome ou tipo a e
41 / 126
Garantias de DNSSEC
O que garante?
Origem (Autenticidade) Integridade A no existncia de um nome ou tipo a e
41 / 126
fonte: http://www.xelerance.com/dnssec/
42 / 126
Utilizao de DNSSEC ca
43 / 126
Utilizao de DNSSEC ca
43 / 126
Chaves Assimtricas e
Chaves Assimtricas e
DNSKEY Chave pblica u RRSIG Assinatura do RRset (somente registros com autoridade) DS Delegation Signer (Ponteiro para a cadeia de conana) c NSEC Aponta para o prximo nome e indica quais os tipos dos RRsets o para o nome atual
46 / 126
DNSKEY
E um resource record que armazena a chave pblica da zona u
Exemplo
foo.eng.br. 900 IN DNSKEY 256 3 5 ( AwEAAeZPN2yMs9q6kgYjFUblEwjCnWWcPq+TGcJrD5ga XXAbP5MAqIkgZ5J4TU1mmpL1A8gMfd/wUmBkVipXR8FK HRajBZSRfgeKnKaQtrxNZ32Ccts2F6Ylv9WaLXtiqebg OZtuJFpQr6pnIt/FoOI+I7BUSNrX28VTq4jXu/qTrmM/ ) ; key id = 62745
47 / 126
RRSIG
E um resource record que contm a assinatura de um RRset e espec co com uma determinada chave (DNSKEY) Possui uma validade inicial (inception) e nal (expiration)
Exemplos de RRset:
foo.eng.br. foo.eng.br. IN NS ns1.foo.eng.br. IN NS ns2.foo.eng.br.
ns1.foo.eng.br.
IN A 200.160.3.97
ns2.foo.eng.br.
IN A 200.160.3.97
48 / 126
RRSIG
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type Covered | Algorithm | Labels | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Original TTL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Signature Expiration | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Signature Inception | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Key Tag | / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Signers Name / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / / / Signature / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Exemplo
foo.eng.br. 900 IN RRSIG SOA 5 3 900 20070617200428 ( 20070518200428 62745 foo.eng.br. glEeCYyd/CCBfzH64y0RAQf9OxYDsI4xuBNaam+8DZQZ xeoSLQEEtwmp6wBtQ7G10wSM9nEjRRhbZdNPNKJMp2PE lLLgLI+BLwdlz0t8MypcpLOaTm9rc7pP7UR5XLzU1k8D m6ePW1bNkId7i0IPSghyoHM7tPVdL2GW51hCujA= ) 49 / 126
DS
E um hash do Record DNSKEY Serve para informar que existe uma cadeia de conana entre um dom c nio e seus sub-dom nios.
Indica:
que a zona delegada est assinada a qual a chave usada na zona delegada
50 / 126
DS
Cadeia de Conana c
O Record DS um ponteiro para a e cadeia de conana, a qual garante a c autenticidade das delegaes de uma co zona at um ponto de conana e c uma chave ancorada
51 / 126
DS
Exemplo
foo.eng.br. IN DS 817 5 1 EAEC29E4B0958D4D3DFD90CC70C6730AD5880DD3
52 / 126
DS
E poss obter os DS da zona utilizando o sistema Whois. vel
53 / 126
Exemplo
foo.eng.br. 900 IN NSEC ns1.exemplo.foo.eng.br. NS SOA RRSIG NSEC DNSKEY
Prova de no existncia, com pr-assinatura, sem a necessidade de chaves a e e on-line para assinatura on-demand. Diminuindo a possibilidade de DOS.
54 / 126
NSEC
Respostas NXDOMAIN
- Um ou mais registros NSEC indicam que o nome ou a sintetizao de ca um wildcard no existe a
$ dig @200.160.10.251 zzz.foo.eng.br SOA +dnssec ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 18301 ;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 1 ;; QUESTION SECTION: ;zzz.foo.eng.br. IN SOA ;; AUTHORITY SECTION: foo.eng.br. 0 IN SOA ns1.foo.eng.br. hostmaster.foo.eng.br. 1 3600 3600 3600 900 foo.eng.br. 0 IN RRSIG SOA 5 3 900 20070617200428 20070518200428 62745 foo.eng.br. glEeCYyd/CCBfzH64y0RAQf9OxYDsI4xuBNaam+8DZQZxeoSLQEEtwmp 6wBtQ7G10wSM9nEjRRhbZdNPNKJMp2PElLLgLI+BLwdlz0t8MypcpLOa Tm9rc7pP7UR5XLzU1k8Dm6ePW1bNkId7i0IPSghyoHM7tPVdL2GW51hCujA= foo.eng.br. 900 IN NSEC ns1.exemplo.foo.eng.br. NS SOA RRSIG NSEC DNSKEY foo.eng.br. 900 IN RRSIG NSEC 5 3 900 20070617200428 20070518200428 62745 foo.eng.br. OCOCpFW5fR6MPhVBaUWfrP9pkIqVc+NDORi6PRwIX/p1dLmAT7NF5Rkc 9IfbAHZTxefoqTKqN/vPl1PqSxUzh0rl+atHblaH6yt79CTkmStota7C SLYYXX5c7D93hRYJ2yk1COxQz6GG9SIp/U4qR4//TcQDHpqQ4bFs42ZsD4I= ns2.foo.eng.br. 900 IN NSEC foo.eng.br. A RRSIG NSEC ns2.foo.eng.br. 900 IN RRSIG NSEC 5 4 900 20070617200428 20070518200428 62745 foo.eng.br. XVf7M09L4rVUD6uxa1P+EhQYohuimuwk1xzAemsn292esUhkkYz/BG7b OT/L9fhzOEPYtYGFyMF4gZ1/mxwY31UmX6xVZZPYFJ7x5Kw2uTSD49FK VsdUOLBCAHzO88byAm8EwLe3l+U0/q8RvPimAfpouoivUDcuWtKxs0CzLyc=
55 / 126
NSEC
(ANSWER = 0)
56 / 126
NSEC
Record NSEC utilizado apenas para provar no existncia. No aparece em a e a consultas positivas
$ dig @200.160.10.251 foo.eng.br SOA +dnssec +noadditional ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6372 ;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 5 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;foo.eng.br. IN SOA ;; ANSWER SECTION: foo.eng.br. 900 IN SOA ns1.foo.eng.br. hostmaster.foo.eng.br. 1 3600 3600 3600 900 foo.eng.br. 900 IN RRSIG SOA 5 3 900 20070617200428 20070518200428 62745 foo.eng.br. glEeCYyd/CCBfzH64y0RAQf9OxYDsI4xuBNaam+8DZQZxeoSLQEEtwmp 6wBtQ7G10wSM9nEjRRhbZdNPNKJMp2PElLLgLI+BLwdlz0t8MypcpLOa Tm9rc7pP7UR5XLzU1k8Dm6ePW1bNkId7i0IPSghyoHM7tPVdL2GW51hCujA= ;; AUTHORITY SECTION: foo.eng.br. 900 IN NS ns2.foo.eng.br. foo.eng.br. 900 IN NS ns1.foo.eng.br. foo.eng.br. 900 IN RRSIG NS 5 3 900 20070617200428 20070518200428 62745 foo.eng.br. 3iLm1ROC+UeqYk0xgQGQQXkBzcKiKQRPwe+1JZlpjEzjU1Uj0HUOHefa jXzMv7FlFMWYeU51Ybg49HFe67XQVlK54GeAFXWB7YS59yODLoNEBxQl 9QEy6g/OOnLpuKTrST8qqd5Fc/eYqN/Ag3GnfcAviZgiQhhveGH9mJHWZyc=
57 / 126
NSEC3
Soluciona o problema do Zone Walking Substitui o record NSEC pelo record NSEC3 Faz um hash de todos os nomes da zona e ordena-os de forma cannica o Ao invs de apontar para o prximo nome da zona, aponta para o e o prximo hash o
58 / 126
Funcionamento
Autenticidade e Integridade so providas pela assinatura dos a Resource Records Sets (RRset) com uma chave privada Zonas delegadas (lhas) assinam seus RRsets com a chave privada Autenticidade da chave vericada pela assinatura na zona e pai do Record DS (hash da chave pblica DNSKEY da u zona lha) Chave pblica usada para vericar assinatura (RRSIGs) dos u e RRsets Autenticidade da no existncia de um nome ou tipo provida por a e uma cadeia de nomes (NSEC) que aponta para o prximo nome o em uma sequncia cannica e o
59 / 126
DNSSEC no PKI a e
No existem Certicados a
(Certication Authority, Service Level Agreement, Certicate Revogation List)
60 / 126
Sempre que utilizar um Servidor Recursivo com DNSSEC habilitado e necessrio ancorar a chave pblica. a u Isto serve para associar o inicio da cadeia de conana a um ponto c seguro.
61 / 126
Exemplo
O resolver recursivo j a possui a chave pblica u da zona . (raiz) ancorada
62 / 126
Exemplo
63 / 126
Exemplo
64 / 126
Exemplo
65 / 126
Exemplo
66 / 126
Exemplo
67 / 126
Exemplo
68 / 126
Exemplo
69 / 126
Exemplo
O servidor DNS responde enviando DNSKEY e o RRSIG
70 / 126
Exemplo
Compara a trusted-key com a DNSKEY, caso for vlida continua a com as requisioes c
71 / 126
Exemplo
72 / 126
Exemplo
Retorna sem resposta, mas com referncia e para os Records:
- NS do foo.eng.br
73 / 126
Exemplo
O servidor DNS recursivo utiliza a DNSKEY para checar a assinatura (RRSIG) do Record DS
74 / 126
Exemplo
75 / 126
Exemplo
76 / 126
Exemplo
O servidor DNS recursivo verica atravs do DS e da e DNSKEY, se este servidor DNS vlido. e a
77 / 126
Exemplo
em ex
se cia
rv
fe Re
ex em
Resolver
exemplo.foo.eng.br ?
g.b
r?
78 / 126
Exemplo
Retorna o Record A e sua assinatura RRSIG.
Servidor DNS Autoritativo
g.b r? s re ido .br n o.e .fo plo n re
em ex
se cia
rv
fe Re
ex em
Resolver
7
7
88&%$#@8!"!
Servidor DNS Autoritativo
Autoritativo sobre o FOO.ENG. .ENG.
exemplo.foo.eng.br ?
g.b
r?
79 / 126
Exemplo
O servidor DNS recursivo utiliza a DNSKEY para checar a assinatura (RRSIG) do Record A
em ex
se cia
rv
fe Re
ex em
Resolver
HG
HG
RRWVUTSHRPQP I
9B '6
Servidor DNS Autoritativo
Autoritativo sobre o FOO.ENG. .ENG.
96 A9
.
66 '
exemplo.foo.eng.br ?
g.b
r?
80 / 126
Exemplo
81 / 126
EDNS0
(RFC 2671)
Criado de forma a tornar mais ex veis as limitaes dos campos no co protocolo DNS Permite aos solicitadores informarem a capacidade mxima de seus a pacotes UDP. Eliminando a limitao UDP DNS de 512 bytes. ca Distingue quem suporta DNSSEC
Lembrete
E necessrio que o transporte TCP tambm esteja habilitado no servidor. a e
82 / 126
Congurao de Firewall ca
Congurao de Firewall ca
O rewall deve ser congurado para fazer a normalizao de fragmentos ca de pacote UDP antes de checar as demais regras. Caso isto no seja poss a vel, uma alternativa congurar o servidor e recursivo para que solicite respostas UDP menores. Se estiver sendo utilizado Bind como servidor recursivo, isto pode ser feito a partir da verso 9.3.0 com as seguintes opes: a co
options { edns-udp-size 1252; # Servidores recursivos max-udp-size 1252; # Servidores recursivos e autoritativos }; 1252 apenas uma sugesto, este valor deve reetir as conguraoes de Firewall. e a c
Recomendao ca
Firewalls e DNS, como e porque congurar corretamente ftp://ftp.registro.br/pub/doc/dns-fw.pdf
83 / 126
DNS Vs DNSSEC
Diferenas entre uma requisio DNS e uma requisiao DNSSEC: c ca c
8 Pacotes X Bytes a
84 / 126
85 / 126
Softwares
Compatibilidade DNSSEC
DNSSEC bisa NSEC3b Autoritativo Recursivo Caching TSIG IPv6
ANS BIND djbdns DNSSHIM IPControl IPM DNS MaraDNS Microsoft DNS NSD PowerDNS Unbound Vantio VitalQIP
a b c d
RFC 5011
Verso atual do protocolo a Servidores recursivos devem(!) ter suporte a NSEC3 para pleno funcionamento com DNSSEC Suporte a partir da verso 9.6.0 a Suporte a partir da verso Windows Server 2008 R2 ou Windows 7 a
86 / 126
Softwares
Compatibilidade de Servidores DNS com Sistemas Operacionais
ANS BIND djbdns DNSSHIM IPControl IPM DNS MaraDNS Microsoft DNS NSD PowerDNS Unbound Vantio VitalQIP
a b c
BSDa
Solaris
Linux
Windows b
MAC OS X c
Sistema compat com a norma POSIX assim como outros clones do Unix. vel Apenas nas verses mais recentes do sistema operacional o Software em verso Beta a
87 / 126
Softwares
Licena de Servidores DNS c
ANS BIND djbdns DNSSHIM IPControl IPM DNS MaraDNS Microsoft DNS NSD PowerDNS Unbound Vantio VitalQIP
Criador Nominum Internet System Consortium Daniel J. Bernstein Registro.br INS EcientIP Sam Trenholme Microsoft NLnet Labs PowerDNS.com / Bert Hubert NLnet Labs Nominum Lucent Technologies
Cdigo Aberto o
Grtis a
88 / 126
Softwares
Ferramenta para consultas DNS
DRILL
Uma ferramenta similar ao DIG com suporte nativo a DNSSEC
at a verso 1.2.0 da ldns o DRILL no e a a tinha suporte a validao de Records ca CNAME
89 / 126
Softwares
Ferramenta para consultas DNS
BIND no Windows
Faa o download da ultima verso do BIND em http://www.isc.org c a Descompacte o arquivo ZIP e execute o programa BINDInstall.exe Aps a instalao, acesse os Servios (ferramentas administrativas) e o ca c inicie o servico ISC BIND
90 / 126
Softwares
Ferramenta para consultas DNS
BIND no Windows
O BIND no Windows funciona da mesma forma que no Linux, sendo que os arquivos cam localizados em locais diferentes. Os arquivos de congurao esto localizados em c:\windows\system32\dns\etc ca a Os executveis (named, dig) esto localizados em c:\windows\system32\dns\bin a a
91 / 126
Softwares
DNSSHIM - DNS Secure Hidden Master
http://registro.br/dnsshim/ Open-Source Automatiza o processo de provisionamento de zonas Suporte a DNSSEC Interface Automatizvel a Manuteno de chaves/assinaturas ca
Pblico Alvo u
Provedores de hospedagem ou qualquer outra instituio responsvel por ca a administrar servidores DNS autoritativos para muitas zonas
92 / 126
Softwares
DNSSHIM - DNS Secure Hidden Master
93 / 126
Demonstrao prtica ca a
1
Congurao BIND ca
a Arquivo de zona b named.conf
2 3 4 5
Teste Consulta de Record Registro de dom atualizao dos nameservers nio ca Aguardar nova publicao ca Congurao DNSSEC no BIND ca
a b c d Gerao da chave ca Atualizao do arquivo de zona ca Assinatura da zona Atualizao do named.conf ca
6 7 8 9
Teste Consulta de Record com DNSSEC Atualizao do Record DS no cadastro do dom ca nio Aguardando nova publicao ca Teste Validao da cadeia de conana ca c
94 / 126
Ambiente de Testes
95 / 126
Arquivo de Zona
Arquivo db.foo
foo.eng.br. IN SOA ns1.foo.eng.br. hostmaster.foo.eng.br. ( 1 ; serial 3600 ; refresh 3600 ; retry 3600 ; expire 900 ) ; minimum foo.eng.br. IN NS ns1.foo.eng.br. foo.eng.br. IN NS ns2.foo.eng.br. tutorial.foo.eng.br. IN NS ns2.tutorial.foo.eng.br. tutorial.foo.eng.br. IN NS ns1.tutorial.foo.eng.br. ns1.foo.eng.br. IN A 200.160.3.97 ns2.foo.eng.br. IN A 200.160.10.251 ns1.tutorial.foo.eng.br. IN A 200.160.3.97 ns2.tutorial.foo.eng.br. IN A 200.160.10.251 exemplo.foo.eng.br. IN A 200.160.10.251
96 / 126
named.conf (master)
options { directory "/etc/namedb"; pid-file "/var/run/named/pid"; dump-file "/var/dump/named dump.db"; statistics-file "/var/stats/named.stats"; listen-on { 200.160.10.251; }; }; zone "foo.eng.br" { type master; file "/etc/namedb/db.foo"; allow-transfer { 200.160.3.97; }; }; zone "tutorial.foo.eng.br" { type master; file "/etc/namedb/db.tutorial.foo"; allow-transfer { 200.160.3.97; }; };
97 / 126
named.conf (slave)
options { directory "/etc/namedb"; pid-file "/var/run/named/pid"; dump-file "/var/dump/named dump.db"; statistics-file "/var/stats/named.stats"; listen-on { 200.160.3.97; }; }; zone "foo.eng.br" { type slave; file "/etc/namedb/db.foo"; masters { 200.160.10.251; }; }; zone "tutorial.foo.eng.br" { type slave; file "/etc/namedb/db.tutorial.foo"; masters { 200.160.10.251; }; };
98 / 126
99 / 126
100 / 126
101 / 126
102 / 126
103 / 126
Gerao da chave ca
BIND: dnssec-keygen
Zona foo.eng.br: dnssec-keygen -f KSK -a RSASHA1 -b 2048 -n ZONE foo.eng.br Onde, -f : Dene o tipo da chave -a : Algoritmo -b : Tamanho da chave (bits) -n : Especica o tipo de dono da chave -r : Device de randomizao ca Em determinados ambientes, onde a gerao de chaves demorar muito pode ser necessrio ca a especicar o device de randomizaao, como por exemplo: -r /dev/urandom c OBS1: Guardar o nome das chaves geradas para ser usado futuramente. OBS2: Chaves geradas com dnssec-keygen no possuem passphrase. a
...
OBS
Antes de assinar a zona incremente o serial do record SOA para que ocorra a sincronizao com os servidores secundrios. ca a
105 / 126
Assinar as zonas
Ao se assinar a zona so gerados os records RRSIG e NSEC que caro ordenados de forma a a cannica dentro do arquivo de zona. o
BIND: dnssec-signzone
Zona foo.eng.br:
$ dnssec-signzone -S -z db.foo
Onde, -S : Assinatura inteligente - busca as chaves da zona e determina como estas sero utilizadas a -z : Ignora o bit SEP da chave e assina toda a zona -e : Data de expirao das assinaturas (formato AAAAMMDDHHMMSS) ca Se no informado considerado 30 dias a e o ltimo parmetro se refere ao arquivo de zona u a
Gerao de records DS ca
No momento em que se assina uma zona gerado um arquivo contendo o Records DS que ser e a utilizado para as delegaoes. c o arquivo gerado neste exemplo: dsset-foo.eng.br.
106 / 126
Atualizao do named.conf ca
107 / 126
3 4
Instalar o BIND, mantendo as conguraes padro co a No arquivo named.conf, denir dnssec-validation yes (BIND 9.4 ou superior) nas opes co Obtenha a chave pblica da zona . (raiz) u Inserir a chave pblica no bloco denominado managed-keys no u arquivo named.conf
109 / 126
110 / 126
DS Check
112 / 126
113 / 126
Instalar BIND nos servidores Congurar os arquivos de zona e named.conf no servidor Master e named.conf no servidores Slave Executar o BIND (named) no servidores Master e Slave Atualizar o registrar do dom nio (com os records NS) e aguardar publicao ca Realizar testes no servidor (DIG) Criar chave (dnssec-keygen)
(slide 109) (slide 111) (slide 112)
3 4 5
6 7 8 9 10 11
Atualizar o named.conf do servidor Master para utilizar o arquivo de zona .signed Restartar o BIND (named) no servidores Master Adicionar no pai o record DS Aguardar nova publicao ca
(slide 117)
114 / 126
1 2 3 4 5
Congurar o arquivo named.conf habilitando DNSSEC-VALIDATION Incluir a managed-key no arquivo named.conf Executar o BIND (named)
(slide 114)
Recomendao ca
Recomendaoes para Evitar o Abuso de Servidores DNS Recursivos Abertos c http://www.cert.br/docs/whitepapers/dns-recursivo-aberto/
115 / 126
1 2 3 4
116 / 126
Servidor Autoritativo
Reassinar a zona antes das assinaturas expirarem
1 2
Incrementar o serial (record SOA) do arquivo de zona original Reassinar a zona utilizando o comando dnssec-signzone
Servidor Recursivo
A chave ancorada ser automaticamente trocada conforme a RFC 5011 a
117 / 126
Perguntas?
Fim da Apresentao ca Referncias e
118 / 126
Apndice I e
SOA
Serial
O nmero de reviso do arquivo de zona. Esse nmero aumenta u a u cada vez que um record alterado na zona. e O tempo, em segundos, que um servidor DNS secundrio espera a antes de consultar sua origem da zona para tentar renov-la. a O tempo, em segundos, que um servidor secundrio espera a antes de tentar novamente uma transferncia de zona falha. e O tempo, em segundos, antes que o servidor secundrio pare de a responder `s consultas depois de transcorrido um intervalo de a atualizao no qual a zona no foi renovada ou atualizada. ca a O menor tempo de vida (TTL) da zona e o intervalo mximo a para armazenar respostas negativas em cache.
Exemplo Arquivo Zona
Refresh
Retry
Expire
Minimum
119 / 126
Apndice II e
CNAME
O que e
Um alias para nomes alternativos
Funcionalidade
Mapeia um nome de dom alternativo ou apelido no campo proprietrio nio a para um cannico especicado no campo Nome Cannico o o
Problemas
Records MX, NS, CNAME, ou SOA s devem se referir a um record o A. RRs referindo-se a um CNAME podem ocasionar problemas de buscas e carga extra na rede. Recomenda-se utilizar um RR A ao invs de CNAME. e
Resource Records 120 / 126
Apndice III e
Conceito de Chaves
(1/2)
121 / 126
Apndice III e
Conceito de Chaves
(2/2)
Lembrete
O record DNSKEY pode armazenar tanto a chave pblica de uma KSK u quanto de uma ZSK O record RRSIG armazena a assinatura de um RRset realizada tanto por uma KSK quanto por uma ZSK
122 / 126
Apndice III e
Conceito de Chaves
(2/2)
Lembrete
O record DNSKEY pode armazenar tanto a chave pblica de uma KSK u quanto de uma ZSK O record RRSIG armazena a assinatura de um RRset realizada tanto por uma KSK quanto por uma ZSK
Trabalhando com uma nica chave! u Entretanto aconselhavl a utilizao de somente uma unica chave. e e ca
Mais informaoes sobre como proceder no slide 111. c
122 / 126
Apndice IV e
Incluso dos Records DS das delegaes a co
Caso existam zonas delegadas que utilizem DNSSSEC dentro do seu dom nio, os Records DS destas zonas devem ser adicionados no arquivo de zona
Exemplo
SHA1 tutorial.foo.eng.br. IN DS 3112 5 1 386B4390C5B30DB65D74EA8B660978077171948C SHA256 tutorial.foo.eng.br. IN DS 3112 5 2 19602F6089F8877E037AA077B8376F30869E261EB55460F2A74E32AD1424F53A
foo.eng.br IN SOA ns1.foo.eng.br. hostmaster.foo.eng.br. ( 3 ; serial 3600 ; refresh (1 hour) 3600 ; retry (1 hour) 3600 ; expire (1 hour) 900 ; minimum (15 minutes) ) foo.eng.br. IN NS ns1.foo.eng.br. foo.eng.br. IN NS ns2.foo.eng.br. ... tutorial.foo.eng.br. IN DS 3112 5 1 386B4390C5B30DB65D74EA8B660978077171948C
OBS
A zona deve ser re-assinada aps incluir o record DS o
123 / 126
Referncias e
RFC 2671 Extension Mechanisms for DNS (EDNS0) RFC 2845 Secret Key Transaction Authentication for DNS (TSIG) RFC 4033 DNS Security Introduction and Requirements (DNSSEC-bis) RFC 4034 Resource Records for the DNS Security Extensions (DNSSEC-bis) RFC 4035 Protocol Modications for the DNS Security Extensions (DNSSEC-bis) RFC 4431 The DNSSEC Lookaside Validation (DLV) DNS Resource Record RFC 4470 Minimally Covering NSEC Records and DNSSEC On-line Signing RFC 4641 DNSSEC Operational Practices RFC 5155 DNSSEC Hashed Authenticated Denial of Existence
124 / 126
Referncias e
Tutoriais de DNS e DNSSEC - Registro.br http://registro.br/suporte/tutoriais/dnssec.html DNSSEC.NET http://www.dnssec.net DNSSHIM http://www.registro.br/dnsshim Wikipdia - DNSSEC e http://pt.wikipedia.org/wiki/DNSSEC Wikipdia - Comparao entre softwares de servidores DNS e ca http://en.wikipedia.org/wiki/Comparison of DNS server software Firewalls e DNS, como e porque congurar corretamente ftp://ftp.registro.br/pub/doc/dns-fw.pdf Recomendaoes para Evitar o Abuso de Servidores DNS Recursivos Abertos c http://www.cert.br/docs/whitepapers/dns-recursivo-aberto A ultima verso do tutorial de DNSSEC pode ser encontrada em a ftp://ftp.registro.br/pub/doc/tutorial-dnssec.pdf DNSSEC Olaf Kolkman (RIPE NCC/NLnet Labs) http://www.nlnetlabs.nl/dnssec howto
125 / 126
Obrigado!
126 / 126