Differences

This shows you the differences between two versions of the page.

Link to this comparison view

bind_trabalhando_com_multi-view_master_slave_com_dnssec_no_debian_squeeze_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Instalação e configuração do Bind Trabalhando com Views Master/​Slave no Debian Squeeze ======
  
 +
 +Configurando o DNS no Debian Squeeze com MultiView do mesmo domínio e fazendo replicação e como precisamos de segurança vamos efetuar a implementação do DNSSEC.
 +Problema: Quando era efetuado replicação e as zonas tinham o mesmo nome ele sempre replicava a zona da view interna ou o primeiro arquivo de referência dentro do named.conf.
 +
 +O **DNSSEC** (Domain Name System Security Extensions) é um padrão internacional que estende a tecnologia DNS.O que DNSSEC adiciona é um sistema de resolução de nomes mais seguro, reduzindo o risco de manipulação de dados e domínios forjados. O mecanismo utilizado pelo DNSSEC é baseado na tecnologia de criptografia que emprega assinaturas. DNSSEC utiliza um sistema de chaves assimétricas. Isso significa que alguém com um domínio compatível com DNSSEC possui um par de chaves eletrônicas que consistem em uma chave privada e uma chave pública. Em razão do mantenedor das chaves utilizar a chave privada para assinar digitalmente sua própria zona no DNS, é possível que todo mundo com acesso a chave pública desta zona verifique que os dados transferidos desta zona estão intactos.
 +
 +DNSSEC soluciona alguns problemas encontrados na atual tecnologia DNS. Falsas informações DNS criam oportunidades para roubo de informações de terceiros ou alteração de dados em diversos tipos de transações,​ como compras eletrônicas. Na tecnologia DNS, um ataque DNS com informação forjada é extremamente dificil de ser detectado e na pratica impossível de ser previnido. O objetivo da extensão DNSSEC é assegurar o conteúdo do DNS e impedir estes ataques validando os dados e garantindo a origem das informações.
 +
 +**Para que serve DNSSEC**
 +
 +Provê segurança para a resolução de endereços.
 +
 +Funciona como um caminho alternativo para a verificação de autenticidade.
 +
 +Estas operações ocorrem antes de qualquer verificação de segurança em camadas superiores (SSL, SSH, PGP etc…).
 +
 +**Como funciona**
 +
 + - A autenticidade e integridade são providas pela assinatura dos Conjuntos de Registros de Recursos (Resource Records Sets - RRset) com uma chave privada.
 + - Zonas delegadas (filhas) assinam seus proprios RRsets com sua chave privada.
 + - Autenticidade da chave é verificada pela assinatura na zona pai do Recurso DS (Record DS) (hash da chave pública da zona filha).
 + - A chave pública é usada para verificar RRSIGs dos RRsets.
 + - Autenticidade da não existência de um nome ou tipo provida por uma cadeia de registros que aponta para o próximo em uma sequência canônica.
 +
 +
 +Solução dentro de cada View vamos forçar para quem tem que ser a replica e no slave receber a replica que foi forçada por View. Precisamos de 2 endereços ip para o servidor Slave.
 +  - IP do slave que vai receber a view interna: 10.0.0.27
 +  - IP do slave que vai receber a view externa: 10.0.0.28
 +  - IP do servidor master 10.0.0.25.
 +
 +Prepare o seu sistema com o seguinte script [[https://​github.com/​douglasqsantos/​easy-debian|Easy-Debian]] para que não falte nenhum pacote ou configuração.
 +
 +Vamos primeiro configurar o Servidor Master
 +
 +Instalando os pacotes
 +
 +<sxh bash>
 +
 +aptitude update
 +aptitude install bind9 dnsutils dnssec-tools libnet-dns-sec-perl libmailtools-perl libcrypt-openssl-random-perl -y
 +</​sxh>​
 +
 +Agora vamos parar o nosso Bind para poder efetuar as modificações
 +
 +<sxh bash>
 +
 +/​etc/​init.d/​bind9 stop
 +</​sxh>​
 +
 +Agora vamos ter que criar a nossa jaula
 +<sxh bash>
 +
 +mkdir -p /​var/​lib/​named/​etc
 +mkdir -p /​var/​lib/​named/​dev
 +mkdir -p /​var/​lib/​named/​var/​log
 +mkdir -p /​var/​lib/​named/​var/​cache/​bind
 +mkdir -p /​var/​lib/​named/​var/​cache/​bind/​keys
 +mkdir -p /​var/​lib/​named/​var/​cache/​bind/​dynamic
 +mkdir -p /​var/​lib/​named/​var/​run/​bind/​run
 +mknod /​var/​lib/​named/​dev/​null c 1 3
 +mknod /​var/​lib/​named/​dev/​random c 1 8
 +mknod /​var/​lib/​named/​dev/​zero c 1 5
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões
 +<sxh bash>
 +
 +chmod 666 /​var/​lib/​named/​dev/​{null,​random,​zero}
 +chown -R bind:bind /​var/​lib/​named/​var/​*
 +</​sxh>​
 +Agora vamos ajustar as configurações
 +<sxh bash>
 +
 +mv /etc/bind /​var/​lib/​named/​etc
 +ln -sf /​var/​lib/​named/​etc/​bind /etc/bind
 +cp /​etc/​localtime /​var/​lib/​named/​etc
 +chown -R bind:bind /​var/​lib/​named/​etc/​bind
 +chown -R root:bind /​var/​lib/​named/​var/​cache/​bind/​dynamic
 +chmod -R 775 /​var/​lib/​named/​var/​cache/​bind/​dynamic
 +</​sxh>​
 +
 +Agora vamos ajustar o arquivo de configuração do bind para ele reconhecer a jaula vamos editar o arquivo /​etc/​default/​bind9 ​
 +
 +<sxh bash>
 +
 +vim /​etc/​default/​bind9
 +RESOLVCONF=yes
 +OPTIONS="​-u bind -t /​var/​lib/​named"​
 +</​sxh>​
 +Agora vamos ajustar o /​etc/​resolv.conf o arquivo tem que ficar como abaixo
 +<sxh bash>
 +
 +vim /​etc/​resolv.conf
 +domain douglasqsantos.com.br
 +nameserver 127.0.0.1
 +</​sxh>​
 +Vamos acertar o arquivo /​etc/​bind/​named.conf.options deixe ele como abaixo eu estou definindo a minha rede interna como 10.0.0.0/23 mude ela conforme a necessidade
 +
 +<sxh bash>
 +
 +vim /​etc/​bind/​named.conf.options
 +#/​etc/​bind/​named.conf.options
 +options {
 + ​directory "/​var/​cache/​bind";​
 + ​managed-keys-directory "/​var/​cache/​bind/​dynamic";​
 + ​auth-nxdomain no;
 + ​listen-on-v6 { any; };
 + ​listen-on { 127.0.0.1/​32;​ 10.0.0.0/​23;​ };
 + ​allow-query { any; };
 + ​recursion no;
 + ​version "Nao Disponivel";​
 +### Habilita DNSSEC ###
 + ​dnssec-enable yes;
 + ​dnssec-validation yes;
 + ​dnssec-lookaside auto;
 +};
 +
 +#​Controles ​
 +include "/​etc/​bind/​rndc.key";​
 +controls {
 +        inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { rndc-key; };
 +};
 +
 +#LOGS
 +logging {
 + ​channel xfer-log {
 + file "/​var/​log/​named.log";​
 + ​print-category yes;
 + ​print-severity yes;
 + ​print-time yes;
 + ​severity info;
 + };
 + ​category xfer-in { xfer-log; };
 + ​category xfer-out { xfer-log; };
 + ​category notify { xfer-log; };
 +
 + ​channel update-debug {
 + file "/​var/​log/​named-update-debug.log";​
 + ​severity ​ debug 3;
 + ​print-category yes;
 + ​print-severity yes;
 + ​print-time ​     yes;
 + };
 + ​channel security-info ​   {
 + file "/​var/​log/​named-auth-info.log";​
 + ​severity ​ info;
 + ​print-category yes;
 + ​print-severity yes;
 + ​print-time ​     yes;
 + };
 + ​category update { update-debug;​ };
 + ​category security { security-info;​ };
 + };
 +
 +#Controle de ancoras de DNSSEC
 +include "/​etc/​bind/​bind.keys";​
 +</​sxh>​
 +
 +Agora vamos acertar o nosso arquivo /​etc/​bind/​named.conf deixe ele como abaixo
 +
 +<sxh bash>
 +
 +vim /​etc/​bind/​named.conf
 +include "/​etc/​bind/​named.conf.options";​
 +include "/​etc/​bind/​named.conf.local";​
 +include "/​etc/​bind/​named.conf.internal-zones";​
 +include "/​etc/​bind/​named.conf.external-zones";​
 +</​sxh>​
 +
 +Agora vamos configurar a nossa view interna o arquivo /​etc/​bind/​named.conf.internal-zones como já comentado estou utilizando a rede 10.0.0.0/23 para a minha rede interna mude conforme a necessidade. ​
 +
 +<sxh bash>
 +
 +vim /​etc/​bind/​named.conf.internal-zones
 +#Definindo quem vão ser os nossos hosts internos, ex: a nossa rede e a maquina local
 +acl "​internal_hosts"​ {
 + ​10.0.0.0/​23;​
 + ​127.0.0.1/​32;​
 +};
 +
 +#Definindo qual vai ser o ip do servidor slave que vai poder receber a replicação da view internal
 +acl "​internal_slave"​ {
 + ​10.0.0.27;​
 +};
 +
 +#​Definição da View interna
 +view "​internal"​ {
 +
 +#Definindo quais clientes vão poder consultar essa view
 + ​match-clients {
 + ​!10.0.0.28;​
 + ​internal_hosts;​
 + };
 +
 +#O nossos clientes da view interna vão poder efetuar consultas recursivas
 + ​recursion yes;
 +
 +#Para qual servidor vai ser liberado a transferencia dessa view.
 + ​allow-transfer {
 + ​internal_slave;​
 + };
 +
 +#Quem o bind vai notificar em caso de alterações de zona.
 + ​also-notify {
 + ​10.0.0.27;​
 + };
 +
 +#Zonas hint aonde temos as definições dos root masters
 + zone "​."​ {
 + type hint;
 + file "/​etc/​bind/​db.root";​
 + };
 +
 +#Zonas internas
 + zone "​localhost"​ {
 + type master;
 + file "/​etc/​bind/​db.local";​
 + };
 +
 +zone "​127.in-addr.arpa"​ {
 + type master;
 + file "/​etc/​bind/​db.127";​
 + };
 +
 + zone "​0.in-addr.arpa"​ {
 + type master;
 + file "/​etc/​bind/​db.0";​
 + };
 +
 + zone "​255.in-addr.arpa"​ {
 + type master;
 + file "/​etc/​bind/​db.255";​
 + };
 +
 +#Meu dominio de teste.
 + zone "​douglasqsantos.com.br"​ {
 + type master;
 + file "​db.douglasqsantos.com.br.internal";​
 + };
 +
 +};
 +</​sxh>​
 +
 +Agora vamos configurar a View Externa /​etc/​bind/​named.conf.external-zones
 +<sxh bash>
 +
 +vim /​etc/​bind/​named.conf.external-zones
 +#Definindo os clientes locais o nome dessa acl tem que ser diferente da acl da view interna
 +acl "​rede_local"​ {
 + ​10.0.0.0/​23;​
 + ​127.0.0.1/​32;​
 +};
 +
 +#Defindo o ip do servidor slave para a view externa
 +acl "​external_slave"​ {
 + ​10.0.0.28;​
 +};
 +
 +#​Definição da View externa
 +view "​external"​ {
 +
 + #​Definição dos clientes que vão poder consultar essa view
 + ​match-clients {
 + ​external_slave;​
 + ​!rede_local;​
 + any;
 + };
 +
 + #Os clientes dessa view não vão poder efetuar consultas recursivas
 + ​recursion no;
 +
 + #Para qual servidor vai ser liberada a transferencia dessa view
 + ​allow-transfer {
 + ​external_slave;​
 + };
 +
 + #Quem o bind vai notificar quando for efetuada alguma alteração nas zonas
 + ​also-notify {
 + ​10.0.0.28;​
 + };
 +
 + #A minha zona de teste.
 + zone "​douglasqsantos.com.br"​ {
 + type master;
 + file "​db.douglasqsantos.com.br.external";​
 + };
 +};
 +</​sxh>​
 +
 +Vamos agora criar os arquivos das zonas /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.internal
 +<sxh dns>
 +
 +vim /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.internal
 +$TTL 86400
 +@ IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 + ​2011061703 ​ ; Serial
 + ​3600 ​      ; Refresh
 + ​1800 ​       ; Retry
 + ​1209600 ​     ; Expire
 + 3600 )     ; Minimum
 +
 +;
 +@               ​IN ​     NS   ​douglasqsantos.com.br.
 +douglasqsantos.com.br. IN TXT "​v=spf1 a mx ip4:​10.0.0.0/​23 -all"
 +mail.douglasqsantos.com.br IN TXT "​v=spf1 a -all"
 +
 +@               ​IN ​     NS   ​ns1.douglasqsantos.com.br.
 +@               ​IN ​     NS   ​ns2.douglasqsantos.com.br.
 +@               ​IN ​     MX   0 mail.douglasqsantos.com.br.
 +
 +;NAME SERVERS
 +@               ​IN ​     A    10.0.0.25
 +ns1             ​IN ​     A    10.0.0.25
 +ns2             ​IN ​     A    10.0.0.27
 +dns             ​IN ​     A    10.0.0.25
 +
 +;MAIL SERVERS
 +mail            IN      A    10.0.0.25
 +imap            IN      CNAME mail
 +pop             ​IN ​     CNAME mail
 +smtp            IN      CNAME mail
 +webmail ​        ​IN ​     CNAME mail
 +
 +;WEB SERVERS
 +www             ​IN ​     A    10.0.0.27
 +ftp             ​IN ​     CNAME www
 +mailadmin ​      ​IN ​     CNAME www
 +</​sxh>​
 +
 +Agora vamos configurar o arquivo da view externa /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.external
 +<sxh dns>
 +
 +vim /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.external
 +$TTL 86400
 +@ IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 + ​2011061703 ​ ; Serial
 + ​3600 ​      ; Refresh
 + ​1800 ​       ; Retry
 + ​1209600 ​     ; Expire
 + 3600 )     ; Minimum
 +
 +;
 +@               ​IN ​     NS   ​douglasqsantos.com.br.
 +douglasqsantos.com.br. IN TXT "​v=spf1 a mx ip4:​200.200.200.0/​23 -all"
 +mail.douglasqsantos.com.br IN TXT "​v=spf1 a -all"
 +
 +@               ​IN ​     NS   ​ns1.douglasqsantos.com.br.
 +@               ​IN ​     NS   ​ns2.douglasqsantos.com.br.
 +@               ​IN ​     MX   0 mail.douglasqsantos.com.br.
 +
 +;NAME SERVERS
 +@               ​IN ​     A    200.200.200.25
 +ns1             ​IN ​     A    200.200.200.25
 +ns2             ​IN ​     A    200.200.200.27
 +dns             ​IN ​     A    200.200.200.25
 +
 +;MAIL SERVERS
 +mail            IN      A    200.200.200.25
 +imap            IN      CNAME mail
 +pop             ​IN ​     CNAME mail
 +smtp            IN      CNAME mail
 +webmail ​        ​IN ​     CNAME mail
 +
 +;WEB SERVERS
 +www             ​IN ​     A    200.200.200.27
 +ftp             ​IN ​     CNAME www
 +mailadmin ​      ​IN ​     CNAME www
 +</​sxh>​
 +
 +
 +Agora já podemos reiniciar o nosso bind
 +<sxh bash>
 +
 +/​etc/​init.d/​bind9 restart
 +</​sxh>​
 +Vamos dar uma olhada nos logs
 +<sxh bash>
 +
 +tail -f /​var/​log/​syslog
 +Jun 17 15:46:28 dns1 named[1834]:​ zone douglasqsantos.com.br/​IN/​external:​ loaded serial 2011061703
 +Jun 17 15:46:28 dns1 named[1834]:​ managed-keys-zone ./​IN/​external:​ loading from master file 3c4623849a49a53911c4a3e48d8cead8a1858960bccdea7a1b978d73ec2f06d7.mkeys failed: file not found
 +Jun 17 15:46:28 dns1 named[1834]:​ managed-keys-zone ./​IN/​external:​ loaded serial 0
 +Jun 17 15:46:28 dns1 named[1834]:​ running
 +Jun 17 15:46:28 dns1 named[1834]:​ zone 0.in-addr.arpa/​IN/​internal:​ sending notifies (serial 1)
 +Jun 17 15:46:28 dns1 named[1834]:​ zone localhost/​IN/​internal:​ sending notifies (serial 2)
 +Jun 17 15:46:28 dns1 named[1834]:​ zone 127.in-addr.arpa/​IN/​internal:​ sending notifies (serial 1)
 +Jun 17 15:46:28 dns1 named[1834]:​ zone 255.in-addr.arpa/​IN/​internal:​ sending notifies (serial 1)
 +Jun 17 15:46:28 dns1 named[1834]:​ zone douglasqsantos.com.br/​IN/​internal:​ sending notifies (serial 2011061703)
 +Jun 17 15:46:28 dns1 named[1834]:​ zone douglasqsantos.com.br/​IN/​external:​ sending notifies (serial 2011061703)
 +</​sxh>​
 +
 +Como pode ser notado acima está faltando um arquivo por enquanto porém ele não existia quando iniciamos o bind, após iniciar o bind que este arquivo vai ser gerado podemos visualizar os arquivos em
 +<sxh bash>
 +
 +ls /​var/​lib/​named/​var/​cache/​bind/​dynamic
 +3bed2cb3a3acf7b6a8ef408420cc682d5520e26976d354254f528c965612054f.mkeys ​     3c4623849a49a53911c4a3e48d8cead8a1858960bccdea7a1b978d73ec2f06d7.mkeys
 +3bed2cb3a3acf7b6a8ef408420cc682d5520e26976d354254f528c965612054f.mkeys.jnl ​ 3c4623849a49a53911c4a3e48d8cead8a1858960bccdea7a1b978d73ec2f06d7.mkeys.jnl
 +</​sxh>​
 +
 +Caso esteja trabalhando com somente uma view que é a default vamos ter o arquivo managed-keys.bind e para cada nova view vai ser acrescentado um novo arquivo *.mkeys
 +
 +Caso os arquivo *.mkyes já estejam criados no diretório /​var/​lib/​named/​var/​cache/​bind/​dynamic podemos mandar reiniciar novamente o bind para ele carregar estes arquivo
 +<sxh bash>
 +
 +/​etc/​init.d/​bind9 restart
 +</​sxh>​
 +
 +Após reiniciar podemos acompanhar nos logs
 +<sxh bash>
 +
 +tail -f /​var/​log/​syslog
 +Jun 17 15:48:28 dns1 named[9583]:​ set up managed keys zone for view internal, file '/​var/​cache/​bind/​dynamic/​3bed2cb3a3acf7b6a8ef408420cc682d5520e26976d354254f528c965612054f.mkeys'​
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: 254.169.IN-ADDR.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: 2.0.192.IN-ADDR.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: 100.51.198.IN-ADDR.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: 113.0.203.IN-ADDR.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: 255.255.255.255.IN-ADDR.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: D.F.IP6.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: 8.E.F.IP6.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: 9.E.F.IP6.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: A.E.F.IP6.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: B.E.F.IP6.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ automatic empty zone: view internal: 8.B.D.0.1.0.0.2.IP6.ARPA
 +Jun 17 15:48:28 dns1 named[9583]:​ set up managed keys zone for view external, file '/​var/​cache/​bind/​dynamic/​3c4623849a49a53911c4a3e48d8cead8a1858960bccdea7a1b978d73ec2f06d7.mkeys'​
 +</​sxh>​
 +
 +Vamos efetuar alguns teste de consultas
 +
 +Vamos consultar o registro www do domínio douglasqsantos.com.br
 +<sxh bash>
 +
 +nslookup www
 +Server: ​        ​127.0.0.1
 +Address: ​       127.0.0.1#​53
 +
 +Name:   ​www.douglasqsantos.com.br
 +Address: 10.0.0.27
 +</​sxh>​
 +Vamos agora consultar o registro ns1.douglasqsantos.com.br
 +<sxh bash>
 +
 +nslookup ns1.douglasqsantos.com.br
 +Server: ​        ​127.0.0.1
 +Address: ​       127.0.0.1#​53
 +
 +Name:   ​ns1.douglasqsantos.com.br
 +Address: 10.0.0.25
 +</​sxh>​
 +
 +====== Configuração do Servidor Slave ======
 +
 +Instalando os pacotes
 +<sxh bash>
 +
 +aptitude update
 +aptitude install bind9 dnsutils dnssec-tools libnet-dns-sec-perl libmailtools-perl libcrypt-openssl-random-perl -y
 +</​sxh>​
 +
 +Agora vamos parar o nosso Bind para poder efetuar as modificações
 +<sxh bash>
 +
 +/​etc/​init.d/​bind9 stop
 +</​sxh>​
 +
 +Agora vamos ter que criar a nossa jaula
 +<sxh bash>
 +
 +mkdir -p /​var/​lib/​named/​etc
 +mkdir -p /​var/​lib/​named/​dev
 +mkdir -p /​var/​lib/​named/​var/​log
 +mkdir -p /​var/​lib/​named/​var/​cache/​bind
 +mkdir -p /​var/​lib/​named/​var/​cache/​bind/​slave
 +mkdir -p /​var/​lib/​named/​var/​cache/​bind/​dynamic
 +mkdir -p /​var/​lib/​named/​var/​cache/​bind/​keys/​transferencias
 +mkdir -p /​var/​lib/​named/​var/​run/​bind/​run
 +mknod /​var/​lib/​named/​dev/​null c 1 3
 +mknod /​var/​lib/​named/​dev/​random c 1 8
 +mknod /​var/​lib/​named/​dev/​zero c 1 5
 +</​sxh>​
 +
 +Agora vamos ajustar as permissões
 +<sxh bash>
 +
 +chmod 666 /​var/​lib/​named/​dev/​{null,​random,​zero}
 +chown -R bind:bind /​var/​lib/​named/​var/​*
 +</​sxh>​
 +
 +Agora vamos ajustar as configurações
 +<sxh bash>
 +
 +mv /etc/bind /​var/​lib/​named/​etc
 +ln -sf /​var/​lib/​named/​etc/​bind /etc/bind
 +cp /​etc/​localtime /​var/​lib/​named/​etc
 +chown -R bind:bind /​var/​lib/​named/​etc/​bind
 +chown -R root:bind /​var/​lib/​named/​var/​cache/​bind/​dynamic
 +chmod -R 775 /​var/​lib/​named/​var/​cache/​bind/​dynamic
 +</​sxh>​
 +
 +Agora vamos ajustar o arquivo /​etc/​default/​bind9 de configuração do bind para ele reconhecer a jaula
 +<sxh bash>
 +
 +vim /​etc/​default/​bind9
 +RESOLVCONF=yes
 +OPTIONS="​-u bind -t /​var/​lib/​named"​
 +</​sxh>​
 +Agora vamos ajustar o /​etc/​resolv.conf o arquivo tem que ficar como abaixo
 +<sxh bash>
 +
 +vim /​etc/​resolv.conf
 +domain douglasqsantos.com.br
 +nameserver 127.0.0.1
 +</​sxh>​
 +Vamos acertar o arquivo /​etc/​bind/​named.conf.options deixe ele como abaixo eu estou definindo a minha rede interna como 10.0.0.0/23 mude ela conforme a necessidade
 +<sxh bash>
 +
 +vim /​etc/​bind/​named.conf.options
 +#/​etc/​bind/​named.conf.options
 +options {
 + ​directory "/​var/​cache/​bind";​
 + ​managed-keys-directory "/​var/​cache/​bind/​dynamic";​
 + ​auth-nxdomain no;
 + ​listen-on-v6 { any; };
 + ​listen-on { 127.0.0.1/​32;​ 10.0.0.0/​23;​ };
 + ​allow-query { any; };
 + ​recursion no;
 + ​version "Nao Disponivel";​
 +### Habilita DNSSEC ###
 + ​dnssec-enable yes;
 + ​dnssec-validation yes;
 + ​dnssec-lookaside auto;
 +};
 +
 +#​Controles ​
 +include "/​etc/​bind/​rndc.key";​
 +controls {
 +        inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { rndc-key; };
 +};
 +
 +#LOGS
 +logging {
 + ​channel xfer-log {
 + file "/​var/​log/​named.log";​
 + ​print-category yes;
 + ​print-severity yes;
 + ​print-time yes;
 + ​severity info;
 + };
 + ​category xfer-in { xfer-log; };
 + ​category xfer-out { xfer-log; };
 + ​category notify { xfer-log; };
 +
 + ​channel update-debug {
 + file "/​var/​log/​named-update-debug.log";​
 + ​severity ​ debug 3;
 + ​print-category yes;
 + ​print-severity yes;
 + ​print-time ​     yes;
 + };
 + ​channel security-info ​   {
 + file "/​var/​log/​named-auth-info.log";​
 + ​severity ​ info;
 + ​print-category yes;
 + ​print-severity yes;
 + ​print-time ​     yes;
 + };
 + ​category update { update-debug;​ };
 + ​category security { security-info;​ };
 + };
 +
 +#Controle de ancoras de DNSSEC
 +include "/​etc/​bind/​bind.keys";​
 +</​sxh>​
 +
 +Agora vamos acertar o nosso arquivo /​etc/​bind/​named.conf deixe ele como abaixo
 +<sxh bash>
 +
 +vim /​etc/​bind/​named.conf
 +#/​etc/​bind/​named.conf
 +include "/​etc/​bind/​named.conf.options";​
 +include "/​etc/​bind/​named.conf.local";​
 +include "/​etc/​bind/​named.conf.internal-zones";​
 +include "/​etc/​bind/​named.conf.external-zones";​
 +</​sxh>​
 +Agora vamos configurar a nossa view interna /​etc/​bind/​named.conf.internal-zones como já comentado estou utilizando a rede 10.0.0.0/23 para a minha rede interna mude conforme a necessidade.
 +<sxh bash>
 +
 +vim /​etc/​bind/​named.conf.internal-zones
 +#Vamos definir quem é o nosso servidor master
 +acl "​dns_masters"​ {
 + ​10.0.0.25;​
 +};
 +
 +#Vamos definir quais são os nossos hosts internos
 +acl "​internal_hosts"​ {
 + ​10.0.0.0/​23;​
 + ​127.0.0.0/​32;​
 +};
 +
 +#Vamos definir a nossa view interna
 +view "​internal"​ {
 +
 + #​Vamos definir quais são os clientes dessa view
 + ​match-clients {
 + ​internal_hosts;​
 + };
 +
 + #Os clientes dessa view vão poder efetuar consultas recursvas
 + ​recursion yes;
 +
 + #​Quais os servidores que vão ser noficados caso ocorra alterações nas zonas.
 + ​allow-notify {
 + ​dns_masters;​
 + };
 +
 + #Nao disponibiliza transferencia de zona do servidor SLAVE
 + ​allow-transfer {
 + none;
 + };
 +
 +
 + #Zona que define os root masters
 + zone "​."​ {
 + type hint;
 + file "/​etc/​bind/​db.root";​
 + };
 +
 + #​Zonas locais
 + zone "​localhost"​ {
 + type master;
 + file "/​etc/​bind/​db.local";​
 + };
 +
 + zone "​127.in-addr.arpa"​ {
 + type master;
 + file "/​etc/​bind/​db.127";​
 + };
 +
 +zone "​0.in-addr.arpa"​ {
 + type master;
 + file "/​etc/​bind/​db.0";​
 + };
 +
 + zone "​255.in-addr.arpa"​ {
 + type master;
 + file "/​etc/​bind/​db.255";​
 + };
 +
 + #​Minha zona teste que vai ser replicada do servidor master na view interna.
 + zone "​douglasqsantos.com.br"​ {
 + type slave;
 + ​masters { 10.0.0.25; }; #Ip do nosso servidor master
 + ​transfer-source ​ 10.0.0.27; #​Especificando qual transferencia do master que eu vou poder receber nessa view
 + file "​slave/​db.douglasqsantos.com.br.internal";​
 + };
 +};
 +</​sxh>​
 +Agora vamos configurar a view externa /​etc/​bind/​named.conf.external-zones ​
 +<sxh bash>
 +
 +vim /​etc/​bind/​named.conf.external-zones
 +#Definindo qual vai ser o nosso servidor master não esquecendo que o nome dessa acl não pode ser o mesmo da acl internal
 +acl "​master"​ {
 + ​10.0.0.25;​
 +};
 +
 +#Definindo os nossos hosts locais
 +acl "​rede_local"​ {
 + ​10.0.0.0/​23;​
 + ​127.0.0.1/​32;​
 +};
 +
 +#​Definição da nossa view externa
 +view "​external"​ {
 +
 + #​Definindo quais os clientes que podem efetuar consultas nessa view e quais não podem
 + # o simbolo ''​ define que é uma negação então a rede local não pode pesquisar nessa view
 + ​match-clients {
 + ​!rede_local;​
 + any;
 + };
 +
 + #Os clientes dessa zona não podem efetuar consultas recursivas
 + ​recursion no;
 +
 + #Quem vai receber notificações de modificações dessa zona 
 + ​allow-notify {
 + ​master;​
 + };
 + 
 + #Nao disponibiliza transferencia de zona do servidor SLAVE
 + ​allow-transfer {
 + none;
 + };
 +
 + #​Minha zona teste que vai ser replicada do servidor master na view externa.
 + zone "​douglasqsantos.com.br"​ {
 + type slave;
 + ​masters { 10.0.0.25; }; #Definindo quem é o nosso servidor master
 + ​transfer-source 10.0.0.28; #​Especificando qual transferencia do master que eu vou poder receber nessa view
 + file "​slave/​db.douglasqsantos.com.br.external";​
 + };
 +
 +};
 +</​sxh>​
 +
 +Agora já podemos reiniciar o nosso bind
 +<sxh bash>
 +
 +/​etc/​init.d/​bind9 restart
 +</​sxh>​
 +
 +Vamos dar uma olhada nos logs
 +<sxh bash>
 +
 +tail -f /​var/​log/​syslog
 +Jun 17 16:26:56 dns2 named[1643]:​ zone douglasqsantos.com.br/​IN/​internal:​ Transfer started.
 +Jun 17 16:26:56 dns2 named[1643]:​ transfer of '​douglasqsantos.com.br/​IN/​internal'​ from 10.0.0.25#​53:​ connected using 10.0.0.27#​36763
 +Jun 17 16:26:56 dns2 named[1643]:​ zone douglasqsantos.com.br/​IN/​internal:​ transferred serial 2011061703
 +Jun 17 16:26:56 dns2 named[1643]:​ transfer of '​douglasqsantos.com.br/​IN/​internal'​ from 10.0.0.25#​53:​ Transfer completed: 1 messages, 20 records, 489 bytes, 0.001 secs (489000 bytes/sec)
 +Jun 17 16:26:56 dns2 named[1643]:​ zone douglasqsantos.com.br/​IN/​internal:​ sending notifies (serial 2011061703)
 +Jun 17 16:26:56 dns2 named[1643]:​ zone douglasqsantos.com.br/​IN/​external:​ Transfer started.
 +Jun 17 16:26:56 dns2 named[1643]:​ transfer of '​douglasqsantos.com.br/​IN/​external'​ from 10.0.0.25#​53:​ connected using 10.0.0.28#​54526
 +Jun 17 16:26:56 dns2 named[1643]:​ zone douglasqsantos.com.br/​IN/​external:​ transferred serial 2011061703
 +Jun 17 16:26:56 dns2 named[1643]:​ transfer of '​douglasqsantos.com.br/​IN/​external'​ from 10.0.0.25#​53:​ Transfer completed: 1 messages, 20 records, 494 bytes, 0.002 secs (247000 bytes/sec)
 +Jun 17 16:26:56 dns2 named[1643]:​ zone douglasqsantos.com.br/​IN/​external:​ sending notifies (serial 2011061703)
 +</​sxh>​
 +Como pode ser notado esta tudo ok
 +
 +Em caso de problemas com chaves mkeys como ex:
 +<sxh bash>
 +
 +Sep 27 10:16:12 ldap named[9710]:​ managed-keys-zone ./​IN/​internal:​ loading from master file /​var/​cache/​bind/​dynamic/​3bed2cb3a3acf7b6a8ef408420cc682d5520e26976d354254f528c965612054f.mkeys failed: file not found
 +Sep 27 10:16:12 ldap named[9710]:​ managed-keys-zone ./​IN/​internal:​ loaded serial 0
 +Sep 27 10:16:12 ldap named[9710]:​ zone douglasqsantos.com.br/​IN/​external:​ loaded serial 2011061703
 +Sep 27 10:16:12 ldap named[9710]:​ managed-keys-zone ./​IN/​external:​ loading from master file /​var/​cache/​bind/​dynamic/​3c4623849a49a53911c4a3e48d8cead8a1858960bccdea7a1b978d73ec2f06d7.mkeys failed: file not found
 +</​sxh>​
 +
 +Como pode ser notado acima está faltando dois arquivo por enquanto porém ele não existia quando iniciamos o bind, após iniciar o bind que este arquivo vai ser gerado podemos visualizar os arquivos em
 +<sxh bash>
 +
 +ls /​var/​lib/​named/​var/​cache/​bind/​dynamic
 +3bed2cb3a3acf7b6a8ef408420cc682d5520e26976d354254f528c965612054f.mkeys ​     3c4623849a49a53911c4a3e48d8cead8a1858960bccdea7a1b978d73ec2f06d7.mkeys
 +3bed2cb3a3acf7b6a8ef408420cc682d5520e26976d354254f528c965612054f.mkeys.jnl ​ 3c4623849a49a53911c4a3e48d8cead8a1858960bccdea7a1b978d73ec2f06d7.mkeys.jnl
 +</​sxh>​
 +
 +Caso esteja trabalhando com somente uma view que é a default vamos ter o arquivo managed-keys.bind e para cada nova view vai ser acrescentado um novo arquivo *.mkeys
 +
 +Caso os arquivo *.mkyes já estejam criados no diretório /​var/​lib/​named/​var/​cache/​bind/​dynamic podemos mandar reiniciar novamente o bind para ele carregar estes arquivo
 +<sxh bash>
 +
 +/​etc/​init.d/​bind9 restart
 +</​sxh>​
 +
 +
 +Vamos agorar verificar se os arquivos estão certos temos que ter um com os endereçõs de ip 10.0.0.x e outro com 200.200.200.x
 +<sxh bash>
 +
 +cat /​var/​lib/​named/​var/​cache/​bind/​slave/​db.douglasqsantos.com.br.internal
 +$ORIGIN .
 +$TTL 86400      ; 1 day
 +douglasqsantos.com.br ​            IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 + ​2011061703 ; serial
 + ​3600 ​      ; refresh (1 hour)
 + ​1800 ​      ; retry (30 minutes)
 + ​1209600 ​   ; expire (2 weeks)
 + ​3600 ​      ; minimum (1 hour)
 + )
 + ​NS ​     ns1.douglasqsantos.com.br.
 + ​NS ​     ns2.douglasqsantos.com.br.
 + ​NS ​     douglasqsantos.com.br.
 + ​A ​      ​10.0.0.25
 + ​MX ​     0 mail.douglasqsantos.com.br.
 + ​TXT ​    "​v=spf1 a mx ip4:​10.0.0.0/​23 -all"
 +$ORIGIN douglasqsantos.com.br.
 +dns                     ​A ​      ​10.0.0.25
 +ftp                     ​CNAME ​  www
 +imap                    CNAME   mail
 +mail.douglasqsantos.com.br ​       TXT     "​v=spf1 a -all"
 +mail                    A       ​10.0.0.25
 +mailadmin ​              ​CNAME ​  www
 +ns1                     ​A ​      ​10.0.0.25
 +ns2                     ​A ​      ​10.0.0.27
 +pop                     ​CNAME ​  mail
 +smtp                    CNAME   mail
 +webmail ​                ​CNAME ​  mail
 +www                     ​A ​      ​10.0.0.27
 +</​sxh>​
 +Agora vamos consultar o outro arquivo
 +<sxh bash>
 +
 +cat /​var/​lib/​named/​var/​cache/​bind/​slave/​db.douglasqsantos.com.br.external
 +$ORIGIN .
 +$TTL 86400      ; 1 day
 +douglasqsantos.com.br ​            IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 + ​2011061703 ; serial
 + ​3600 ​      ; refresh (1 hour)
 + ​1800 ​      ; retry (30 minutes)
 + ​1209600 ​   ; expire (2 weeks)
 + ​3600 ​      ; minimum (1 hour)
 + )
 + ​NS ​     ns1.douglasqsantos.com.br.
 + ​NS ​     ns2.douglasqsantos.com.br.
 + ​NS ​     douglasqsantos.com.br.
 + ​A ​      ​200.200.200.25
 + ​MX ​     0 mail.douglasqsantos.com.br.
 + ​TXT ​    "​v=spf1 a mx ip4:​200.200.200.0/​23 -all"
 +$ORIGIN douglasqsantos.com.br.
 +dns                     ​A ​      ​200.200.200.25
 +ftp                     ​CNAME ​  www
 +imap                    CNAME   mail
 +mail.douglasqsantos.com.br ​       TXT     "​v=spf1 a -all"
 +mail                    A       ​200.200.200.25
 +mailadmin ​              ​CNAME ​  www
 +ns1                     ​A ​      ​200.200.200.25
 +ns2                     ​A ​      ​200.200.200.27
 +pop                     ​CNAME ​  mail
 +smtp                    CNAME   mail
 +webmail ​                ​CNAME ​  mail
 +www                     ​A ​      ​200.200.200.27
 +</​sxh>​
 +Vamos efetuar alguns teste de consultas
 +
 +Vamos consultar o registro www do domínio douglasqsantos.com.br
 +<sxh bash>
 +
 +nslookup www
 +Server: ​        ​127.0.0.1
 +Address: ​       127.0.0.1#​53
 +
 +Name:   ​www.douglasqsantos.com.br
 +Address: 10.0.0.27
 +</​sxh>​
 +Vamos consultar o registro ns1.douglasqsantos.com.br
 +<sxh bash>
 +
 +nslookup ns1.douglasqsantos.com.br
 +Server: ​        ​127.0.0.1
 +Address: ​       127.0.0.1#​53
 +
 +Name:   ​ns1.douglasqsantos.com.br
 +Address: 10.0.0.25
 +</​sxh>​
 +
 +Até aqui a implementação é quase idêntica a configuração de um servidor sem DNSSEC, porém agora vamos gerar as chaves para transferências das zonas de modo criptogrado e depois vamos assinar as zonas.
 +
 +Vamos criar a chave para transferência no servidor SLAVE
 +
 +Vamos acessar o diretório que vai armazenar as chaves
 +<sxh bash>
 +
 +cd /​var/​lib/​named/​var/​cache/​bind/​keys/​transferencias
 +</​sxh>​
 +
 +Agora precisamos gerar a nossa chave no SLAVE
 +<sxh bash>
 +
 +dnssec-keygen ​ -r /​dev/​urandom -a hmac-md5 -b 128 -n host dns1.douglasqsantos.com.br
 +</​sxh>​
 +
 +Aqui acima passamos o -r um meio randomico -a algortimo de criptografia -b quantidade de bits para a criptografia -n host nome da chave.
 +
 +Agora vamos visualizar a nossa chave
 +<sxh bash>
 +
 +cat *.private
 +Private-key-format:​ v1.3
 +Algorithm: 157 (HMAC_MD5)
 +Key: FvUhSxHEjcaavqtmSNTQ1A=====
 +Bits: AAA=
 +Created: 20120927194714
 +Publish: 20120927194714
 +Activate: 20120927194714
 +</​sxh>​
 +
 +A nossa chave foi gerada com sucesso agora precisamos configurar o nosso servidor SLAVE para ele reconhecer a nossa chave, vamos adicionar no final do arquivo /​etc/​bind/​named.conf.options
 +<sxh bash>
 +
 +vim /​etc/​bind/​named.conf.options
 +[...]
 +#Chave de transferencia que nós geramos
 +key TRANSFER {
 +   ​algorithm hmac-md5;
 +   ​secret "​FvUhSxHEjcaavqtmSNTQ1A=====";​
 +};
 +
 +#Servidor master
 +server 10.101.0.25 {
 +  keys {
 +    TRANSFER;
 +   };
 +};
 +</​sxh>​
 +
 +Agora vamos reiniciar o bind9 
 +<sxh bash>
 +
 +/​etc/​init.d/​bind9 restart
 +</​sxh>​
 +
 +Agora precisamos configurar o servidor MASTER com a mesma chave que inserimos no servidor slave não precisamos gerar ela, somente informar ela no servidor MASTER, vamos inserir no final do arquivo /​etc/​bind/​named.conf.options
 +<sxh bash>
 +
 +vim /​etc/​bind/​named.conf.options
 +[...]
 +#Chave de transferencia que nós geramos
 +key TRANSFER {
 +   ​algorithm hmac-md5;
 +   ​secret "​FvUhSxHEjcaavqtmSNTQ1A=====";​
 +};
 +
 +#Servidor slave VIEW INTERNA
 +server 10.101.0.27 {
 +  keys {
 +    TRANSFER;
 +   };
 +};
 +
 +#Servidor slave VIEW EXTERNA
 +server 10.101.0.28 {
 +  keys {
 +    TRANSFER;
 +   };
 +};
 +</​sxh>​
 +
 +Agora precisamos reiniciar o serviço do bind9
 +<sxh bash>
 +
 +/​etc/​init.d/​bind9 restart
 +</​sxh>​
 +
 +Agora ainda no servidor MASTER precisamos criar um diretório que vai armazenar as chaves da nossa zona.
 +<sxh bash>
 +
 +mkdir -p /​var/​lib/​named/​var/​cache/​bind/​keys/​douglasqsantos.com.br
 +</​sxh>​
 +
 +Agora vamos gerar as chaves para o nosso domínio vamos acessar o diretório que vamos armazenar as chaves
 +<sxh bash>
 +
 +cd /​var/​lib/​named/​var/​cache/​bind/​keys/​douglasqsantos.com.br
 +</​sxh>​
 +
 +Agora a geração das chaves para a zona douglasqsantos.com.br com uma vida útil de 1 ano o +31536000 é a quantidade de segundos que tem um ano
 +<sxh bash>
 +
 +zonesigner -genkeys -usensec3 -zone douglasqsantos.com.br /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.internal -endtime +31536000
 +
 +  if zonesigner appears hung, strike keys until the program completes
 +  (see the "​Entropy"​ section in the man page for details)
 +
 +Generating key pair....++++++ ...++++++ ​
 +Generating key pair...............++++++ ..++++++ ​
 +Generating key pair............................................+++ ....................................................................................+++ ​
 +Verifying the zone using the following algorithms: RSASHA256.
 +Zone signing complete:
 +Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
 +                      ZSKs: 1 active, 1 stand-by, 0 revoked
 +
 +zone signed successfully
 +
 +douglasqsantos.com.br:​
 +  KSK (cur) 33586  -b 2048  09/​27/​12 ​ (douglasqsantos.com.br-signset-00003)
 +  ZSK (cur) 40488  -b 1024  09/​27/​12 ​ (douglasqsantos.com.br-signset-00001)
 +  ZSK (pub) 42168  -b 1024  09/​27/​12 ​ (douglasqsantos.com.br-signset-00002)
 +
 +zone will expire in 52 weeks, 1 day, 0 seconds
 +DO NOT delete the keys until this time has passed.
 +</​sxh>​
 +
 +Após executar o comando vamos ter varios novos arquivos neste diretorio
 +<sxh bash>
 +
 +ls
 +douglasqsantos.com.br.krf ​    ​Kdouglas.lan.+008+33586.key ​     Kdouglas.lan.+008+40488.key ​     Kdouglas.lan.+008+42168.key
 +dsset-douglasqsantos.com.br. ​ Kdouglas.lan.+008+33586.private ​ Kdouglas.lan.+008+40488.private ​ Kdouglas.lan.+008+42168.private
 +</​sxh>​
 +
 +O arquivo dsset-douglasqsantos.com.br. armazena as informações que precisamos registrar junto ao RegistroBR e junto a dlv.isc.org vamos visualizar ele
 +<sxh bash>
 +
 +cat dsset-douglasqsantos.com.br. ​
 +douglasqsantos.com.br. ​   IN DS 33586 8 1 19846B0C2B84DC4875BC7311A4CC8076E4ABF59B
 +douglasqsantos.com.br. ​   IN DS 33586 8 2 47CC0C5FCFD41EE9BE0F1C30FE035B6F25A9CE57A232E156056B49A2 D39F6EBC
 +</​sxh>​
 +
 +O arquivo douglasqsantos.com.br.krf contem o controle da configuração da assinatura das zonas como as chaves IDS etc, e os arquivos *.key e *.private são as proprias chaves do DNSSEC.
 +
 +Agora vamos mandar assinar a nossa zona já que temos as chaves
 +<sxh bash>
 +
 +zonesigner -zone douglasqsantos.com.br /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.external ​
 +
 +  if zonesigner appears hung, strike keys until the program completes
 +  (see the "​Entropy"​ section in the man page for details)
 +
 +Verifying the zone using the following algorithms: RSASHA256.
 +Zone signing complete:
 +Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
 +                      ZSKs: 1 active, 1 stand-by, 0 revoked
 +
 +zone signed successfully
 +
 +douglasqsantos.com.br:​
 +  KSK (cur) 33586  -b 2048  09/​27/​12 ​ (douglasqsantos.com.br-signset-00003)
 +  ZSK (cur) 40488  -b 1024  09/​27/​12 ​ (douglasqsantos.com.br-signset-00001)
 +  ZSK (pub) 42168  -b 1024  09/​27/​12 ​ (douglasqsantos.com.br-signset-00002)
 +
 +zone will expire in 52 weeks, 1 day, 0 seconds
 +DO NOT delete the keys until this time has passed.
 +</​sxh>​
 +
 +Após o comando acima o sistema gerou um arquivo .signed que foi assinado com a nossa chave vamos visualizar o seu cabeçalho
 +<sxh bash>
 +
 +head -n 20 /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.external.signed ​
 +; File written on Thu Sep 27 17:08:40 2012
 +; dnssec_signzone version 9.7.3
 +douglasqsantos.com.br. ​   86400 IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 +          2011061710 ; serial
 +          3600       ; refresh (1 hour)
 +          1800       ; retry (30 minutes)
 +          1209600 ​   ; expire (2 weeks)
 +          3600       ; minimum (1 hour)
 +          )
 +      86400 RRSIG SOA 8 2 86400 20130927190840 (
 +          20120927190840 40488 douglasqsantos.com.br.
 +          G8VGtnaj0GsMQlgqV1prWI0zhGk9aqAXqNdj
 +          WD7T8iJ89GlPZ7JN4osHb5aiEYUC60805soL
 +          YILDb/​uTPfHyTsi/​XRszQuNm4pl4Ie09ii77
 +          eSNfzMEtPzloOnOYfb4AIwwD8S3xSuYFqBKU
 +          hyhjKZO6omhXujCokjqtaXYX2Vg= )
 +      86400 NS  ns1.douglasqsantos.com.br.
 +      86400 NS  ns2.douglasqsantos.com.br.
 +      86400 NS  douglasqsantos.com.br.
 +      86400 RRSIG NS 8 2 86400 20130927190840 (
 +</​sxh>​
 +
 +Agora já temos a nossa zona assinada, aqui sempre temos que ter os dois arquivos o db.douglasqsantos.com.br.external que vamos mandar assinar toda vez que fizermos uma alteração para que ele gere um novo db.douglasqsantos.com.br.external.signed com as novas modificações.
 +
 +Agora vamos assinar a nossa zona externa
 +<sxh bash>
 +
 +zonesigner -zone douglasqsantos.com.br /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.internal
 +
 +  if zonesigner appears hung, strike keys until the program completes
 +  (see the "​Entropy"​ section in the man page for details)
 +
 +Verifying the zone using the following algorithms: RSASHA256.
 +Zone signing complete:
 +Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
 +                      ZSKs: 1 active, 1 stand-by, 0 revoked
 +
 +zone signed successfully
 +
 +douglasqsantos.com.br:​
 +  KSK (cur) 33586  -b 2048  09/​27/​12 ​ (douglasqsantos.com.br-signset-00003)
 +  ZSK (cur) 40488  -b 1024  09/​27/​12 ​ (douglasqsantos.com.br-signset-00001)
 +  ZSK (pub) 42168  -b 1024  09/​27/​12 ​ (douglasqsantos.com.br-signset-00002)
 +
 +zone will expire in 52 weeks, 1 day, 0 seconds
 +DO NOT delete the keys until this time has passed.
 +</​sxh>​
 +
 +Já temos agora as duas zonas assinadas para verificarmos se as zonas estão assinadas sem erros podemos testar da seguinte forma
 +<sxh bash>
 +
 +donuts --level 8 -v /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.internal.signed douglasqsantos.com.br
 +--- loading rule file /​usr/​share/​dnssec-tools/​donuts/​rules/​check_nameservers.txt
 +    rules: MEMORIZE_NS_ADDRS DNS_SERVERS_MATCH_DATA
 +--- loading rule file /​usr/​share/​dnssec-tools/​donuts/​rules/​dns.errors.txt
 +    rules: DNS_SOA_REQUIRED MEMORIZE_NS_CNAME_RECORDS DNS_NS_NO_CNAME
 +--- loading rule file /​usr/​share/​dnssec-tools/​donuts/​rules/​dnssec.rules.txt
 +    rules: DNSSEC_RRSIG_TTL_MATCH_ORGTTL DNSSEC_MEMORIZE_NS_RECORDS DNSSEC_CHECK_IF_NSEC3 DNSSEC_MISSING_NSEC_RECORD DNSSEC_MISSING_RRSIG_RECORD DNSSEC_RRSIG_NOT_SIGNING_RRSIG DNSSEC_RRSIG_FOR_NS_GLUE_RECORD DNSSEC_NSEC_FOR_NS_GLUE_RECORD DNSSEC_RRSIG_SIGEXP DNSSEC_NSEC_TTL DNSSEC_NSEC3_TTL DNSSEC_DNSKEY_MUST_HAVE_SAME_NAME DNSSEC_DNSKEY_PROTOCOL_MUST_BE_3 DNSSEC_BOGUS_NS_MEMORIZE DNSSEC_MISSING_RRSIG_RECORD DNSSEC_RRSIG_TTL_MUST_MATCH_RECORD DNSSEC_MISSING_NSEC_RECORD DNSSEC_RRSIG_SIGNER_NAME_MATCHES DNSSEC_NSEC_RRSEC_MUST_NOT_BE_ALONE DNSSEC_MEMORIZE_KEYS DNSSEC_RRSIGS_VERIFY DNSSEC_TWO_ZSKS DNSSEC_OPENSSL_KEY_ISSUES
 +--- loading rule file /​usr/​share/​dnssec-tools/​donuts/​rules/​nsec_check.rules.txt
 +    rules: DNSSEC_NSEC_MEMORIZE DNSSEC_NSEC3_MEMORIZE DNSSEC_NSEC3_CHECK DNSSEC_NSEC_CHECK
 +--- loading rule file /​usr/​share/​dnssec-tools/​donuts/​rules/​parent_child.rules.txt
 +    rules: DNS_MULTIPLE_NS DNSSEC_SUB_NOT_SECURE DNSSEC_DNSKEY_PARENT_HAS_VALID_DS DNSSEC_DS_CHILD_HAS_MATCHING_DNSKEY
 +--- loading rule file /​usr/​share/​dnssec-tools/​donuts/​rules/​recommendations.rules.txt
 +    rules: DNS_REASONABLE_TTLS DNS_NO_DOMAIN_MX_RECORDS
 +--- Analyzing individual records in /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.internal.signed
 +--- Analyzing records for each name in /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.internal.signed
 +results on testing douglasqsantos.com.br:​
 +  rules considered: 38
 +  rules tested: ​  30
 +  records analyzed: 67
 +  names analyzed: 13
 +  errors found: ​  0
 +</​sxh>​
 +
 +Como pode ser notado não temos nenhum erro, agora somente precisamos acertar no arquivo de controle de dns o nome do nosso arquivo trocar de db.douglasqsantos.com.br-internal para db.douglasqsantos.com.br-internal.signed
 +<sxh bash>
 +
 +sed -i '​s/​db.douglasqsantos.com.br.internal/​db.douglasqsantos.com.br.internal.signed/​g' ​ /​etc/​bind/​named.conf.internal-zones
 +sed -i '​s/​db.douglasqsantos.com.br.external/​db.douglasqsantos.com.br.external.signed/​g' ​ /​etc/​bind/​named.conf.external-zones
 +</​sxh>​
 +
 +Agora vamos fazer o mesmo ajuste no servidor SLAVE
 +<sxh bash>
 +
 +sed -i '​s/​db.douglasqsantos.com.br.internal/​db.douglasqsantos.com.br.internal.signed/​g' ​ /​etc/​bind/​named.conf.internal-zones
 +sed -i '​s/​db.douglasqsantos.com.br.external/​db.douglasqsantos.com.br.external.signed/​g' ​ /​etc/​bind/​named.conf.external-zones
 +</​sxh>​
 +
 +Agora vamos mandar reiniciar o bind no servidor MASTER
 +<sxh bash>
 +
 +/​etc/​init.d/​bind9 restart
 +</​sxh>​
 +
 +Agora vamos visualizar os logs
 +<sxh bash>
 +
 +tail -f /​var/​log/​syslog ​
 +Sep 27 17:16:21 dns1 named[2282]:​ command channel listening on 127.0.0.1#​953
 +Sep 27 17:16:21 dns1 named[2282]:​ zone 0.in-addr.arpa/​IN/​internal:​ loaded serial 1
 +Sep 27 17:16:21 dns1 named[2282]:​ zone 127.in-addr.arpa/​IN/​internal:​ loaded serial 1
 +Sep 27 17:16:21 dns1 named[2282]:​ zone 255.in-addr.arpa/​IN/​internal:​ loaded serial 1
 +Sep 27 17:16:21 dns1 named[2282]:​ zone douglasqsantos.com.br/​IN/​internal:​ loaded serial 2011061711 (DNSSEC signed)
 +Sep 27 17:16:21 dns1 named[2282]:​ zone localhost/​IN/​internal:​ loaded serial 2
 +Sep 27 17:16:21 dns1 named[2282]:​ managed-keys-zone ./​IN/​internal:​ loaded serial 3
 +Sep 27 17:16:21 dns1 named[2282]:​ zone douglasqsantos.com.br/​IN/​external:​ loaded serial 2011061710 (DNSSEC signed)
 +Sep 27 17:16:21 dns1 named[2282]:​ managed-keys-zone ./​IN/​external:​ loaded serial 3
 +Sep 27 17:16:21 dns1 named[2282]:​ running
 +</​sxh>​
 +
 +Como pode ser notado o nosso bind já esta reconhecendo que temos uma zona assinada com DNSSEC ;) agora precisamos mandar reiniciar o bind9 do servidor SLAVE
 +<sxh bash>
 +
 +/​etc/​init.d/​bind9 restart
 +</​sxh>​
 +
 +Agora vamos analisar os logs do servidor SLAVE
 +<sxh bash>
 +
 +tail -f /​var/​log/​syslog ​
 +Sep 27 17:17:30 dns2 named[2227]:​ zone 127.in-addr.arpa/​IN/​internal:​ loaded serial 1
 +Sep 27 17:17:30 dns2 named[2227]:​ zone 255.in-addr.arpa/​IN/​internal:​ loaded serial 1
 +Sep 27 17:17:30 dns2 named[2227]:​ zone localhost/​IN/​internal:​ loaded serial 2
 +Sep 27 17:17:30 dns2 named[2227]:​ managed-keys-zone ./​IN/​internal:​ loaded serial 3
 +Sep 27 17:17:30 dns2 named[2227]:​ managed-keys-zone ./​IN/​external:​ loaded serial 3
 +Sep 27 17:17:30 dns2 named[2227]:​ running
 +Sep 27 17:17:30 dns2 named[2227]:​ zone douglasqsantos.com.br/​IN/​internal:​ Transfer started.
 +Sep 27 17:17:30 dns2 named[2227]:​ zone douglasqsantos.com.br/​IN/​internal:​ transferred serial 2011061711: TSIG '​transfer'​
 +Sep 27 17:17:31 dns2 named[2227]:​ zone douglasqsantos.com.br/​IN/​external:​ Transfer started.
 +Sep 27 17:17:31 dns2 named[2227]:​ zone douglasqsantos.com.br/​IN/​external:​ transferred serial 2011061710: TSIG '​transfer'​
 +</​sxh>​
 +
 +Como pode ser notado a nossa transferência esta assinada ;) vamos agora mandar listar os arquivos para confirmar se eles foram transferidos
 +<sxh bash>
 +
 +ls -l /​var/​lib/​named/​var/​cache/​bind/​slave/​
 +total 40
 +-rw-r--r-- 1 bind bind   701 Set 27 17:15 db.douglasqsantos.com.br.external
 +-rw-r--r-- 1 bind bind 11548 Set 27 17:17 db.douglasqsantos.com.br.external.signed
 +-rw-r--r-- 1 bind bind   721 Set 27 17:16 db.douglasqsantos.com.br.internal
 +-rw-r--r-- 1 bind bind 11527 Set 27 17:17 db.douglasqsantos.com.br.internal.signed
 +</​sxh>​
 +
 +Como pode ser notado agora temos os novos arqquivos .signed vamos mandar visualizar o cabeçalho deles
 +
 +Vamos listar o arquivo com as zonas externas
 +<sxh bash>
 +
 +head -n 25 /​var/​lib/​named/​var/​cache/​bind/​slave/​db.douglasqsantos.com.br.external.signed ​
 +$ORIGIN .
 +$TTL 86400  ; 1 day
 +douglasqsantos.com.br ​  IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 +        2011061710 ; serial
 +        3600       ; refresh (1 hour)
 +        1800       ; retry (30 minutes)
 +        1209600 ​   ; expire (2 weeks)
 +        3600       ; minimum (1 hour)
 +        )
 +      RRSIG SOA 8 2 86400 20130927190840 (
 +        20120927190840 40488 douglasqsantos.com.br.
 +        G8VGtnaj0GsMQlgqV1prWI0zhGk9aqAXqNdjWD7T8iJ8
 +        9GlPZ7JN4osHb5aiEYUC60805soLYILDb/​uTPfHyTsi/​
 +        XRszQuNm4pl4Ie09ii77eSNfzMEtPzloOnOYfb4AIwwD
 +        8S3xSuYFqBKUhyhjKZO6omhXujCokjqtaXYX2Vg= )
 +      NS  ns1.douglasqsantos.com.br.
 +      NS  ns2.douglasqsantos.com.br.
 +      NS  douglasqsantos.com.br.
 +      RRSIG NS 8 2 86400 20130927190840 (
 +        20120927190840 40488 douglasqsantos.com.br.
 +        O36ut0SnmLoLqZGO8+sH5zuF9bZvGWs4iT7oWs3MX88H
 +        AtnCulLSv6WwE6cPYI3bkWsxFZaKoWLBMnqFOk2lYbhP
 +        uNoXdIfHVTqXQPSIGjj/​P94UN1QUjufkWiDMylfkIg9p
 +        7XKO16qh250ipVnEYqEoFQ9za1E3+V0EpY9uB1E= )
 +      A 200.200.200.25
 +</​sxh>​
 +
 +Agora vamos mandar listar o arquivo que tem as zonas internas
 +<sxh bash>
 +
 +head -n 25 /​var/​lib/​named/​var/​cache/​bind/​slave/​db.douglasqsantos.com.br.internal.signed ​
 +$ORIGIN .
 +$TTL 86400  ; 1 day
 +douglasqsantos.com.br ​  IN SOA  dns.douglasqsantos.com.br. root.dns.douglasqsantos.com.br. (
 +        2011061711 ; serial
 +        3600       ; refresh (1 hour)
 +        1800       ; retry (30 minutes)
 +        1209600 ​   ; expire (2 weeks)
 +        3600       ; minimum (1 hour)
 +        )
 +      RRSIG SOA 8 2 86400 20130927191129 (
 +        20120927191129 40488 douglasqsantos.com.br.
 +        uf2wAAuJL0x0BU6YtOLB3GXH4WRZl14cGlkyHWlxApaA
 +        OcyzmKywylnJfMN5JJtrYeJgi057sJV013WAGyWk6qAk
 +        vDd6Gy7Pe2xAriTTxorVc+qyxv+bZD7TzXPcVw1vO5FI
 +        LafJAobHlB/​WsA19m+9luAEnSIGlgs33Ce/​vXPg= )
 +      NS  ns1.douglasqsantos.com.br.
 +      NS  ns2.douglasqsantos.com.br.
 +      NS  douglasqsantos.com.br.
 +      RRSIG NS 8 2 86400 20130927191129 (
 +        20120927191129 40488 douglasqsantos.com.br.
 +        Bn5tXN7c1RwOUejpLYDcSNgEPfBEoNZzzyxbN7/​dKRHy
 +        aQ4NJsjsapNzYoCgJjrGC2YM68gfLaL0LwB7m4icm90K
 +        G6ucKxLzlrxAX6be5tiIq9Taz37GXb9Fnxw4XHWswhUE
 +        EPUCEm3YMUS3z6pxTY8mWGa2qlt4nAjWLMOTbmM= )
 +      A 10.101.0.25
 +</​sxh>​
 +
 +Agora todos os registros estão assinados ;)
 +
 +Agora pense que precisamos inserir mais um registro na zona external, com isso vamos precisar reassinar a nossa zona com o seguinte comando não se esqueça que para assinar uma zona precisamos estar no diretório que contém as chaves da zona neste caso em /​var/​lib/​named/​var/​cache/​bind/​keys/​douglasqsantos.com.br
 +<sxh bash>
 +
 +zonesigner -zone douglasqsantos.com.br /​var/​lib/​named/​var/​cache/​bind/​db.douglasqsantos.com.br.external
 +</​sxh>​
 +
 +Caso utilize o DNSSEC virado para internet precisamos se cadastrar em https://​dlv.isc.org/​ para inserir as chaves em um servidor ISC DNSSEC Lookaside Validation aonde o RegistroBR vai procurar as chaves para validar.
 +
 +Após se registrar vamos precisamos criar uma zona vamos precisar adicionar um record que é a primeira entrada do arquivo /​var/​lib/​named/​var/​cache/​bind/​keys/​douglasqsantos.com.br/​dsset-douglasqsantos.com.br.
 +<sxh bash>
 +
 +cat /​var/​lib/​named/​var/​cache/​bind/​keys/​douglasqsantos.com.br/​dsset-douglasqsantos.com.br.
 +douglasqsantos.com.br. ​   IN DS 33586 8 1 19846B0C2B84DC4875BC7311A4CC8076E4ABF59B
 +douglasqsantos.com.br. ​   IN DS 33586 8 2 47CC0C5FCFD41EE9BE0F1C30FE035B6F25A9CE57A232E156056B49A2 D39F6EBC
 +</​sxh>​
 +
 +Após isso vamos precisar inserir um registro do tipo TXT que o dlv nos fornece para validar a zona e mandar assinar novamente e reiniciar o serviço do bind
 +
 +Após isso podemos acompanhar o status da zona ela tem que ficar com o status Good, quando isso acontecer já podemos inserir o DNSSEC no RegistroBR
 +
 +No RegistroBR precisamos selecionar +DNSSEC e nos campos que se habilitaram precisamos preencher
 +<sxh bash>
 +
 +Record ​   keyTAG ​ DIGEST
 +DS 1      33586   ​19846B0C2B84DC4875BC7311A4CC8076E4ABF59B
 +DS 2      33586   ​47CC0C5FCFD41EE9BE0F1C30FE035B6F25A9CE57A232E156056B49A2D39F6EBC
 +</​sxh>​
 +
 +Notem que o segundo campo tem um espaço no arquivo dsset, para inserir no RegistroBR precisamos retirar o espaço e deixar a string inteira após isso é so mandar salvar.
 +
 +Após isso podemos mandar consultar a nossa zona como exemplo
 +<sxh bash>
 +
 +whois www.douglasqsantos.com.br
 +
 +% Copyright (c) Nic.br
 +%  The use of the data below is only permitted as described in
 +%  full by the terms of use (http://​registro.br/​termo/​en.html),​
 +%  being prohibited its distribution,​ comercialization or
 +%  reproduction,​ in particular, to use it for advertising or
 +%  any similar purpose.
 +%  2012-09-27 17:30:45 (BRT -03:00)
 +
 +domain: ​     douglasqsantos.com.br
 +owner: ​      ​Douglas Quintiliano dos Santos
 +ownerid: ​    ​010.198.199-60
 +country: ​    BR
 +owner-c: ​    ​DQDSA5
 +admin-c: ​    ​DQDSA5
 +tech-c: ​     DQDSA5
 +billing-c: ​  ​DQDSA5
 +nserver: ​    ​ns1.douglasqsantos.com.br 200.195.146.36 2001:​1284:​1::​16bd:​3eb0:​7062
 +nsstat: ​     20120926 AA
 +nslastaa: ​   20120926
 +nserver: ​    ​ns2.douglasqsantos.com.br 200.195.146.37 2001:​1284:​1::​4eab:​77b:​abb0
 +nsstat: ​     20120926 AA
 +nslastaa: ​   20120926
 +dsrecord: ​   31270 RSA/SHA-256 FC467C47C45517E4D170DD27A728BC8A4AC0AF4A
 +dsstatus: ​   20120927 DSOK
 +dslastok: ​   20120927
 +dsrecord: ​   31270 RSA/SHA-256 92B3317D71F2A567A558C84C06D145E267454E87D4117C11F8B643BCC7AA2B77
 +dsstatus: ​   20120927 DSOK
 +dslastok: ​   20120927
 +saci:        yes
 +created: ​    ​20111003 #8902480
 +expires: ​    ​20141003
 +changed: ​    ​20120927
 +status: ​     published
 +
 +nic-hdl-br: ​ DQDSA5
 +person: ​     Douglas Q. dos Santos
 +e-mail: ​     douglas.q.santos@gmail.com
 +created: ​    ​20101203
 +changed: ​    ​20120927
 +
 +% Security and mail abuse issues should also be addressed to
 +% cert.br, http://​www.cert.br/,​ respectivelly to cert@cert.br
 +% and mail-abuse@cert.br
 +%
 +% whois.registro.br accepts only direct match queries. Types
 +% of queries are: domain (.br), ticket, provider, ID, CIDR
 +% block, IP and ASN.
 +</​sxh>​
 +
 +Agora vamos testar o nosso dnssec com o dig
 +<sxh bash>
 +
 +dig +dnssec www.douglasqsantos.com.br
 +
 +; <<>>​ DiG 9.7.3 <<>>​ +dnssec www.douglasqsantos.com.br
 +;; global options: +cmd
 +;; Got answer:
 +;; ->>​HEADER<<​- opcode: QUERY, status: NOERROR, id: 55336
 +;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 9
 +
 +;; OPT PSEUDOSECTION:​
 +; EDNS: version: 0, flags: do; udp: 4096
 +;; QUESTION SECTION:
 +;​www.douglasqsantos.com.br. ​  ​IN ​ A
 +
 +;; ANSWER SECTION:
 +www.douglasqsantos.com.br. ​ 3600  IN  A 200.195.146.59
 +www.douglasqsantos.com.br. ​ 3600  IN  RRSIG A 8 4 3600 20121027151806 20120927151806 2319 douglasqsantos.com.br. RX3Vz2alirpRXq35L3bhzWcf7Np8iUTp9ayb24VfmJcExmBylR7Z1lMy e6WCNqgKsIRUG70t/​NcWH8B4DbG3NW+nVRpD18J8XT87GdE7ZiIjmGSu X1w0TTnp896AOmv2qY8wBQ+oiQJ+UiJZDNgh7oS5iIbW/​iD6Ftt8Ml+a MC8=
 +
 +;; AUTHORITY SECTION:
 +douglasqsantos.com.br. ​ 3600  IN  NS  ns1.douglasqsantos.com.br.
 +douglasqsantos.com.br. ​ 3600  IN  NS  ns2.douglasqsantos.com.br.
 +douglasqsantos.com.br. ​ 3600  IN  RRSIG NS 8 3 3600 20121027151806 20120927151806 2319 douglasqsantos.com.br. PDh8VI3dLgPDCTaSg5RMjv2pi/​Q6st5Bal4bP2kYgWh0B67ClooAztpt wmZXJUtR3VbAe+I3d+bvuLj26gizOZoaIzNigljq2gWrI60MgW88+vP+ T9D04rNRaqAmWQdQRvvXMaqdjZK1XrqCcUfiBqtuO7Nu7kzKutsD8LPC 9Z4=
 +
 +;; ADDITIONAL SECTION:
 +ns1.douglasqsantos.com.br. ​ 3600  IN  A 200.195.146.36
 +ns1.douglasqsantos.com.br. ​ 3600  IN  AAAA  2001:​1284:​1::​16bd:​3eb0:​7062
 +ns2.douglasqsantos.com.br. ​ 3600  IN  A 200.195.146.37
 +ns2.douglasqsantos.com.br. ​ 3600  IN  AAAA  2001:​1284:​1::​4eab:​77b:​abb0
 +ns1.douglasqsantos.com.br. ​ 3600  IN  RRSIG A 8 4 3600 20121027151806 20120927151806 2319 douglasqsantos.com.br. n69fS+JeGgvLtgZDDuDePrEWd8kcZvNTp5vDOpVz9AzQW3McceJ5bruV NTh0M0AoVFI7/​g94bMpFHN4V5+OZElEXw/​Zr6otEBXTyIvSZ4GqLuzhF eQ2OjaTxy0syNF2hy5kQQl9JARztDiFWjpwNeZhoRq41Kx/​ZOhylvDCL vXk=
 +ns1.douglasqsantos.com.br. ​ 3600  IN  RRSIG AAAA 8 4 3600 20121027151806 20120927151806 2319 douglasqsantos.com.br. XdA4lmVMGSeCN71+TqUEXZ+cagmsTPpolxACbfd8mupEvU8wiFaOFS9T BHXs9laYwktt75dLsNNIs/​bsInu9e6ftWBG5cF5E04uOKnTh/​wEZCdad PYe+r1tW5TbTKzne53NTYDGp0o5A+sdkDrdskRR8UKGt5IBh3SK+ZzT9 o2Y=
 +ns2.douglasqsantos.com.br. ​ 3600  IN  RRSIG A 8 4 3600 20121027151806 20120927151806 2319 douglasqsantos.com.br. QmB3jMGDkCjzO8xSoFjTvAlbB9+23XsljbrcyE+uzvZIEN3CJvj7YaRv rvhMhalSoTA57pBv1TTCUdeDalipoU/​2kNTEnhX9WL1+Ry4vq8++jJxR HCcheoMzjkWX1KHfLUckV2ka9K8dA7WJ4F5RsxEyJl+H9pFNm6KuuzsE uYU=
 +ns2.douglasqsantos.com.br. ​ 3600  IN  RRSIG AAAA 8 4 3600 20121027151806 20120927151806 2319 douglasqsantos.com.br. ISK84a2ejuZtN+lf3f1FJzhfLwF3E5GEacZibIamYSWKQtXvUMLiiCBi j34OQWqDw+BTqDFfaWLaqS9BI0vhfsaK3IW6pY1a//​QOhnXU+qPlqWR3 5ZXSbH6/​r29yfIlFEaFIFN/​tRy0P0KkNEH0dFeJKE4aiQc8ABoJAZL9W 4ng=
 +
 +;; Query time: 338 msec
 +;; SERVER: 127.0.0.1#​53(127.0.0.1)
 +;; WHEN: Thu Sep 27 17:33:06 2012
 +;; MSG SIZE  rcvd: 1238
 +</​sxh>​
 +
 +Agora já temos o nosso DNS implementado,​ pra novas zonas crie novos diretórios como nome delas em /​var/​lib/​named/​var/​cache/​bind/​keys e dentro desses diretórios criem as chaves por que senão vai virar uma zona de chaves ;)
 +
 +** Tipo de erro abaixo as vezes o bind se perde então temos que mudar o /​etc/​resolv.conf de 127.0.0.1 para o ip do servidor ex: 10.0.0.28 **
 +<sxh bash>
 +
 +nslookup www.terra.com.br
 +Server: ​  ​127.0.0.1
 +Address: ​ 127.0.0.1#​53
 +
 +** server can't find www.terra.com.br.douglasqsantos.com.br:​ REFUSED
 +</​sxh>​
 +
 +Agora uma consultar com o resolv.conf mudado ​
 +<sxh bash>
 +
 +nslookup www.terra.com.br
 +Server: ​  ​10.0.0.28
 +Address: ​ 10.0.0.28#​53
 +
 +Non-authoritative answer:
 +Name: www.terra.com.br
 +Address: 200.154.56.80
 +</​sxh>​
 +
 +====== Referências ======
 +
 +  - http://​www.isc.org/​software/​bind
 +  - http://​www.isc.org/​software/​bind/​history
 +  - http://​www.isc.org/​software/​bind/​whatis
 +  - http://​www.isc.org/​software/​bind/​versions
 +  - http://​ftp.isc.org/​isc/​bind9/​
 +  - http://​www.isc.org/​software/​bind/​documentation
 +  - http://​pt.wikipedia.org/​wiki/​DNSSEC
 +  - http://​registro.br/​suporte/​faq/​faq8.html
 +  - https://​dlv.isc.org/​