Buscar

Slides - Aula 6 a 8

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas Operacionais 
Open Source V 
 
Prof. Ricardo Mercês 
ricardo.merces@prof.infnet.edu.br 
Aula 6-8 
DNS 
Objetivo 
•  Compreender a resolução 
de nomes e seu impacto na 
organização de sistemas 
em rede 
•  Ferramentas para resolução 
de nomes 
•  BIND essencial 
•  DHCP 
DNS Domain Name Service 
•  O DNS (Domain Name System - Servidor de Nomes de 
Domínios) é um sistema de gerenciamento de nomes 
hierárquico e distribuído operando segundo duas 
definições: 
ü  Examinar e atualizar seu banco de dados. 
ü  Resolver nomes de domínios em endereços de rede 
(Ips). 
•  O servidor DNS traduz nomes para os endereços IP e 
endereços IP para os respectivos nomes 
•  É muito mais prático digitar www.vivaolinux.com.br do 
que 76.74.248.57 no seu navegador. 
Root 
Estrutura 
TLDs 
O resolvedor “stub” (1) 
•  Biblioteca de resolução disponível para todas 
as aplicações 
•  Chamada através da função gethostbyname() e de 
outras, providas pela glibc 
•  Não é capaz de controle de acesso sofisticado, como 
assinatura de pacotes e criptografia 
•  Pode consultar qualquer serviço de nomes 
suportado pela glibc 
O resolvedor “stub” (2) 
•  Lê o arquivo /etc/nssswitch.conf para 
determinar a ordem na qual os serviços de 
nomes serão consultados, conforme exibido 
aqui (default): 
 
hosts: files dns 
 
•  O nome de domínio NIS e o domínio DNS 
geralmente devem ser diferentes, para evitar 
conflitos 
Resolvers 
•  host 
ü  Nunca lê o arquivo /etc/nsswitch.conf 
ü  Por default, olha para as linhas nameserver e 
search no arquivo /etc/resolv.conf 
ü  Saída mínima por default 
•  dig 
ü  Nunca lê o arquivo /etc/nsswitch.conf 
ü  Por padrão, olha apenas para a linha 
nameserver no arquivo /etc/resolv.conf 
ü  A saída é feita em um formato de arquivo de 
zona estipulado por uma RFC, tornando o dig 
uma ferramenta muito útil 
DNS Query 
dig +trace redhat.com 
 
l  Lê o arquivo /etc/resolv.conf para determinar o 
servidor DNS 
 
l  Procura pelos servidores raízes (root servers) 
 
l  Segue as referências para obter as respostas 
 
 
Observações (1) 
•  No teste que fizemos, as respostas seguem o 
formato resource records 
•  Cada RR tem cinco campos: 
•  domínio – o domínio ou subdomínio perguntado 
•  ttl – por quantos segundos o registro deve ficar em 
cache 
•  classe – a classificação do registro (IN) 
•  tipo – o tipo de registro, como A ou NS 
•  rdata – dados de recursos para o qual o domínio aponta 
Observações (2) 
•  Conceitualmente, você faz perguntas por um 
domínio (nome), e recebe um campo mapeado 
rdata como resposta 
 
•  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 reversa 
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 
•  Um registro MX mapeia um domínio para o 
hostname de um servidor de e-mail 
 
•  É assim que o e-mail funciona na Internet! 
 
dig -t mx.redhat.com 
Consultas de e-mail: observações 
•  O campo rdata é estendido para incluir um pedaço a 
mais de informação chamado prioridade 
 
•  A prioridade pode ser vista como distância: redes 
preferem distâncias mais curtas 
 
•  Para evitar consultas desnecessárias, os servidores 
tipicamente já fornecem uma resposta adicional a esta 
consulta, com o registro A do servidor de e-mail 
apontado 
 
•  Juntos, o registro MX e o registro A permitem a entrega 
de e-mails para aquele domínio 
Consultas SOA 
•  Um registro SOA marca um servidor como 
possuidor de autoridade “master” sobre um 
domínio 
 
