DNS - Parte 2 - Configuração

Propaganda
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
Download