Download - DNS
![Page 1: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/1.jpg)
Tutorial DNS
3° PTT Forum
David Robert Camargo de Campos <[email protected]>
Rafael Dantas Justo <[email protected]>
Wilson Rogerio Lopes <[email protected]>
Registro.br
Dezembro de 2009
1 / 135
![Page 2: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/2.jpg)
Objetivos
Entender os conceitos de DNS
Configurar servidores autoritativos
Configurar servidores recursivos
Entender as diferencas entre DNS e DNSSEC
Configurar corretamente o firewall
Testar performance dos servidores
Planejar escalabilidade de recursivos
Monitorar os servidores
2 / 135
![Page 3: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/3.jpg)
Cronograma
1 DNSConceitosArquitetura
2 Servidores DNS AutoritativosCenarioArquivos de ZonaConfiguracao BINDConfiguracao NSD
3 Servidores DNS RecursivosCenarioConfiguracao BINDServidores DNS Recursivos abertos
4 Recursivo e Autoritativo
5 DNSSECVulnerabilidades do DNSConceitoConfiguracao do AutoritativoConfiguracao do Recursivo
6 FirewallsDNSEDNS0Configuracao
7 Testes de PerformanceRecursivoAutoritativo
8 Escalabilidade de Recursivos
9 MonitoramentoAutoritativoRecursivo
3 / 135
![Page 4: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/4.jpg)
Parte I
Conceitos DNS
4 / 135
![Page 5: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/5.jpg)
DNS - Domain Name System
O Sistema de Nomes de Domınio e um banco de dados distribuıdo. Issopermite um controle local dos segmentos do banco de dados global,embora os dados em cada segmento estejam disponıveis em toda a redeatraves de um esquema cliente-servidor.
- Arquitetura hierarquica, dados dispostos em uma arvore invertida
- Distribuıda eficientemente, sistema descentralizado e com cache
- O principal proposito e a resolucao de nomes de domınio emenderecos IP e vice-versa
exemplo.foo.eng.br ←→ 200.160.10.251www.cgi.br ←→ 200.160.4.2
www.registro.br ←→ 2001:12ff:0:2::3
5 / 135
![Page 6: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/6.jpg)
Hierarquia
"."
br
eng
foo
tutorial
DNS
database
tutorial.foo.eng.br
/
usr
local
bin
imake
UNIX
filesystem
/usr/local/bin/imake
6 / 135
![Page 7: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/7.jpg)
Domınio Vs Zona
Zona gov.brZona nom.br
Zona eng.br
Domínio br
Zona joao.silva.nom.brZona tutorial.foo.eng.br
Zona foo.eng.br
Zona br
"."
com
eng
br org
nom gov
foo
tutorial
joao
Zona fazenda.gov.br
fazenda
Delegação
silva
Delegacao
Indica uma transferencia
de responsabilidade na
administracao apartir
daquele ponto na arvore
DNS
7 / 135
![Page 8: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/8.jpg)
Resource RecordsOs dados associados com os nomes de domınio estao contidos emResource Records ou RRs (Registro de Recursos)
Sao divididos em classes e tiposAtualmente existe uma grande variedade de tiposO conjunto de resource records com o mesmo nome de domınio,classe e tipo e denominado RRset
Alguns Tipos Comuns de Records
SOA Indica onde comeca a autoridade a zona
NS Indica um servidor de nomes para a zona
A Mapeamento de nome a endereco (IPv4)
AAAA Mapeamento de nome a endereco (IPv6)
MX Indica um mail exchanger para um nome (servidor de email)
CNAME Mapeia um nome alternativo (apelido)
PTR Mapeamento de endereco a nome8 / 135
![Page 9: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/9.jpg)
Tipos de servidores
Servidor Recursivo
Ao receber requisicoes de resolucao de nomes, faz requisicoes para osservidores autoritativos e conforme a resposta recebida dos mesmoscontinua a realizar requisicoes para outros servidores autoritativos ateobter a resposta satisfatoria
Servidor Autoritativo
Ao receber requisicoes de resolucao de nome, responde um endereco casopossua, uma referencia caso conheca o caminho da resolucao ou umanegacao caso nao conheca
9 / 135
![Page 10: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/10.jpg)
Exemplo de requisicao de endereco
Supondo que o
cache esta vazio ou
sem informacoes de
br, eng.br,
foo.eng.br,
exemplo.foo.eng.br
ResolverServico localizado
no cliente que tem
como
responsabilidade
resolver as
requisicoes DNS
para diversos
aplicativos10 / 135
![Page 11: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/11.jpg)
Exemplo de requisicao de endereco
Supondo que o
cache esta vazio ou
sem informacoes de
br, eng.br,
foo.eng.br,
exemplo.foo.eng.br
11 / 135
![Page 12: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/12.jpg)
Exemplo de requisicao de endereco
12 / 135
![Page 13: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/13.jpg)
Exemplo de requisicao de endereco
13 / 135
![Page 14: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/14.jpg)
Exemplo de requisicao de endereco
14 / 135
![Page 15: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/15.jpg)
Exemplo de requisicao de endereco
15 / 135
![Page 16: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/16.jpg)
Exemplo de requisicao de endereco
Resolver
Servidor DNS
Recursivo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
exem
plo
.foo.e
ng.b
r ?
exemplo.fo
o.eng.br ?
Refere
ncia se
rvidore
s .br
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
exemplo.foo.eng.br ?
"."
BR
ENG
FOO
TUTORIAL
16 / 135
![Page 17: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/17.jpg)
Exemplo de requisicao de endereco
Resolver
Servidor DNS
Recursivo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
exem
plo
.foo.e
ng.b
r ?
exemplo.fo
o.eng.br ?
Refere
ncia se
rvidore
s .br
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
exemplo.foo.eng.br ?
200.160.10.251
"."
BR
ENG
FOO
TUTORIAL
17 / 135
![Page 18: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/18.jpg)
Exemplo de requisicao de endereco
Resolver
Servidor DNS
Recursivo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
exem
plo
.foo.e
ng.b
r ?
20
0.1
60
.10
.25
1
exemplo.fo
o.eng.br ?
Refere
ncia se
rvidore
s .br
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
exemplo.foo.eng.br ?
200.160.10.251
"."
BR
ENG
FOO
TUTORIAL
18 / 135
![Page 19: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/19.jpg)
Exemplo de requisicao de endereco
Resolver
Servidor DNS
Recursivo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
exem
plo
.foo.e
ng.b
r ?
20
0.1
60
.10
.25
1
exemplo.fo
o.eng.br ?
Refere
ncia se
rvidore
s .br
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
exemplo.foo.eng.br ?
200.160.10.251
"."
BR
ENG
FOO
TUTORIAL
19 / 135
![Page 20: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/20.jpg)
Fluxo de dados
1 Resolver faz consultas no Recursivo
2 Recursivo faz consultas no Master ou Slave
3 Master tem a zona original (via arquivo ou Dynamic Update)
4 Slave recebe a zona do Master (AXFR ou IXFR)
20 / 135
![Page 21: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/21.jpg)
Parte II
Configurando Servidores DNS Autoritativos
21 / 135
![Page 22: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/22.jpg)
Cenario
Organizacao Foo Engenharia Ltda.
Possui o domınio foo.eng.br registrado no Registro.br;
Possui o bloco 200.160.0/24 designado de um provedor;
Possui o bloco 2001:12ff::/32 alocado pelo Registro.br.
Cliente A
Possui o domınio a.foo.eng.br delegado pela organizacao Foo;
Possui o bloco 200.160.0.127/28 designado pela organizacao Foo.
Cliente B
Possui o domınio b.foo.eng.br delegado pela organizacao Foo;
Possui o bloco 200.160.0.191/26 designado pela organizacao Foo.
22 / 135
![Page 23: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/23.jpg)
Cenario
Cliente BCliente A
Organização Foo Engenharia Ltda.
200.160.0/24
200.160.0.127/28 200.160.0.191/26
foo.eng.br
a.foo.eng.br b.foo.eng.br
2001:12ff::/32
23 / 135
![Page 24: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/24.jpg)
Cenario
200.160.0/24
200.160.0.0/25
200.160.0.191/26
200.160.0.127/28
200.160.0.143/28
200.160.0.159/27
Alocados Livres
24 / 135
![Page 25: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/25.jpg)
Organizacao Foo - Arquivo de zona
db.foo.eng.brfoo.eng.br. 86400 IN SOA ns1.foo.eng.br. hostmaster.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum
;; Servidores DNS que respondem por esta zonafoo.eng.br. 86400 IN NS ns1.foo.eng.br.
foo.eng.br. 86400 IN NS ns2.foo.eng.br.
;; Cliente Aa.foo.eng.br. 86400 IN NS ns1.a.foo.eng.br.
a.foo.eng.br. 86400 IN NS ns2.a.foo.eng.br.
;; Cliente Bb.foo.eng.br. 86400 IN NS ns1.b.foo.eng.br.
b.foo.eng.br. 86400 IN NS ns2.b.foo.eng.br.
25 / 135
![Page 26: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/26.jpg)
Organizacao Foo - Arquivo de zona (continuacao...)
db.foo.eng.br;; Traducao nomes → IPs (GLUEs)ns1.foo.eng.br. 86400 IN A 200.160.0.1
ns2.foo.eng.br. 86400 IN A 200.160.0.2
ns1.foo.eng.br. 86400 IN AAAA 2001:12ff::1
ns2.foo.eng.br. 86400 IN AAAA 2001:12ff::2
ns1.a.foo.eng.br. 86400 IN A 200.160.0.128
ns2.a.foo.eng.br. 86400 IN A 200.160.0.129
ns1.b.foo.eng.br. 86400 IN A 200.160.0.192
ns2.b.foo.eng.br. 86400 IN A 200.160.0.193
;; Web serverwww.foo.eng.br. 86400 IN A 200.160.0.3
www.foo.eng.br. 86400 IN AAAA 2001:12ff::3
26 / 135
![Page 27: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/27.jpg)
Organizacao Foo - Arquivo de zona reverso IPv4
db.0.160.200.in-addr.arpa0.160.200.in-addr.arpa. 172800 IN SOA ns1.foo.eng.br. hostmaster.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum
;; Servidores DNS que respondem por esta zona reverso
0.160.200.in-addr.arpa. 172800 IN NS ns1.foo.eng.br.
0.160.200.in-addr.arpa. 172800 IN NS ns2.foo.eng.br.
;; Cliente A (200.160.0.127 → 200.160.0.142 = 200.160.0.127/28)
127/28.0.160.200.in-addr.arpa. 172800 IN NS ns1.a.foo.eng.br.
127/28.0.160.200.in-addr.arpa. 172800 IN NS ns2.a.foo.eng.br.
128.0.160.200.in-addr.arpa. 172800 IN CNAME 128.127/28.0.160.200.in-addr.arpa.
129.0.160.200.in-addr.arpa. 172800 IN CNAME 129.127/28.0.160.200.in-addr.arpa.
...
142.0.160.200.in-addr.arpa. 172800 IN CNAME 142.127/28.0.160.200.in-addr.arpa.
27 / 135
![Page 28: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/28.jpg)
Organizacao Foo - Arquivo de zona reverso IPv4
db.0.160.200.in-addr.arpa (continuacao...);; Cliente B (200.160.0.191 → 200.160.0.255 = 200.160.0.191/26)
191/26.0.160.200.in-addr.arpa. 172800 IN NS ns1.b.foo.eng.br.
191/26.0.160.200.in-addr.arpa. 172800 IN NS ns2.b.foo.eng.br.
192.0.160.200.in-addr.arpa. 172800 IN CNAME 192.127/28.0.160.200.in-addr.arpa.
193.0.160.200.in-addr.arpa. 172800 IN CNAME 193.127/28.0.160.200.in-addr.arpa.
...
254.0.160.200.in-addr.arpa. 172800 IN CNAME 254.127/28.0.160.200.in-addr.arpa.
;; Enderecos reversos
1.0.160.200.in-addr.arpa. 86400 IN PTR ns1.foo.eng.br.
2.0.160.200.in-addr.arpa. 86400 IN PTR ns2.foo.eng.br.
3.0.160.200.in-addr.arpa. 86400 IN PTR www.foo.eng.br.
...
28 / 135
![Page 29: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/29.jpg)
Organizacao Foo - Arquivo de zona reverso IPv4
Mas por que e necessario o CNAME?
Porque a RFC 2317 recomenda;
Esta solucao nao exige alteracoes nos softwares dos servidores DNS;
Alteracao de hosts no reverso dos clientes nao implicam em alteracoesna zona reverso da organizacao Foo.
29 / 135
![Page 30: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/30.jpg)
Organizacao Foo - Arquivo de zona reverso IPv6
db.f.f.2.1.1.0.0.2.ip6.arpaf.f.2.1.1.0.0.2.ip6.arpa. 86400 IN SOA ns1.foo.eng.br. hostmaster.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum
;; Servidores DNS que respondem por esta zonaf.f.2.1.1.0.0.2.ip6.arpa. 86400 IN NS ns1.foo.eng.br.
f.f.2.1.1.0.0.2.ip6.arpa. 86400 IN NS ns2.foo.eng.br.$ORIGIN 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.f.2.1.1.0.0.2.ip6.arpa.
1 86400 IN PTR ns1.foo.eng.br.
2 86400 IN PTR ns2.foo.eng.br.
3 86400 IN PTR www.foo.eng.br.
Dificuldade
A inviabilidade de listar todos os reversos dos hosts de um bloco IPv6gerou diversas discussoes. O draft draft-howard-isp-ip6rdns-01 aborda estetema.
30 / 135
![Page 31: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/31.jpg)
Publicacao de Reverso
Informacao
Para as delegacoes informadas diretamente na interface do Registro.br(/24 ou maior) as publicacoes das alteracoes ocorrem a cada 4 horas comınicio as 2hs.
31 / 135
![Page 32: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/32.jpg)
Cliente A - Arquivo de zona
db.a.foo.eng.bra.foo.eng.br. 86400 IN SOA ns1.a.foo.eng.br. hostmaster.a.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum
;; Servidores DNS que respondem por esta zonaa.foo.eng.br. 86400 IN NS ns1.a.foo.eng.br.
a.foo.eng.br. 86400 IN NS ns2.a.foo.eng.br.
;; Traducao nomes → IPs (GLUEs)ns1.a.foo.eng.br. 86400 IN A 200.160.0.128
ns2.a.foo.eng.br. 86400 IN A 200.160.0.129
;; Web serverwww.a.foo.eng.br. 86400 IN A 200.160.0.142
32 / 135
![Page 33: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/33.jpg)
Cliente A - Arquivo de zona reverso
db.127.0.160.200.in-addr.arpa127/28.0.160.200.in-addr.arpa. 172800 IN SOA ns1.a.foo.eng.br. hostmaster.a.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum
;; Servidores DNS que respondem por esta zona reverso
127/28.0.160.200.in-addr.arpa. 172800 IN NS ns1.a.foo.eng.br.
127/28.0.160.200.in-addr.arpa. 172800 IN NS ns2.a.foo.eng.br.
;; Enderecos reversos
128.127/28.0.160.200.in-addr.arpa. 172800 IN PTR ns1.a.foo.eng.br.
129.127/28.0.160.200.in-addr.arpa. 172800 IN PTR ns2.a.foo.eng.br.
...
142.127/28.0.160.200.in-addr.arpa. 172800 IN PTR www.a.foo.eng.br.
33 / 135
![Page 34: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/34.jpg)
Cliente B - Arquivo de zona
db.b.foo.eng.brb.foo.eng.br. 86400 IN SOA ns1.b.foo.eng.br. hostmaster.b.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum
;; Servidores DNS que respondem por esta zonab.foo.eng.br. 86400 IN NS ns1.b.foo.eng.br.
b.foo.eng.br. 86400 IN NS ns2.b.foo.eng.br.
;; Traducao nomes → IPs (GLUEs)ns1.b.foo.eng.br. 86400 IN A 200.160.0.192
ns2.b.foo.eng.br. 86400 IN A 200.160.0.193
;; Web serverwww.b.foo.eng.br. 86400 IN A 200.160.0.254
34 / 135
![Page 35: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/35.jpg)
Cliente B - Arquivo de zona reverso
db.191.0.160.200.in-addr.arpa191/26.0.160.200.in-addr.arpa. 172800 IN SOA ns1.b.foo.eng.br. hostmaster.b.foo.eng.br. (
2009120200 ; serial
3600 ; refresh
3600 ; retry
3600 ; expire
900 ) ; minimum
;; Servidores DNS que respondem por esta zona reverso
191/26.0.160.200.in-addr.arpa. 172800 IN NS ns1.b.foo.eng.br.
191/26.0.160.200.in-addr.arpa. 172800 IN NS ns2.b.foo.eng.br.
;; Enderecos reversos
192.191/26.0.160.200.in-addr.arpa. 172800 IN PTR ns1.b.foo.eng.br.
193.191/26.0.160.200.in-addr.arpa. 172800 IN PTR ns2.b.foo.eng.br.
...
254.191/26.0.160.200.in-addr.arpa. 172800 IN PTR www.b.foo.eng.br.
35 / 135
![Page 36: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/36.jpg)
Organizacao Foo - Arquivo de configuracao (BIND)
Gerando chave TSIGdnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-foo
named.conf no master (200.160.0.1)options {
listen-on { 200.160.0.1; };listen-on-v6 { 2001:12ff::1; };recursion no;
};
key ‘‘key-foo’’ {algorithm hmac-md5;
secret ‘‘VgMNxtub39M=’’;
};
server 200.160.0.2 {keys { key-foo; };
};
server 2001:12ff::2 {keys { key-foo; };
};
36 / 135
![Page 37: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/37.jpg)
Organizacao Foo - Arquivo de configuracao (BIND)
named.conf no master (200.160.0.1) (continuacao...)zone ‘‘foo.eng.br’’ {
type master;
file ‘‘db.foo.eng.br’’;
allow-transfer { 200.160.0.2; 2001:12ff::2; key key-foo; };};
zone ‘‘0.160.200.in-addr.arpa’’ {type master;
file ‘‘db.0.160.200.in-addr.arpa’’;
allow-transfer { 200.160.0.2; 2001:12ff::2; key key-foo; };};
zone ‘‘f.f.2.1.1.0.0.2.ip6.arpa’’ {type master;
file ‘‘db.f.f.2.1.1.0.0.2.ip6.arpa’’;
allow-transfer { 200.160.0.2; 2001:12ff::2; key key-foo; };};
37 / 135
![Page 38: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/38.jpg)
Organizacao Foo - Arquivo de configuracao (BIND)
named.conf no slave (200.160.0.2)options {
listen-on { 200.160.0.2; };listen-on-v6 { 2001:12ff::2; };recursion no;
};
key ‘‘key-foo’’ {algorithm hmac-md5;
secret ‘‘VgMNxtub39M=’’;
};
server 200.160.0.1 {keys { key-foo; };
};
server 2001:12ff::1 {keys { key-foo; };
};
38 / 135
![Page 39: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/39.jpg)
Organizacao Foo - Arquivo de configuracao (BIND)
named.conf no slave (200.160.0.2) (continuacao...)zone ‘‘foo.eng.br’’ {
type slave;
file ‘‘db.foo.eng.br’’;
masters { 200.160.0.1; 2001:12ff::1; };};
zone ‘‘0.160.200.in-addr.arpa’’ {type slave;
file ‘‘db.0.160.200.in-addr.arpa’’;
masters { 200.160.0.1; 2001:12ff::1; };};
zone ‘‘f.f.2.1.1.0.0.2.ip6.arpa’’ {type slave;
file ‘‘db.f.f.2.1.1.0.0.2.ip6.arpa’’;
masters { 200.160.0.1; 2001:12ff::1; };};
39 / 135
![Page 40: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/40.jpg)
Cliente A - Arquivo de configuracao (BIND)
Gerando chave TSIGdnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-cliente-a
named.conf no master (200.160.0.128)options {
listen-on { 200.160.0.128; };recursion no;
};
key ‘‘key-cliente-a’’ {algorithm hmac-md5;
secret ‘‘VgMNxtub39M=’’;
};
server 200.160.0.129 {keys { key-cliente-a; };
};
zone ‘‘a.foo.eng.br’’ {type master;
file ‘‘db.a.foo.eng.br’’;
allow-transfer { 200.160.0.129; key key-cliente-a; };};
zone ‘‘127/28.0.160.200.in-addr.arpa’’ {type master;
file ‘‘db.127.0.160.200.in-addr.arpa’’;
allow-transfer { 200.160.0.129; key key-cliente-a; };};
40 / 135
![Page 41: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/41.jpg)
Cliente A - Arquivo de configuracao (BIND)
named.conf no slave (200.160.0.129)options {
listen-on { 200.160.0.129; };recursion no;
};
key ‘‘key-cliente-a’’ {algorithm hmac-md5;
secret ‘‘VgMNxtub39M=’’;
};
server 200.160.0.128 {keys { key-cliente-a; };
};
zone ‘‘a.foo.eng.br’’ {type slave;
file ‘‘db.a.foo.eng.br’’;
masters { 200.160.0.128; };};
zone ‘‘127/28.0.160.200.in-addr.arpa’’ {type slave;
file ‘‘db.127.0.160.200.in-addr.arpa’’;
masters { 200.160.0.128; };};
41 / 135
![Page 42: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/42.jpg)
Cliente B - Arquivo de configuracao (BIND)
Gerando chave TSIGdnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-cliente-b
named.conf no master (200.160.0.192)options {
listen-on { 200.160.0.192; };recursion no;
};
key ‘‘key-cliente-b’’ {algorithm hmac-md5;
secret ‘‘VgMNxtub39M=’’;
};
server 200.160.0.193 {keys { key-cliente-b; };
};
zone ‘‘b.foo.eng.br’’ {type master;
file ‘‘db.b.foo.eng.br’’;
allow-transfer { 200.160.0.193; key key-cliente-b; }};
zone ‘‘191/26.0.160.200.in-addr.arpa’’ {type master;
file ‘‘db.191.0.160.200.in-addr.arpa’’;
allow-transfer { 200.160.0.193; key key-cliente-b; };};
42 / 135
![Page 43: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/43.jpg)
Cliente B - Arquivo de configuracao (BIND)
named.conf no slave (200.160.0.193)options {
listen-on { 200.160.0.193; };recursion no;
};
key ‘‘key-cliente-b’’ {algorithm hmac-md5;
secret ‘‘VgMNxtub39M=’’;
};
server 200.160.0.192 {keys { key-cliente-b; };
};
zone ‘‘b.foo.eng.br’’ {type slave;
file ‘‘db.b.foo.eng.br’’;
masters { 200.160.0.192; };};
zone ‘‘191/26.0.160.200.in-addr.arpa’’ {type slave;
file ‘‘db.191.0.160.200.in-addr.arpa’’;
masters { 200.160.0.192; };};
43 / 135
![Page 44: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/44.jpg)
Organizacao Foo - Arquivo de configuracao (NSD)
Gerando chave TSIG - Com uma ferramenta do BIND!dnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-foo
nsd.conf no master (200.160.0.1)key:
name: key-foo
algorithm: hmac-md5
secret: ‘‘VgMNxtub39M=’’
zone:
name: foo.eng.br
zonefile: db.foo.eng.br
notify: 200.160.0.2 NOKEY
notify: 2001:12ff::2 NOKEY
provide-xfr: 200.160.0.2 key-foo
provide-xfr: 2001:12ff::2 key-foo
44 / 135
![Page 45: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/45.jpg)
Organizacao Foo - Arquivo de configuracao (NSD)
nsd.conf no master (200.160.0.1) (continuacao...)zone:
name: 0.160.200.in-addr.arpa
zonefile: db.0.160.200.in-addr.arpa
notify: 200.160.0.2 NOKEY
notify: 2001:12ff::2 NOKEY
provide-xfr: 200.160.0.2 key-foo
provide-xfr: 2001:12ff::2 key-foo
zone:
name: f.f.2.1.1.0.0.2.ip6.arpa
zonefile: db.f.f.2.1.1.0.0.2.ip6.arpa
notify: 200.160.0.2 NOKEY
notify: 2001:12ff::2 NOKEY
provide-xfr: 200.160.0.2 key-foo
provide-xfr: 2001:12ff::2 key-foo
Observacao
O NSD quando utilizado como master nao envia IXFR para os slaves. Mascaso o NSD seja utilizado como slave, ele entende requisicoes IXFR.
45 / 135
![Page 46: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/46.jpg)
Organizacao Foo - Arquivo de configuracao (NSD)
nsd.conf no slave (200.160.0.2)key:
name: key-foo
algorithm: hmac-md5
secret: ‘‘VgMNxtub39M=’’
zone:
name: foo.eng.br
zonefile: db.foo.eng.br
allow-notify: 200.160.0.1 NOKEY
allow-notify: 2001:12ff::1 NOKEY
request-xfr: 200.160.0.1 key-foo
request-xfr: 2001:12ff::1 key-foo
zone:
name: 0.160.200.in-addr.arpa
zonefile: db.0.160.200.in-addr.arpa
allow-notify: 200.160.0.1 NOKEY
allow-notify: 2001:12ff::1 NOKEY
request-xfr: 200.160.0.1 key-foo
request-xfr: 2001:12ff::1 key-foo
zone:
name: f.f.2.1.1.0.0.2.ip6.arpa
zonefile: db.f.f.2.1.1.0.0.2.ip6.arpa
allow-notify: 200.160.0.1 NOKEY
allow-notify: 2001:12ff::1 NOKEY
request-xfr: 200.160.0.1 key-foo
request-xfr: 2001:12ff::1 key-foo
46 / 135
![Page 47: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/47.jpg)
Cliente A - Arquivo de configuracao (NSD)
Gerando chave TSIG - Com uma ferramenta do BIND!dnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-cliente-a
nsd.conf no master (200.160.0.128)key:
name: key-cliente-a
algorithm: hmac-md5
secret: ‘‘VgMNxtub39M=’’
zone:
name: a.foo.eng.br
zonefile: db.a.foo.eng.br
notify: 200.160.0.129 NOKEY
provide-xfr: 200.160.0.129 key-cliente-a
zone:
name: 127/28.0.160.200.in-addr.arpa
zonefile: db.127.0.160.200.in-addr.arpa
notify: 200.160.0.129 NOKEY
provide-xfr: 200.160.0.129 key-cliente-a
47 / 135
![Page 48: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/48.jpg)
Cliente A - Arquivo de configuracao (NSD)
nsd.conf no slave (200.160.0.129)key:
name: key-cliente-a
algorithm: hmac-md5
secret: ‘‘VgMNxtub39M=’’
zone:
name: a.foo.eng.br
zonefile: db.a.foo.eng.br
allow-notify: 200.160.0.128 NOKEY
request-xfr: 200.160.0.128 key-cliente-a
zone:
name: 127/28.0.160.200.in-addr.arpa
zonefile: db.127.0.160.200.in-addr.arpa
allow-notify: 200.160.0.128 NOKEY
request-xfr: 200.160.0.128 key-cliente-a
48 / 135
![Page 49: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/49.jpg)
Cliente B - Arquivo de configuracao (NSD)
Gerando chave TSIG - Com uma ferramenta do BIND!dnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-cliente-b
nsd.conf no master (200.160.0.192)key:
name: key-cliente-b
algorithm: hmac-md5
secret: ‘‘VgMNxtub39M=’’
zone:
name: b.foo.eng.br
zonefile: db.b.foo.eng.br
notify: 200.160.0.193 NOKEY
provide-xfr: 200.160.0.193 key-cliente-b
zone:
name: 191/26.0.160.200.in-addr.arpa
zonefile: db.191.0.160.200.in-addr.arpa
notify: 200.160.0.193 NOKEY
provide-xfr: 200.160.0.193 key-cliente-b
49 / 135
![Page 50: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/50.jpg)
Cliente B - Arquivo de configuracao (NSD)
nsd.conf no slave (200.160.0.193)key:
name: key-cliente-b
algorithm: hmac-md5
secret: ‘‘VgMNxtub39M=’’
zone:
name: b.foo.eng.br
zonefile: db.b.foo.eng.br
allow-notify: 200.160.0.192 NOKEY
request-xfr: 200.160.0.192 key-cliente-b
zone:
name: 191/26.0.160.200.in-addr.arpa
zonefile: db.191.0.160.200.in-addr.arpa
allow-notify: 200.160.0.192 NOKEY
request-xfr: 200.160.0.192 key-cliente-b
50 / 135
![Page 51: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/51.jpg)
Parte III
Configurando Servidores DNS Recursivos
51 / 135
![Page 52: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/52.jpg)
Cenario
A organizacao Foo deseja disponibilizar um servidor DNS recursivo parasua infra-estrutura local e para todos os seus clientes. Este servidor DNSrecursivo tera o IPv4 200.160.0.6 e o IPv6 2001:12ff::6.
52 / 135
![Page 53: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/53.jpg)
Organizacao Foo (BIND)
named.confacl clientes { 127.0.0.0/8; 200.160.0.0/24; 2001:12ff::/32; };
options {listen-on { 127.0.0.1; 200.160.0.6; };listen-on-v6 { 2001:12ff::6; };directory ‘‘/etc’’;
pid-file ‘‘/var/run/named/pid’’;
statistics-file ‘‘/var/stats/named.stats’’;
allow-query { clientes; };allow-query-cache { clientes; };allow-recursion { clientes; };max-cache-size 512M;
clients-per-query 0;
max-clients-per-query 0;
};
Aviso
Nao utilizem a opcao “query-source”. Ao fixar uma porta de origem oservidor DNS fica muito mais vulneravel a ataques de poluicao de cache.Principalmente aos ataques descritos por Dan Kaminsky.
53 / 135
![Page 54: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/54.jpg)
Organizacao Foo (BIND)
named.conf (continuacao...)logging {
channel all {file ‘‘/var/log/named.log’’;
versions 5 size 1M;
print-time yes;
};
category default { all; };category security { all; };
};
zone ‘‘.’’ {type hint;
file ‘‘named.root’’;
};
zone ‘‘0.0.127.in-addr.arpa’’ {type master;
file ‘‘db.127.0.0’’;
};
54 / 135
![Page 55: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/55.jpg)
Organizacao Foo (Unbound)
unbound.confserver:
port: 53
interface: 127.0.0.1
interface: 200.160.0.6
interface: 2001:12ff::6
access-control: 0.0.0.0/0 refuse
access-control: 200.160.0.0/24 allow
access-control: 127.0.0.0/8 allow
access-control: ::0/0 refuse
access-control: 2001:12ff::/32 allow
directory: ‘‘/usr/local/unbound/etc/unbound’’
chroot: ‘‘/usr/local/unbound/etc/unbound’’
username: ‘‘unbound’’
logfile: ‘‘unbound.log’’
do-ip4: yes
do-ip6: yes
55 / 135
![Page 56: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/56.jpg)
Cuidado com Recursivos Abertos!
Causa
O administrador nao configura o servidor DNS recursivo para responderapenas para os clientes de sua rede.
Efeito
Aceitam consultas DNS vindas de qualquer computador da Internet.Possibilita ataques de amplificacao de respostas DNS e uso de banda porterceiros.
Solucao
Configuracao correta do firewall.
BIND:acl clientes { 127.0.0.0/8; 200.160.0.0/24; };allow-query { clientes; };allow-query-cache { clientes; };allow-recursion { clientes; };
NSD:access-control: 0.0.0.0/0 refuse
access-control: 200.160.0.0/24 allow
access-control: 127.0.0.0/8 allow
56 / 135
![Page 57: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/57.jpg)
Cuidado com Recursivos Abertos!
57 / 135
![Page 58: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/58.jpg)
Parte IV
Importancia da Separacao de Autoritativo e Recursivo
58 / 135
![Page 59: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/59.jpg)
Por que separar?
Motivo
Possibilita ataques ao servidor DNS recursivo;
Aumenta a complexidade na administracao do servidor.
Explicando...
Recursivo e autoritativo possui configuracoes de acesso diferentes;
As regras de firewalls sao distintas;
Sem “recursos” para separar os servidores?
Para servidores DNS utilizando BIND a sintaxe “view” pode ser utilizadapara separar os cenarios.
59 / 135
![Page 60: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/60.jpg)
Parte V
O que muda com DNSSEC?
60 / 135
![Page 61: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/61.jpg)
Vulnerabilidades do DNS
61 / 135
![Page 62: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/62.jpg)
Vulnerabilidades do DNS - Solucoes
62 / 135
![Page 63: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/63.jpg)
O que e DNSSEC?
Extensao da tecnologia DNS(o que existia continua a funcionar)
Possibilita maior seguranca para o usuario na Internet(corrige falhas do DNS)
O que garante?
Origem (Autenticidade)
Integridade
A nao existencia de um nome ou tipo
O que NAO garante?
Confidencialidade
Protecao contra ataques de negacao de servico (DOS)
63 / 135
![Page 64: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/64.jpg)
O que e DNSSEC?
DNSSEC utiliza o conceito de chaves assimetricas− chave publica e chave privada
64 / 135
![Page 65: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/65.jpg)
O que e DNSSEC?
DNSSEC utiliza o conceito de chaves assimetricas− chave publica e chave privada
65 / 135
![Page 66: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/66.jpg)
O que e DNSSEC?
O resolver recursivo japossui a chave publicada zona “.br”ancorada.
66 / 135
![Page 67: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/67.jpg)
O que e DNSSEC?
Nesta simulacao deresolucao supomos quea raiz nao estaassinada.
67 / 135
![Page 68: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/68.jpg)
O que e DNSSEC?
Retorna sem resposta,mas com referenciapara os Records: NSdo “.br”.
68 / 135
![Page 69: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/69.jpg)
O que e DNSSEC?
O servidor recursivorequisita a DNSKEYao verificar que o nomeda zona e igual aonome da zona queconsta em suatrusted-key.
69 / 135
![Page 70: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/70.jpg)
O que e DNSSEC?
O servidor DNSresponde enviandoDNSKEY e o RRSIG
70 / 135
![Page 71: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/71.jpg)
O que e DNSSEC?
Compara a trusted-keycom a DNSKEY, casofor valida continuacom as requisicoes
71 / 135
![Page 72: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/72.jpg)
O que e DNSSEC?
72 / 135
![Page 73: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/73.jpg)
O que e DNSSEC?
Retorna sem resposta,mas com referenciapara os Records:
- NS do “foo.eng.br”
e com autoridade sobreos Records:
- DS do “foo.eng.br”
- RRSIG do Record DS
73 / 135
![Page 74: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/74.jpg)
O que e DNSSEC?
O servidor DNSrecursivo utiliza aDNSKEY para checara assinatura (RRSIG)do Record DS
74 / 135
![Page 75: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/75.jpg)
O que e DNSSEC?
75 / 135
![Page 76: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/76.jpg)
O que e DNSSEC?
76 / 135
![Page 77: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/77.jpg)
O que e DNSSEC?
O servidor DNSrecursivo verificaatraves do DS e daDNSKEY, se esteservidor DNS e valido.
77 / 135
![Page 78: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/78.jpg)
O que e DNSSEC?
Resolver
Servidor DNS
Recursivo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
exem
plo
.foo.e
ng.b
r ?
exemplo.fo
o.eng.br ?
Refere
ncia se
rvidore
s .br
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
exemplo.foo.eng.br ?
Autoritativo sobre o FOO.ENG.BR
e TUTORIAL.FOO.ENG.BR
78 / 135
![Page 79: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/79.jpg)
O que e DNSSEC?
Resolver
Servidor DNS
Recursivo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
exem
plo
.foo.e
ng.b
r ?
exemplo.fo
o.eng.br ?
Refere
ncia se
rvidore
s .br
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
exemplo.foo.eng.br ?
200.160.10.251
Autoritativo sobre o FOO.ENG.BR
e TUTORIAL.FOO.ENG.BR
Retorna o Record A esua assinatura RRSIG.
79 / 135
![Page 80: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/80.jpg)
O que e DNSSEC?
Resolver
Servidor DNS
Recursivo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
Servidor DNS
Autoritativo
exem
plo
.foo.e
ng.b
r ?
exemplo.fo
o.eng.br ?
Refere
ncia se
rvidore
s .br
exemplo.foo.eng.br ?
Referencia servidores foo.eng.br
exemplo.foo.eng.br ?
200.160.10.251
Autoritativo sobre o FOO.ENG.BR
e TUTORIAL.FOO.ENG.BR
O servidor DNSrecursivo utiliza aDNSKEY para checara assinatura (RRSIG)do Record A
80 / 135
![Page 81: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/81.jpg)
O que e DNSSEC?
81 / 135
![Page 82: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/82.jpg)
O que muda com DNSSEC no DNS autoritativo?
Startup
Gerar a chave assimetrica;
Incluir a chave na zona;
Assinar a zona;
Mudar a referencia para o arquivo de zona nas configuracoes;
Incluir o DS na interface do Registro.br.
Manutencao
Reassinar periodicamente a zona.
82 / 135
![Page 83: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/83.jpg)
E como fazer isso no DNS autoritativo? (BIND)
Startup
1 Execute o comando (gera um arquivo .key e um .private):dnssec-keygen -f KSK -a RSASHA1 -b 1024 -n ZONE -r /dev/urandom foo.eng.br
2 Inclua no final do arquivo de zona db.foo.eng.br (incremente o SOA):$include Kfoo.eng.br+005.5423.key
3 Execute o comando (gera um arquivo .signed):dnssec-signzone -z -o foo.eng.br -e 20100102120000 db.foo.eng.br
4 Altere a referencia no arquivo de configuracao named.conf:file ‘‘db.foo.eng.br.signed’’;
5 Incluir o DS no website do Registro.br.http://registro.br/cgi-bin/nicbr/dscheck
Manutencao1 Altere o arquivo de zona db.foo.eng.br incrementando o SOA;
2 Execute o comando:dnssec-signzone -z -o foo.eng.br -e 20100102120000 db.foo.eng.br
83 / 135
![Page 84: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/84.jpg)
DNSSHIM - DNS Secure Hidden Master
http://registro.br/dnsshim/
Open-Source
Automatiza o processo de provisionamento de zonas
Suporte a DNSSEC
Interface Automatizavel
Manutencao de chaves/assinaturas
Publico Alvo
Provedores de hospedagem ou qualquer outra instituicao responsavel poradministrar servidores DNS autoritativos para muitas zonas
84 / 135
![Page 85: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/85.jpg)
O que muda com DNSSEC no DNS recursivo?
Startup
Ancorar a chave publica do.BR
Manutencao
Para servidores DNS com suporte a RFC 5011:
Nada!
Para servidores DNS sem suporte a RFC 5011:
Trocar a chave ancorada todas as vezes em que ocorrer um rolloverno .BR
85 / 135
![Page 86: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/86.jpg)
E como fazer isso no DNS recursivo?
Startup
BIND (named.conf):trusted-keys {br. 257 3 5
‘‘AwEAAdDoVnG9CyHbPUL2rTnE22uN66gQCrUW5W0NTXJB
NmpZXP27w7PMNpyw3XCFQWP/XsT0pdzeEGJ400kdbbPq
Xr2lnmEtWMjj3Z/ejR8mZbJ/6OWJQ0k/2YOyo6Tiab1N
GbGfs513y6dy1hOFpz+peZzGsCmcaCsTAv+DP/wmm+hN
x94QqhVx0bmFUiCVUFKU3TS1GP415eykXvYDjNpy6AM=’’;
};
Unbound (unbound.conf):trust-anchor: ‘‘br. DS 18457 5 1 1067149C134A5B5FF8FC5ED0996E4E9E50AC21B1’’
Manutencao
1 Obtenha a nova chave em https://registro.br/ksk/;
2 Ancore a nova chave no servidor DNS recursivo.
86 / 135
![Page 87: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/87.jpg)
Parte VI
Firewalls
87 / 135
![Page 88: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/88.jpg)
DNS
Definido nas RFCs 1034 e 1035;
Servidores aceitam consultas em transporte TCP/UDP, porta 53;
Payload maximo em transporte UDP de 512 bytes;
Payload maximo por mensagem DNS em TCP de 64 Kbytes.
88 / 135
![Page 89: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/89.jpg)
DNS
Quando TCP e utilizado
Transferencias de zona (AXFR);
Respostas com payload maior do que 512 bytes:
1 Consulta inicial via UDP;2 Resposta maior do que 512 bytes, flag TC e marcada para indicar que
sua resposta esta truncada;3 Cliente refaz consulta via TCP.
89 / 135
![Page 90: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/90.jpg)
EDNS0 - Extension Mechanisms for DNS
Definido na RFC 2671;
Extensao do protocolo DNS original para eliminar alguns limites doprotocolo;
Permite:
◮ mais flags e RCODEs ao cabe alho DNS;◮ novos tipos de labels;◮ payloads maiores em transporte UDP (limitado a 64 Kbytes);◮ define um novo pseudo-RR: OPT.
90 / 135
![Page 91: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/91.jpg)
EDNS0 - Extension Mechanisms for DNS
Depende de suporte tanto no cliente como no servidor;
Cliente envia consulta UDP com pseudo-RR OPT na secao Additionalda mensagem DNS, informando qual o tamanho maximo de respostasUDP que pode processar;
Se servidor suportar EDNS0, pode aumentar o limite para o tamanhoda resposta que vai retornar ao cliente, evitando re-query via TCP;
Se servidor nao suportar EDNS0, envia resposta com ate 512 bytes depayload DNS.
91 / 135
![Page 92: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/92.jpg)
EDNS0 - Extension Mechanisms for DNS
Alguns exemplos de servidores que suportam EDNS0:
Bind (desde 8.3.x - 2001);
Microsoft DNS server (Windows 2003);
NSD (auth only - desde 1.x - 2003);
ANS/CNS.
92 / 135
![Page 93: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/93.jpg)
Configurando o Firewall
Por que configurar corretamente?
Garantir qualidade na resolucao DNS, ou seja, evitar atrasos e,principalmente, a impossibilidade de resolucao de nomes;
Evitar overhead desnecessario em servidores DNS, tanto recursivoscomo autoritativos.
93 / 135
![Page 94: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/94.jpg)
Configurando o Firewall
Autoritativos
Consultas com destino a porta 53 UDP e TCP do servidor autoritativo erespectivas respostas devem ser permitidas.
Recursivos
Consultas do servidor recursivo com destino a porta 53 UDP e TCP dequalquer outro servidor e respectivas respostas devem ser permitidas;
Consultas vindas de clientes autorizados com destino a porta 53 UDPe TCP do servidor recursivo e respectivas respostas devem serpermitidas;
Bloqueio as demais consultas DNS direcionadas ao servidor recursivo.
94 / 135
![Page 95: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/95.jpg)
Configurando o Firewall
Firewalls e DNS/UDP > 512 bytes
Se seu servidor recursivo suporta EDNS0, verifique se seu firewall permitedatagramas UDP/DNS com mais de 512 bytes. Um teste pode ser feitoatraves da seguinte consulta (935 bytes de payload DNS):
dig @a.dns.br br ns +dnssec +bufsize=1000
Se a resposta nao for recebida, pode-se:
corrigir o comportamento do firewall;
diminuir o payload maximo enviado via record OPT na configuracao;
EDNS0 do servidor para 512 bytes.
95 / 135
![Page 96: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/96.jpg)
Configurando o Firewall
Firewalls e DNS/UDP > 512 bytes
Se seu servidor recursivo suporta EDNS0 e o firewall suporta mensagensDNS maiores que 512 bytes, verifique se seu firewall e capaz de fazer ocorreto reassembly de datagramas UDP fragmentados. Um teste pode serfeito atraves da seguinte consulta (2185 bytes de payload DNS):
dig @a.dns.br br dnskey +dnssec +bufsize=2500
Se a resposta nao for recebida, pode-se:
corrigir o comportamento do firewall;
diminuir o payload maximo enviado via record OPT na configuracaoEDNS0 do resolver. RFC EDNS0 sugere que se configure baseado emMTU de 1280 bytes.
96 / 135
![Page 97: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/97.jpg)
Parte VII
Testes de Performance
97 / 135
![Page 98: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/98.jpg)
Testes de Performance - Recursivo
Dependente de fatores externos
Link, banda local
Capacidade dos autoritativos
98 / 135
![Page 99: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/99.jpg)
Testes de Performance - Recursivo
Responde a consultas
consultas ja em cache
consulta servidores autoritativos
Aviso
Exatidao de uma simulacao depende da comunicacao com os autoritativos
99 / 135
![Page 100: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/100.jpg)
Testes de Performance - Recursivo
Testes Propostos
Consultas em cacheAlgumas dezenas de consultasrepetidas por 5 minutos
!CacheServidor com cache limpoConsultas unicas durante 5 minutosTodas as consultas validas
100 / 135
![Page 101: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/101.jpg)
Testes de Performance - Recursivo
Ambiente
Servidor Recursivo2 Xeon X5570 2.93GHz QuadCore HT - 16 CPU’sFreeBSD 7.2 amd64Bind 9.6.1-P1 compilado com suporte a threadsUnbound 1.4.0
Cliente1 Xeon X5560 2.80GHz QuadCore HTDNSPERF 1.0.1.0-1
resperf - mede throughput do recursivoDisponıvel em http://www.nominum.com
Cliente e Servidor no mesmo seguimento de rede
101 / 135
![Page 102: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/102.jpg)
Testes de Performance - Recursivo$resperf -d <arquivo consultas> -s <servidor> -r 300
-d: Especifica um aquivo contendo as consultas
Formato: HOST RR
www.registro.br A
nic.br MX
...
-s: IP ou nome do servidor recursivo
-r: Tempo do teste, em segundos
102 / 135
![Page 103: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/103.jpg)
Testes de Performance - Recursivo
Bind - Consultas em Cache
N.threads = 8 ( named ... -n 8 )
103 / 135
![Page 104: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/104.jpg)
Testes de Performance - Recursivo
Unbound - Consultas em cache
N.threads = 8 ( unbound.conf )
104 / 135
![Page 105: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/105.jpg)
Testes de Performance - Recursivo
Bind - Consultas unicas - !Cache
N.threads = 8 ( named ... -n 8 )
105 / 135
![Page 106: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/106.jpg)
Testes de Performance - Recursivo
Unbound - Consultas unicas - !Cache
N.threads = 8 ( unbound.conf )
106 / 135
![Page 107: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/107.jpg)
Testes de Performance - Autoritativo
Responde apenas consultas para zonas configuradas
Zonas carregadas em memoria
107 / 135
![Page 108: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/108.jpg)
Testes de Performance - Autoritativo
Teste Proposto
Servidor autoritativo com 1000 zonas configuradas
Dois clientes consultam aleatoriamente registros existentes nessaszonas
108 / 135
![Page 109: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/109.jpg)
Testes de Performance - Autoritativo
Ambiente
Servidor Autoritativo2 Xeon X5570 2.93GHz QuadCore HT - 16 CPU’sFreBSD 7.2 amd64Bind 9.6.1-P1 compilado com threadsNSD 3.2.3
Clientes1 Xeon X5560 2.80GHz QuadCore HTQueryperf 1.12
Disponıvel no contrib do bind
Servidor e clientes no mesmo seguimento de rede
109 / 135
![Page 110: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/110.jpg)
Testes de Performance - Autoritativo$queryperf -d <arquivo consultas> -s <servidor> -l <tempo>
-d: Especifica um aquivo contendo as consultas
Formato: HOST RR
www.registro.br A
nic.br MX
...
-s: IP ou nome do servidor recursivo
-l: Tempo do teste, em segundos
110 / 135
![Page 111: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/111.jpg)
Testes de Performance - Autoritativo
Bind
12 Threads = 224000 qps
111 / 135
![Page 112: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/112.jpg)
Testes de Performance - Autoritativo
NSD
5 servidores = 257770 qps
112 / 135
![Page 113: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/113.jpg)
Parte VIII
Escalabilidade de Recursivos
113 / 135
![Page 114: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/114.jpg)
Escalabilidade de Recursivos
Motivacao
DNS recursivo instavel e foco de reclamacoes constantes
114 / 135
![Page 115: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/115.jpg)
Escalabilidade de Recursivos
Escalabilidade e Estabilidade
Suporte a alto trafego
Suporte a muitos usuarios
Facil upgrade caso a demanda aumente
Manutencao sem parada do sistema
Alta disponibilidade
Balanceamento de carga
115 / 135
![Page 116: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/116.jpg)
Escalabilidade de Recursivos
Cluster
116 / 135
![Page 117: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/117.jpg)
Escalabilidade de Recursivos
Flexibilidade
Mais de um roteador
Mais de um switch
117 / 135
![Page 118: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/118.jpg)
Escalabilidade de Recursivos
Solucao
Roteador + [UNIX + Quagga + BIND]
Endereco do servico roda na loopback dos servidores
Anycast dentro do cluster
Protocolo de roteamento dinamico com suporte a ECMP - OSPF
118 / 135
![Page 119: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/119.jpg)
Escalabilidade de Recursivos
Topologia
119 / 135
![Page 120: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/120.jpg)
Escalabilidade de Recursivos
Anycast na Rede
Redundancia
IBGP entre os clusters
120 / 135
![Page 121: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/121.jpg)
Escalabilidade de Recursivos
ECMP
Assimetria de trafego
O balanceamento de carga nao e exato
Incoerencia de cache entre os servidores
O cache dos servidores nao sao identicos, pois o trafego que elesrecebem tambem nao e
Nao ha problema!
121 / 135
![Page 122: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/122.jpg)
Escalabilidade de Recursivos
Detalhes do BIND
BIND rodando nas duas interfaces
Queries chegam para a loopback
Monitoracao pelo endereco individual
acl
Max-cache-size
recursive-clients
122 / 135
![Page 123: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/123.jpg)
Escalabilidade de Recursivos
Controle1 Iniciar processo do BIND
2 Subir interface loopbackQuagga envia LSA para o roteadorifconfig lo1 up
3 Tirar o servidor do arEnviar LSA removendo a rotaifconfig lo1 down
123 / 135
![Page 124: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/124.jpg)
Escalabilidade de Recursivos
Recursos
Exemplo:Rede com 1M de usuarios simultaneos
Media de 50 q/h (por usuario)
50 x 1M = 50M q/h 14k q/sUm unico servidor (com hardware robusto) e capaz de suportar esta cargaSugestao para atingir alta disponibilidade:
- cluster com 3 ou 4 servidores
124 / 135
![Page 125: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/125.jpg)
Escalabilidade de Recursivos
Monitoracao
Processo do BIND esta no ar?Monitorar endereco unicast de cada servidor
Qual servidor que esta respondendo?dig @192.168.1.1 chaos txt hostname.bind +short
WatchdogCaso o BIND pare de responderifconfig lo1 down
125 / 135
![Page 126: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/126.jpg)
Parte IX
Monitoramento
126 / 135
![Page 127: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/127.jpg)
Monitoramento
Autoritativos
Disponibilidade
Autoridade sobre as zonas
Versao da zona (serial)
DNSSEC - validacao
Recursos
127 / 135
![Page 128: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/128.jpg)
Monitoramento - Autoritativo
SNMP - cpu, memoria, trafego
Nagios
Plugin check dnsAlertas via email, sms
Status Information:OK: Servidor a.dns.br. (200.160.0.10)respondendo com autoridade para ”com.br”
Custom Plugins - Serial, DNSSEC
128 / 135
![Page 129: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/129.jpg)
Monitoramento - Autoritativo
DSC - DNS Statistics CollectorDisponıvel em http://dns.measurement-factory.com/tools/dsc/
Collector - Processo que usa a libpcap para coletar pacotes DNSArmazena em XML
Presenter - Recebe datasets XML dos coletores CGI plota asestatısticas
129 / 135
![Page 130: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/130.jpg)
Monitoramento - Autoritativo
Diversas estatısticas importantes para um autoritativo
By Node
Qtypes
Client Geography
IP Version
DNS Transport
...
130 / 135
![Page 131: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/131.jpg)
Monitoramento - Autoritativo
Query Types
131 / 135
![Page 132: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/132.jpg)
Monitoramento
Recursivos
Disponibilidade
Recursos
132 / 135
![Page 133: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/133.jpg)
Monitoramento - Recursivo
SNMP - cpu, memoria, trafego
Nagios
Plugin check dnsDNS OK: 0.009 seconds response time. www.registro.br returns 200.160.2.3
Custom Plugins
133 / 135
![Page 134: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/134.jpg)
Perguntas?
134 / 135
![Page 135: DNS](https://reader036.vdocuments.com.br/reader036/viewer/2022082309/5478e263b4af9fb23d8b45db/html5/thumbnails/135.jpg)
Referencias
◮ RFC 2317Classless IN-ADDR.ARPA delegation
◮ DNS recursivo estavel e escalavelftp://ftp.registro.br/pub/gter/gter23/05-DNSrecEstavelEscalavel.pdf
◮ Firewalls e DNS, como e porque configurar corretamenteftp://ftp.registro.br/pub/doc/dns-fw.pdf
◮ Recomendacoes para Evitar o Abuso de Servidores DNS Recursivos Abertoshttp://www.cert.br/docs/whitepapers/dns-recursivo-aberto
◮ A ultima versao do tutorial de DNSSEC pode ser encontrada em
ftp://ftp.registro.br/pub/doc/tutorial-dnssec.pdf
135 / 135