dig -t soa redhat.com 
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 
•  FQDN do servidor de nomes master 
•  E-mail do contato 
•  Número serial 
•  Intervalo entre checagens do número serial 
•  Intervalo entre tentativas para servidores slave 
•  Expiração dos registros quando um slave não 
consegue acessar seu(s) mestre(s) 
•  TTL mínimo para respostas negativas (host não 
encontrado) 
Possuindo autoridade 
•  O registro SOA meramente indica o servidor 
master para a origem (domínio) 
 
•  O servidor possui autoridade se tem: 
•  Delegação do domínio pai: registro NS e registro A 
•  Uma cópia local dos dados do domínio, incluindo o 
registro SOA 
 
•  Um servidor de nomes que tem a delegação 
correta mas não possui os dados de um 
domínio é chamado lame server 
Consultando TUDO 
dig -t axfr example.com. @10.0.0.1 
 
Observações 
l  Todos os registros da zona são transferidos 
l  Os registros informam muito sobre a rede em si 
l  A resposta é muito grande para UDP; usa-se TCP 
 
A maioria dos servidores de nomes restringe 
este tipo de transferência para apenas 
alguns hosts selecionados (normalmente os 
slaves) 
Explorando o DNS com host 
Para quaisquer das consultas abaixo, use a opção 
-v para obter o resultado no formato de zona 
 
