DNS Parte 2 - Configuração Tópicos em Sistemas de Computação – 2014 Prof. Dr. Adriano Mauro Cansian [email protected] Estagiário Docente: Vinícius Oliveira [email protected] 1 Neste tópico veremos q Breve revisão sobre DNS. q Como funciona o zone transfer. q Como configurar resolvers, servidores recursivos, servidor primário e servidores secundários. q Como funcionam os diversos registros de DNS. q Como configurar um domínio ou zona direta. Revisão e conceitos Revisão Servidor primário • Servidor primário ou servidor MASTER à é a fonte oficial de todas as informações a respeito de um domínio específico. • É o que deve manter todas as informações atualizadas sobre o domínio. • Ele carrega as informações a respeito do domínio a partir de arquivos locais (arquivos de zona e outros) mantidos pelo administrador do domínio. • Responde a qualquer pergunta sobre seu domínio com total autoridade à por isso é chamado de authoritative server. • Só pode existir APENAS UM servidor primário (master) para cada domínio ! 5 Servidores secundários • Servidores secundários (ou escravos – “slave”): • São aqueles que transferem (copiam) um conjunto completo de informações a partir do servidor primário. • Servidores secundários NÃO possuem arquivos de zona próprios. Os arquivos descrevendo as zonas à são transferidos do servidor primário, e armazenados no servidor secundário como arquivos locais. • Esta transferência chama-se zone transfer. • É recomendável existir mais de um servidor secundário, sendo pelo menos um fora da rede física do primário 6 Zone transfers Possibilidades de transferência de arquivos de zone entre o primário e o(s) secundário(s) DNS Zone transfer: Full zone transfer q De tempos em tempos o secundário solicita o registro SOA (SOA request) com base no refresh time e verifica se alterou o serial. q Se há alteração no No.Serial, transfere a zona inteira • (TCP / AXFR request). q Se não houver resposta, repete com base no retry time. q Se atingir expiry time sem contato, o secundário para de responder pela zona. (tempos de refresh, retry e expiry serão vistos mais adiante) DNS Zone transfer: Incremental zone transfer q Igual ao full zone transfer, porém incremental. • solicita o registro SOA e verifica se alterou o serial. q Secundário faz IXFR request (request for incremental zone transfer) para o servidor primário. q Primário envia apenas os registros alterados. • Primário mantém histórico das alterações. • Redução de tráfego e melhoria de performance. DNS Zone transfer: DNS Notify (RFC-1996) q Primário notifica o secundário que houve alteração, via mensagem de notify. • • Secundário solicita a o SOA e verifica (confirma) que houve alteração no serial. Secundário solicita a transferência via AXFR ou IXFR. Homework: DNS Dynamic Update q Estudar como se utiliza: • DNS Dynamic Update. • RFC-2136. q “DNS dynamic update provides an automated method to populate the DNS namespace with the current names and addresses for client and server computers by dynamically updating zone data on a zone's primary server.” Reverse query (Consulta ao DNS reverso) q Consulta reversa: em vez de fornecer um nome e solicitar um endereço IP, o cliente DNS fornece o endereço IP e solicita o hostname correspondente. q A zona que contêm o mapeamento de endereço IP-to-FQDN é conhecida como “zona reversa”. • Também chamado “registro PTR” (pointer). • Veremos mais sobre zonas reversas nas configurações. Árvore de busca para DNS reverso q Para encontrar um nome de host para o endereço IPv4 157.54.200.2, um cliente DNS envia uma consulta DNS para um registro PTR para o nome: 2.200.54.157.in-addr.arpa. Configurações para servidores de DNS Como configurar servidor primário e secundários Configuração básica q BIND / named será usado como processo servidor de DNS. q Tarefas básicas: • • • Configurar o resolver num cliente. Configurar o BIND para server recursivo. Configurar uma zona. • Configurar os processos iniciais, cache, etc... • Construir um servidor primário com as bases de dados do nameserver (configurar os “arquivos de zona”). 1. Configurar um Resolver (1) q Configuração do resolver: • • • Arquivo de configuração: • /etc/resolv.conf! É lido cada vez que se inicia um processo que usa o resolver. Toda máquina precisa ter uma configuração do resolver. • • Configuração pode ser provisionada automaticamente via DHCP ou outro protocolo. Neste exemplo fazemos a configuração manual. 1. Configurar um Resolver (2) q Configuração do resolver - /etc/resolv.conf ! nameserver address(IP)! • Identifica pelo IP, quem é o nameserver a ser usado por aquela máquina. • Podem ser definidos, em sequência, 3 nameservers. domain name.do.dominio! define o domínio DNS default. search lista_de_dominio! • lista de domínios a acrescentar a um nome não completo. • • 1. Configurar um Resolver (3) # /etc/resolv.conf! # comentarios aparecem com sinal de “ # ”! domain acme.com.br! search acme.com.br vendas.acme.com.br! # o primeiro nameserver a ser buscado é a primária do domínio! nameserver 192.168.0.184! # o segundo nameserver é a máquina principal da rede local! nameserver 200.145.201.1! 2. Configurar um servidor recursivo Servidor recursivo: • /etc/named.conf.options ou • /etc/named.conf ou /etc/bind/named.conf! options{! ! !recursion yes;! ! !allow-recursion{network_allowed;};! };! /*Define quais redes ou endereços IPs podem utilizar*/! acl network_allowed{! 192.168.0.0/24;! 200.145.201/24;! 127.0.0.1;! };! 3. Configurar um servidor primário (1) q Configuração de servidores primários: • O servidor primário carrega as informações a respeito do domínio ou zona a partir de arquivos locais. • Exige um conjunto de arquivos de configuração que devem operar entre si. • Erros nestes arquivos podem causar problemas sérios na operação do DNS. • Observação: um servidor pode atuar como primário e como secundário ao mesmo tempo (para uma ou mais zonas) . • Uma zona só pode ter um, e somente, um primário. 3. Configurar um servidor primário (2) q Arquivos de configuração necessários no servidor primário: named.conf (ou named.boot, named.conf.options)! named.cache (ou root.cache)! named.local (ou 127.0.0.db)! {algum.dominio}.db (ou named.hosts.dominio)! {rede.IP}.db (ou named.ip.rev)! q Geralmente no diretório /etc ou /etc/named ou /etc/bind Arquivos de Configuração – Primário (1) Arquivos de configuração: Nome usual do arquivo Descrição Ajusta os parâmetros gerais do named, e aponta para as named.conf ou bases de dados usadas pelo named.boot servidor. Estes dados podem ser arquivos locais, ou servidores remotos. named.cache ou root.cache Define os root servers Arquivos de Configuração – Primário (2) Arquivos de configuração: Nome usual do arquivo named.local ou 127.0.0.db Descrição Resolução de loopback Arquivo de zona que mapeia named.hosts host names para endereços ou dominio.db IP e demais configurações. named.rev ou IP-completo.db Arquivo de zona reverso, que mapea endereço IP em host Names Arquivos de Configuração – Secundário (1) q Configuração de servidores secundários: • • Servidores secundários são aqueles que transferem (copiam) um conjunto completo de informações a partir do servidor primário. • Servidores secundários não possuem arquivos de zona próprios. Arquivos necessários: o named.conf; o root.cache; o 127.0.0.db; Configuração básica: /etc/named.conf ou /etc/bind/named.conf.options ou… (depende do seu sistema) ! Exemplo de um arquivo named.conf em servidor autoritativo Configuração básica – named.conf (1) options {! directory ”/etc/bind”;! allow-transfer {192.168.0.5; 200.145.201.1; 200.145.1.1; 192.168.0.90; 192.168.2.1; 192.168.2.9; 192.168.2.2; 192.168.2.11; 192.168.3.1; 192.168.3.2;! /* Máquinas para as quais permito transferir meus registros de DNS*//* Estas máquinas são normalmente as definidas como secundárias que copiarão meus mapas */! };! /* este arquivo continua... */! Configuração básica – named.conf (2) /* Domínios para os quais sou servidor direto (mapas master) */! zone “apt.br" {! type master;! file “/etc/bind/apt.br.db "; ! ! /*arquivo onde está o mapa master*/! };! /* este arquivo continua... */! Configuração básica – named.conf (3) /* Domínios para os quais sou servidor secundário (mapas slave) */! zone " exemplo.com " {! type slave;! file “/etc/bind/exemplo.com.zone.bak "; ! ! /* arquivo onde vai armazenar o mapa secundário*/! masters { 200.145.202.1; }; ! ! /*IP do primário onde vai buscar o mapa master*/! };! /* este arquivo continua... */! Configuração básica – named.conf (4) /* Mapas diretos reversos */! zone “0.168.192.in-addr.arpa" {! type master;! file “/etc/bind/192.168.0.rev"; ! ! /*arquivo onde está o mapa master */! };! /* este arquivo continua... */! Configuração básica – named.conf (5) /* Mapas secundários (slaves) reversos */! zone “1.168.192.in-addr.arpa" {! type slave;! file “/etc/bind/192.168.1.rev.bak"; ! ! /* arquivo onde armazena o mapa secundário*/! masters {200.145.1.123; }; ! ! /* IP do primário onde vai buscar o mapa master*/! };! /* este arquivo continua... */! Configuração básica – named.conf (6) /* Resolver local */! zone "localhost" {! type master;! file "/etc/bind/db.127";! };! zone "." {! type hint;! file "/etc/bind/db.root";! };! /* Root hints file – root cache file */! /* ftp://rs.internic.net/domain/named.cache */! ! Configuração básica Arquivo de Zona Direta Configuração de um servidor de domínio Configuração básica – Arquivo de Zona (1) q O arquivo de zona: • • • Tem sempre o mesmo formato básico. Usa registros para definir as informações. • “registros-padrão de recursos”. • Standard Resource Records. • Ou Resource Records (RRs). Cada registro (RR) está associado com um tipo de definição de resolução. Configuração básica – Arquivo de Zona (2) Alguns Tipos de Registros mais usados Indicador de tipo do registro Nome do RR Descrição SOA Start of Authority Marca o início de dados de uma zona e define parâmetros que afetam a zona inteira. NS Name Server Define (aponta) um name server para um domínio. A Address Converte (aponta) um host name para um endereço IP. PTR Pointer Define (aponta) um endereço IP para um hostname. MX Mail Exchange Identifica (aponta) onde entregar mensagens para um dado domínio ou hostname. Configuração básica – Arquivo de Zona (3) Alguns Tipos de Registros mais usados Indicador do tipo do registro Nome do RR Descrição CNAME Canonical Name TXT Texto Usado para definição de registro de SPF (Sender Policy Framework) para política antispam.. WKS Wel known Services Anuncia os serviços de rede disponíveis naquele host. Não é exigida, e não é usada por motivos de segurança. HW Define um alias (sinônimo ou nome canônico) para um host name. Configuração básica – Arquivo de Zona (4) q O formato básico de um registro do DNS é o seguinte: [name] [ttl] IN RRtype Data ! Configuração básica – Arquivo de Zona (5) name Este é o nome do objeto de domínio que o RR referencia. Pode ser um nome de host individual ou um domínio inteiro. ttl Time to live define o tempo, em segundos, que a informação deste registro deve ser mantida em cache em outros hosts. Padrão: segundos. Mas aceita “h”, “m” e “d” (horas, minutos, dias). IN Define um registro como sendo um RR Internet (“IN”) (é mandatório; DNS foi projetado para aceitar outros tipos de registros de nomes para outras redes mas, na prática, só existem registros tipo IN de “Internet”) RRtype Data Identifica de que tipo se trata este RR, descritos na tabela anterior (SOA, MX, A, etc..). Trata-se da informação específica para a qual aponta um registro. Configuração básica – Arquivo de Zona (4) q Exemplo de um registro: [name] [ttl] IN RRtype Data! ! www 3600 ftp.unesp.br. IN A 200.145.1.1! A 200.145.1.21! Configuração básica – Arquivo de Zona (7) $TTL 86400! @ IN SOA isa.apt.br. isabela.apt.br.! (! 2014110901 ; Serial (o serial)! 10800 ; Refresh (3 horas em segundos)! 3600 432000 ; Retry (1 hora em segundos)! ; Expire (5 dias em segundos)! 86400 ; Minimum (24 hrs em seg.)! )! ;! IN NS isa.apt.br.! apt.br. IN A 192.168.0.1! isa IN A 192.168.0.1! maira IN A 192.168.0.2! Configuração básica – Arquivo de Zona (8) MX 0 maira.apt.br. ! MX 10 liane.apt.br. ! ;! ; Alias especias para o dominio! ;! mail IN CNAME maira.apt.br. ! www IN CNAME maira.apt.br. ! ftp IN CNAME maira.apt.br. Configuração básica – Zona Reverso (1) 0.168.192.IN-ADDR.ARPA. IN SOA isa.apt.br. isabela.apt.br.! (! 2010080901 10800 3600 432000 86400 ; Serial (o serial)! ; Refresh (3 horas em segundos)! ; Retry (1 hora em segundos)! ; Expire (5 dias em segundos)! ; Minimum TTL (24 hrs em seg.)! )! ;! IN NS NS isa.apt.br.! liane.apt.br. ! Configuração básica – Zona Reverso (2) ;Exemplo de reverso! 1 IN PTR isa.apt.br. ! 2 IN PTR maira.apt.br. ! 3 IN PTR liane.apt.br. Configuração básica Logs de DNS Como configurar logs Configuração básica – Log (1) Adicionar no arquivo: /etc/bind/named.conf.options! ou /etc/named .conf: logging{ channel "named_log"{ file "/var/log/bind/named_log"; print-time yes; severity info; print-category yes; print-severity yes; }; category "default" { "named_log"; };! };! Configuração básica – Log (2) q Alterar o proprietário da pasta onde está os logs: chown -R bind.bind /var/log/bind;! q Adicionar no arquivo /etc/apparmor.d/usr.sbin.named: /var/log/bind/named_log w,! q Recarregar o perfil do bind no apparmor: cat /etc/apparmor.d/usr.sbin.named | sudo apparmor_parser –r! q Reiniciar o bind: /etc/init.d/bind9 restart! q Configurar o arquivo para rotacionar os logs em /etc/logrotate; Configuração básica – Outros Arquivos q Arquivo /etc/bind/db.root: • Também chamado /etc/named.cache • Chamado de arquivo de hint, root, ou cache. • Aponta os 13 rootservers e raramente muda. • ftp://rs.internic.net/domain/named.cache q Arquivo /etc/bind/db.127: • Usado apenas para converter o endereço 127.0.0.1 que é o endereço de loopback para o nome localhost. Comandos – Nslookup q Sintaxe: nslookup [-option] name [server] q Onde: • option: Há várias. Ex: type, domain, … • name: indica o nome de domínio a consultar; • server: indica o servidor DNS a consultar; Comandos – Nslookup q Modo interativo: isabela@tweety:~$ nslookup! >set type=RR! >server servidor! >set domain=dominio! >name! >help! >exit! Comandos – Dig q Sintaxe: dig [@server] name [type] q Onde: • • • @server: indica o servidor DNS a consultar; name: indica o nome de domínio a consultar; type: indica o registro desejado: A (default), NS, MX, CNAME, etc. Neste tópico vimos: q Breve revisão sobre DNS. q Como funciona o zone transfer. q Como configurar resolvers, servidores recursivos, servidor primário e servidores secundários. q Como funcionam os diversos registros de DNS. q Como configurar um domínio ou zona direta. Referência para estudo • O tratamento utilizado neste tópico é o mesmo adotado pelo livro Craig Hunt TCP/IP Network Administration. Este tratamento é excelente e suficiente para o administrador de redes e UNIX. Entretanto, por algumas vezes, este texto não é muito formal, ou seja, ignora alguns conceitos, considerando-se o ponto de vista acadêmico e mais aprimorado. Para alunos que desejam ir mais a fundo na questão, e aprimorar sua formação e seus conhecimentos em gerenciamento, recomenda-se uma leitura atenta do capítulo 14 (DNS: The Domain Name System) de TCP/IP Illustrated - Volume 1 - The Protocols, de Richard Stevens . Trata-se de um texto excelente, de fácil compreensão e com excelentes ilustrações que auxiliam no entendimento. • Créditos – Fair Use: este material foi produzido a partir de um dos livros-texto adotados no disciplina: Hunt, Craig - TCP/IP Network Administration - O’Reilly & Associates, Inc. - 1.a Edição - Capítulo 3, pag. 51 e Capítulo 8, pag 167. Este material pode usar citações e figuras de outros autores. Direitos reservados aos autores. Todas as citações feitas em caráter didático para uso em sala de aula. 51