Documente Academic
Documente Profesional
Documente Cultură
BIND 9
Carlos N. A. Corrêa
carlos.nilton@gmail.com
http://www.carlosnilton.com.br/
@cnacorrea
Resolução de nomes de host (1)
• Observações iniciais
• Os nomes são organizados como uma árvore
invertida, com a raiz (.) no topo
• A hierarquia de nomes permite ao DNS cruzar
fronteiras organizacionais
• Nos registros DNS, nomes completamente
qualificados (“inteiros”), terminam com um ponto
Outras observações (1)
• No exemplo de trace
• Os registros NS (name server) são referências
• O registro A (address) é a resposta final e o tipo de
consulta default do programa dig
Pesquisa direta
• dig www.whiplash.net
• Tenta consulta recursiva primeiro, conforme
indicado pelo flag rd na saída: se o servidor de
nomes permitir, então ele buscará a resposta e a
retornará para o cliente
• Se o servidor não permitir recursão, então ele
retornará uma referência para o servidor de nomes
raiz, o qual dig tentará consultar
Pesquisa direta: observações
• dig -x 209.132.177.50
• Observações
• Na saída da tela, a seção de perguntas mostra que
o DNS inverte os octetos de um endereço e
acrescenta in-addr.arpa. para qualificar
completamente o registro
• A seção de resposta mostra que o DNS usa
registros do tipo PTR para consulta reversa
• O campo rdata de um registro PTR é um nome de
domínio plenamente qualificado
Consulta por servidores de e-mail
• dig -t mx familiarestart.com
Consultas de e-mail: observações
• Observações iniciais
• O domínio é chamado de origin
• O campo rdata é estendido para suportar dados
adicionais, explicados a seguir
• Há tipicamente apenas um master em um domínio;
ele armazena a cópia “oficial” dos dados
• Outros servidores que possuem autoridade para o
domínio ou zona são listados como slaves: eles
sincronizam seus dados a partir do master
Dados rdata em um registro SOA
• Observações
• Todos os registros da zona são transferidos
• Os registros informam muito sobre a rede em si
• A resposta é muito grande para UDP; usa-se TCP
• Instale os pacotes
• bind9 para os binários essenciais
• bind9-doc para que tenhamos a documentação
original instalada
• bind9-host para ter o comando host conforme
vimos aqui
• Teste!
Configurando o resolvedor stub
• No servidor de nomes:
• Edite /etc/resolv.conf para especificar
nameserver 127.0.0.1
• Preste atenção caso o arquivo esteja sendo
mantido pelo programa gráfico de gerenciamento de
rede (NetworkManager)! É preciso reconfigurá-lo!
• Vantagens:
• Garante consultas consistentes para todos
• Simplifica os controles de acesso e troubleshooting
Configurando chroot
https://help.ubuntu.com/community/BIND9ServerHo
wto#Chrooting%20BIND9
Configurando um servidor de cache
• Dicas
• Identifique o(s) servidor(es) DNS atual(is)
• Abra o arquivo /etc/named.conf.options
• Descomente a seção forwarders e substitua
0.0.0.0 pelo endereço de seu(s) servidor(es) DNS
• Salve o arquivo e reinicie o serviço (invoke-rc.d
bind9 restart)
Listas de acesso
• Formato:
• Endereço IP: 192.168.0.1
• Ponto final: 192.168.0.
• CIDR: 192.168.0.0/24
• Use “!” para denotar inversão
{
192.168.0.1;
192.168.0.;
192.168.1.0/24;
};
Fazendo as suas listas ACLs
• Opção
• listen-on port 53 { lista-acesso; };
• Liga o named a interfaces específicas
• Exemplo:
listen-on port 53 { myaddresses; };
listen-on-v6 port 53 { ::1; };
• Exemplo:
allow-query { nossalan; invasor; };
• Opção:
• allow-recursion { lista-acesso; };
• Exemplo:
allow-recursion { nossalan; !invasor; };
Perguntas sobre recursão
• Opção:
• allow-transfer { lista-acesso; };
• Exemplo:
allow-transfer { !invasor; nossalan; };
Perguntas sobre transferência
zone “uniriotec.br” {
type slave;
masters { mymasters; };
file “slave/uniriotec.zone”;
};
zone “uniriotec.br” {
type master;
file “uniriotec.zone”;
};
Explicando outra história...
• Cuidados:
• BIND acrescenta o valor de origem a todos os
hostnames que não terminarem com “.”
• Se o campo domínio estiver faltando em um
registro, BIND usa o valor do registro anterior
• Lembre-se de incrementar seu serial!!!
Dicas para arquivos de zona
• Operação
• Selecione dig, host ou nslookup e use-os bem
para verificar a operação de seu servidor de nomes
• Rode tail -f /var/log/daemon.log em um
shell separado quando reiniciar um serviço
Tópicos avançados com BIND
• Delegação de subdomínios
• Passos
• No servidor “filho”, crie os arquivos de zona com os
dados do subdomínio
• No “pai”, adicione um registro NS
• No “pai”, adicione um registro A para completar a
delegação
• match-clients e match-destinations