l  Trace: não disponível 
l  Delegação: host -rt ns redhat.com 
l  Forçar iterativo: host -r redhat.com 
l  Consulta reversa: host 209.132.177.50 
l  Consulta MX: host -t mx redhat.com 
l  Consulta SOA: host -t soa redhat.com 
l  Transferências de zona: host -t axfr redhat.com \ 
192.168.0.254 ou 
host -t ixfr=<serial> example.com. \ 
192.168.0.254 
Compreendendo o servidor 
•  O Red Hat Enterprise Linux usa o BIND, o 
Berkeley Internet Name Domain 
•  O servidor DNS mais usado na Internet! 
•  Uma infraestrutura estável e confiável na qual 
basear um nome de domínio e associações de 
IP 
•  A implementação de referência para as RFCs 
de DNS 
•  Roda em um ambiente chroot 
Perfil de serviço: DNS 
•  Tipo: serviço gerenciado System-V 
•  Pacotes: bind, bind-utils, bind-chroot 
•  Daemons: /usr/sbin/named, /usr/sbin/rndc 
•  Script: /etc/init.d/named 
•  Portas: 53 (domínio), 953 (rndc) 
•  Configuração: (sob /var/named/chroot/) /etc/
named.conf, /var/named/*, /etc/rndc.key 
•  Relacionados: caching-nameserver, openssl 
Perfil de controle de acesso: BIND 
•  Netfilter: porta 53 e 953, TCP e UDP, 
entrando; portas cliente TCP e UDP saindo 
 
•  TCP Wrappers: N/A 
 
•  Xinetd: N/A (é um daemon standalone) 
 
•  SELinux: sim 
 
•  Controles específicos da aplicação: sim 
Começando a trabalhar com BIND 
•  Instale os pacotes 
ü  bind para os binários essenciais 
ü  bind-chroot para segurança 
ü  caching-nameserver para uma configuração 
inicial 
•  Configure o carregamento 
ü  service named configtest 
ü  service named start 
ü  chkconfig named on 
•  Prossiga com a configuração do named 
Configuração named essencial 
Defina controles de acesso em /etc/named.conf 
 
l  Declare as listas de acesso 
 
l  Especifique as interfaces de servidor: 
listen-on e listen-on-v6 
 
l  Que consultas devem ser permitidas? 
Interativas: allow-query { lista-acesso; }; 
Recursivas: allow-recursion { lista-acesso; }; 
Transferências: allow-transfer { list-acess; }; 
Pra finalizar... 
•  Adicione dados através dos arquivos de zona 
 
•  Teste! 
Configurando o resolvedor stub 
•  No servidor de nomes: 
•  Edite /etc/resolv.conf para especificar 
nameserver 127.0.0.1 
•  Edite /etc/sysconfig/network-scripts/
ifcfg-* para especificar PEERDNS=no 
 
•  Vantagens: 
•  Garante consultas consistentes para todos 
•  Simplificaos controles de acesso e troubleshooting 
O pacote bind-chroot 
•  Instala um ambiente chroot sob /var/named/
chroot 
 
•  Move os arquivos de configuração existentes 
para o chroot, substituindo os originais com 
links simbólicos 
 
•  Atualiza o arquivo /etc/sysconfig/named 
com a opção: 
ROOTDIR=/var/named/chroot 
 
O pacote caching-nameserver 
•  Provê 
•  named.caching-nameserver.conf 
•  named.ca contendo as “referências” dos servidores 
raiz 
•  Arquivos de zona de pesquisa direta e reversa para 
os nomes e IPs locais da máquina 
 
•  Dicas 
•  Copie named.caching-nameserver.conf para 
named.conf 
•  Mude o dono para root:named 
•  Edite o arquivo named.conf 
Listas de acesso 
•  Listas de IPs e sub-redes separados por “;” e 
usados em configurações de segurança do 
BIND 
 
•  Formato: 
•  Endereço IP: 192.168.0.1 
•  Ponto final: 192.168.0. 
•  CIDR: 192.168.0.0/24 
•  Use “!” para denotar inversão 
 
•  A lista é checada na ordem, parando na 
primeira coincidência 
Exemplo de lista de acesso 
{ 
 192.168.0.1; 
 192.168.0.; 
 192.168.1.0/24; 
}; 
Fazendo de suas listas ACLs 
•  Podemos dar “nomes” para uma lista de 
acesso que definimos no arquivo /etc/
named.conf 
 
•  Geralmente usamos esses nomes, em vez de 
repetir toda uma lista várias vezes. 
 
•  A melhor prática é defini-las logo no início da 
configuração 
 
Exemplos de ACLs 
acl “trusted” { 192.168.1.21; }; 
acl “classroom” { 192.168.0.0/24; trusted; }; 
acl “cracker” { 192.168.1.0/24; }; 
acl “mymasters” { 192.168.0.254; } 
acl “myaddresses” { 127.0.0.1; 192.168.0.1; }; 
ACLs predefinidas 
•  O BIND predefine quatro ACLs 
none - nenhum endereço casa 
any - qualquer endereço casa 
localhost - qualquer ip do próprio servidor 
localnets - redes diretamente conectadas 
 
 
Interfaces do servidor 
•  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; }; 
 
•  Reinicie e verifique com: 
netstat –tulpn | grep named 
Permitindo consultas 
•  Opção: allow-query { lista-
acesso; }; 
 
•  O servidor fornece tanto respostas com 
autoridade quanto baseadas em cache para os 
clientes especificados 
 
•  Exemplo: 
allow-query { classroom; cracker; }; 
 
•  Se ausente, todos podem fazer consultas 
Permitindo recursão 
•  Opção: 
 allow-recursion { lista-acesso; }; 
 
•  O servidor busca as respostas em nome dos 
clientes especificados 
 
•  Exemplo: 
allow-recursion { classroom; !cracker; }; 
Permitindo transferências 
•  Opção: 
allow-transfer { lista-acesso; }; 
 
•  Clientes listados podem atuar como servidores 
slave 
 
•  Exemplo: 
allow-transfer { !cracker; classroom; }; 
Outros ajustes com BIND 
•  Opção: forwarders { lista-acesso; }; 
 
•  Modificador: forward first | only ; 
 
•  Leva o named a fazer perguntas recursivas aos 
servidores especificados antes - ou em vez - de 
atender às consultas solicitadas a ele próprio 
Declaração de uma zona master 
zone “example.com” { 
 type master; 
 file “example.com.zone”; 
}; 
Declaração de zonas slaves 
zone “example.com” { 
 type slave; 
 masters { mymasters; }; 
 file “slaves/example.com.zone”; 
}; 
Criação de arquivos de zona 
Conteúdo de um arquivo de zona: 
 
•  Uma coleção de registros, começando com SOA 
•  O símbolo @ é uma variável que representa o valor da 
origem 
•  Comentários seguem o estilo assembly (;) 
 
Cuidados: 
 
l  BIND acrescenta o valor de origem a todos os 
hostnames que não terminarem com “.” 
l  Se o campo domínio estiver faltando em um registro, 
BIND usa o valor do registro anterior 
l  Lembre-se de incrementar seu serial!!! 
Dicas para arquivos de zona 
•  Não comece do zero – copie um arquivo já 
instalado através do pacote caching-
nameserver 
 
•  Para poupar trabalho, coloque $TTL 86400 
no início do arquivo de zona, e omita esta 
informação nos registros individuais 
 
•  BIND permite que você divida dados 
multivalorados em várias linhas, se eles 
estiverem entre parênteses 
$ORIGIN example.com 
$TTL 86400 
@ IN SOA dns1.example.com. hostmaster.example.com. ( 
 2001062501 ; serial 
 21600 ; refresh after 6 hours 
 3600 ; retry after 1 hour 
 604800 ; expire after 1 week 
 86400 ) ; minimum TTL of 1 day 
 
 IN NS dns1.example.com. 
 IN NS dns2.example.com. 
 
 IN MX 10 mail.example.com. 
 IN MX 20 mail2.example.com. 
 
 IN A 10.0.1.5 
 
dns1 IN A 10.0.1.2 
dns2 IN A 10.0.1.3 
 
ftp IN CNAME server1 
mail IN CNAME server1 
mail2 IN CNAME server2 
www IN CNAME server2 
Exemplo 
Testando 
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/messages em um shell 
separado quando reiniciar um serviço 
 
Configuração 
l  O BIND se recusa a iniciar se houverem erros de 
sintaxe. 
l  Use service named configtest 
l  configtest executa dois utilitários de sintaxe, que 
também podem ser usados separadamente 
Utilitários de sintaxe BIND 
•  named-checkconf -t CHROOT 
<arq.conf> 
•  Verifica o arquivo named.conf por default 
•  named-checkconf -t /var/named/
chroot 
 
•  named-checkzone ORIGIN 
<arquivo_zona> 
•  Inspeciona uma configuração de zona 
específica 
•  Exemplo 
 
named-checkzone redhat.com \ 
 /var/named/chroot/var/named/redhat.com.zone 
rndc 
•  Provê gerenciamento local e remoto do named 
 
•  O pacote bind-chroot o configura! 
•  Ouve apenas nas interfaces loopback (v4 e 
v6) 
•  Lê a chave a partir de /etc/rndc.key 
•  Se a chave não casa, não pode parar ou 
carregar o serviço named 
•  Nenhuma configuração adicional é 
necessária para uma instalação default 
local 
•  Ex.: rndc flush (zera o cache do servidor) 
DHCP: Visão geral 
•  DHCP: Dynamic Host Configuration Protocol, 
implementado pelo dhcpd 
 
•  O dhcpd provê serviços para clientes DHCP e 
BOOTP via IPv4 
Perfil de serviço: DHCP 
•  Tipo: serviço gerenciado System-V 
•  Pacote: dhcp 
•  Daemon: /usr/sbin/dhcpd 
•  Script: /etc/init.d/dhcpd 
•  Portas: 67 (bootps), 68 (bootpc) 
•  Configuração: /etc/dhcpd.conf, /var/lib/
dhcpd/dhcp.leases 
•  Relacionados: dhclient, dhcpv6_client, dhcpv6 
Configurando um DHCP IPv4 
•  Configurado em /etc/dhcpd.conf 
 
•  Configuração de exemplo fornecida em /usr/
share/doc/dhcp-versão/dhcpd.conf.sample 
 
•  Deve haver ao menos um bloco subnet, e ele 
tem que corresponder às interfaces 
configuradas 
 
•  Execute service dhcpd configtest para 
testar a sintaxe usada

Continue navegando