O GoConqr está de visual novo! Conte para nós o que você achou.

Mapa mental

DNS

Luiz Eduardo Português

DNS

Conteúdo do mapa

DNS

  • https://thetechreader.com/files/2016/12/how-the-dns-system-works.png
  1. BIND

    • centos
      • Distribuições baseadas em RedHat seguem o padrão do BIND
      • bind-utils
        • /etc/named.conf
          • Principal arquivo de configuração /etc/named.conf
        • Configuração de zonas
          • /var/named/
            • [root@instance-rh named]# ll total 16 drwxrwx---. 2 named named 6 Jan 3 11:57 data drwxrwx---. 2 named named 6 Jan 3 11:57 dynamic -rw-r-----. 1 root named 2281 May 22 2017 named.ca -rw-r-----. 1 root named 152 Dec 15 2009 named.empty -rw-r-----. 1 root named 152 Jun 21 2007 named.localhost -rw-r-----. 1 root named 168 Dec 15 2009 named.loopback drwxrwx---. 2 named named 6 Jan 3 11:57 slaves
            • Diretório que armazena os arquivos de zona e outros registros
            • named.ca
              • Arquivo que contêm os names severs.  Root Severs
            • logging
              •  logging { channel default_debug { file "data/named.run"; severity dynamic; }; channel luiz { file "data/curso.log"; severity dynamic; }; category queries{ luiz; };
              • severity
                • http://www.zytrax.com/books/dns/ch7/logging.html
              • channel
                •  Define o local em que o log será registrado e qual nível/severidade será adotado
              • category
                •  Define o que será logado, indicando-se também o canal (channel) que será utilizado.
              • null
                • To turn off logging certain types of data, send it to the null channel. logging { category lame-servers { null; }; category cname { null; };  };
        • systemctl status named
    • debian
      • Distribuições baseadas em Debian armazenam os arquivos de configuração no diretório /etc/bind.
      • bind9
        • /etc/bind/
          • Principal arquivo de configuração /etc/named.conf. 
        • Configuração de zonas
          • /etc/bind/
            • root@instance-debian:/etc/bind# ls -la total 60 drwxr-sr-x 2 root bind 4096 Apr 23 21:42 . drwxr-xr-x 90 root root 4096 Apr 23 22:19 .. -rw-r--r-- 1 root root 3923 Jan 15 2018 bind.keys -rw-r--r-- 1 root root 237 Jan 15 2018 db.0 -rw-r--r-- 1 root root 271 Jan 15 2018 db.127 -rw-r--r-- 1 root root 237 Jan 15 2018 db.255 -rw-r--r-- 1 root root 353 Jan 15 2018 db.empty -rw-r--r-- 1 root root 270 Jan 15 2018 db.local -rw-r--r-- 1 root root 3171 Jan 15 2018 db.root -rw-r--r-- 1 root bind 463 Jan 15 2018 named.conf -rw-r--r-- 1 root bind 490 Jan 15 2018 named.conf.default-zones -rw-r--r-- 1 root bind 165 Jan 15 2018 named.conf.local -rw-r--r-- 1 root bind 890 Apr 23 21:42 named.conf.options -rw-r----- 1 bind bind 77 Apr 23 21:42 rndc.key -rw-r--r-- 1 root root 1317 Jan 15 2018 zones.rfc1918
            • /etc/bind/db.root
              • Arquivo que contêm os names severs.  Root Severs
            • /etc/bind/named.conf
        • systemctl status bind9
    • Principais comandos
      • host
        • Faz consultas DNS. Formas de uso:
        • #host -t NS
        • # host -l zonetransfer.me ns16.zoneedit.com
      • dig
        •  Faz consultas DNS mais elaboradas. Formas de uso: dig - DNS lookup utility
        • # dig -t NS globo.com.br
        • # dig -t MX globo.com.br
        • #dig bird.exemple.com A
        • # dig @cat.exemple.com bird.exemple.com A
        • #dig 4.240.123.224.in-addr.arpa PTR
      • # rndc
        • The rndc (Remote name daemon control) program can be used to control the named name server daemon, locally as well as remotely. 
        • rndc reload
          • Reload configuration file and zones.
        • rndc flush
          • Flushes all of the server's caches.
        • rndc refresh zone
          • [class [view]] Schedule immediate maintenance for a zone.
        • rndc reconfig
          • reconfig Reload configuration file and new zones only.
        • rndc-confgen
          • The command create a key for rndc.key case none is available on the system # Start of rndc.conf key "rndc-key" { algorithm hmac-md5; secret "bg7aN2dE7J4rrrDde3f5rw=="; }; options { default-key "rndc-key"; default-server 127.0.0.1; default-port 953; }; # End of rndc.conf # Use with the following in named.conf, adjusting the allow list as needed: # key "rndc-key" { # algorithm hmac-md5; # secret "bg7aN2dE7J4rrrDde3f5rw=="; # }; # # controls { # inet 127.0.0.1 port 953 # allow { 127.0.0.1; } keys { "rndc-key"; }; # }; # End of named.conf
        • rndc status
          • Display status of the server.
      • #named
        • named-checkconf
          • Valida a sintaxe das configurações do /etc/named.conf #named-checkconf /etc/bind/named.conf
        • named-checkzone [dominio] [arquivo ]
          • # named-checkzone test.com /var/named/test.com.zone
        • systemctl <start|stop|restart|reload|force-reload> named
        • named-compilezone
        • named-journalprint journal
      • dnswalk
        • #dnswalk globo.com.br.
    • Componentes
      • /usr/sbin/named
      • /usr/sbin/rndc
      • /usr/sbin/named-checkconf
      • named.conf
      • /var/named
    • Finalizar o serviço
      • systemctl stop bind9
      • rndc stop
      • kill -SIGHUP PID
      • kill -1 PID
      • /etc/init.d/named <stop|start|status>
      • service bind9 <start|stop|reload>
      • kill -9|15<SIGKILL| SIGTERM>
    • named.conf
      • directory
        • specifies the working directory for the name daemon. A common value&nbsp; is /var/named. also, zone files without a directory part are looked up in this directory.
      • forwarders
        • The forwarders statement contains one or more IP address of name servers to query. How these IP addresses are used is specified by the forwarders.
      • forward
        • The forward works when forwarders are specified.
        • forward only;
          • The queries are limited only to the specified name-server IP address.
        • forward first;
          • The query is sent first to the specified name-server IP address and if this fails it should perform lookups elsewhere.
      • Comments
        • Legitimate clauses
      • options
        • Legitimate clauses
      • include
        • Legitimate clauses
      • logging
        • Legitimate clauses
  2. caching server

    • zone "." IN { type hint; file "named.ca"; };
  3. Conceitos e Termos Importantes

    • NS (Name Server)
      • Armazena informações sobre uma parte do Domain Name Space, também chamado de zona. https://upload.wikimedia.org/wikipedia/commons/f/f2/Structure_DNS.jpg
      • Tipos de NS
        • Primary (Master)
          • Servidor que possui autoridade sobre o domínio, definindo todas as informações sobre esta zona de DNS. No registro de um domínio, sempre deve haver ao menos um dos NS como master
        • Secondary (Slave)
          • O NS Slave transfere para si as informações definidas para um domínio a partir de um NS Master. Dessa forma as informações também ficam armazenadas no servidor e assim também possui autoridade sobre o domínio.
          • db.exemple.com
            • the db.exemple.com is created by the slave name server itself. The slave has no data for exemple.com. Instead, a slave receive its data from a master name server and store it in the specified file.
        • Caching
          • O Servidor do tipo caching é capaz de fazer pesquisas recursivas para fazer a resolução DNS e armazena esse resultado em cache. zone "." IN {&nbsp; type hint; &nbsp;file "named.ca";};&nbsp;
        • Forwarding
          • Nesse caso o NS encaminha (delega) as pesquisas para outo servidor. Após receber a resposta o resultado também é armazenado em cache.
          • No /etc/named.conf: Para redirecionar para outro servidor DNS todas as consultas recursivas, deve ser incluída a seguinte configuração na seção “options”: • forwarders { IP1; IP2; }; Para que o servidor encaminhe tanto as pesquisas recursivas quanto as pesquisas internas a outro servidor, deve ser incluída a configuração: • forward only;
          • zone “dominioexemplo.com.br” IN { type forward; forwarders { IP1; IP2; }; };
    • Root Domain
      • &nbsp;Referente ao domínio/zona raiz do DNS, representando pelo . (ponto). Os NSs responsáveis pelo Root Domain são chamados de Root Servers.
    • TLD – Top Level Domains
      • Domínios imediatamente abaixo da raiz (.), por exemplo .com, .br, .net , .org e etc
    • Programas
      • DNS Resolver
        • ◦ Software ou biblioteca responsável por fazer a consulta de DNS ◦ Utilizado no sistema local (DNS Client) e também é parte do DNS Server ◦ Pode armazenar os resultados em cache
      • BIND
        • (Berkeley Internet Domain Server) ◦ Open Source DNS Server ◦ Implementa o protocolo DNS ◦ Implementação de DNS Server mais utilizada
        • Alternativas ao BIND
          • ◦ djbdns - Implementação DNS criada por Daniel J. Bernstein ◦ dnsmasq – Combinação leve de um DNS Caching com DHCP ◦ PowerDNS – Implementação DNS de grande porte. “Concorrente” do BIND
          • djbdns
          • dnsmasq
            • dnsmasq is booth a lightweitgh dns forwarder and dhcp server. Dnsmasq supports static and dynamic DHCP leases and supports BOOT/TFTP/PXE network boot protocols.
          • PowerDNS
            • pacote
              • pdns
              • powerdns-server
              • pdns-server
          • Bundy
            • BUNDY&nbsp;- authoritative&nbsp;DNS&nbsp;Server. the&nbsp;BUNDY&nbsp;project is currently in hibernation status.&nbsp;BUNDY&nbsp;provides an authoritative&nbsp;DNS&nbsp;server
    • Combinations minimum two servers
      • Primary and secondary
      • Primary and forwarding
      • Primary and caching
  4. Criar e Manter Zonas de DNS

    • Domínio do Tipo Master
      • No /etc/named.conf: zone "dominioexemplo.com.br" IN { type master; file "dominioexemplo.zone"; };
    • /var/named/dominioexemplo.zone)
      • $TTL 3h @ IN SOA servidor.dominioexemplo.com.br. admin.dominioexemplo.com.br. ( 2018032801 ; serial. Número utilizado para indicar mudanças na zona 28800 ; refresh. Após quanto tempo o NS slave deve verificar novamente por atualizações 7200 ; retry. Em caso de falha no refresh, após quanto tempo deve haver uma retentativa 2419200 ; expire. Validade das informações. Após quanto tempo as informações não atualizadas do slave deixarão de ser válidas 150 ; negative caching. Por quanto tempo uma resposta negativa fica em cache ) NS servidor ; name server MX 5 mailserver ; mail exchange servidor A 192.168.1.5 ; glue record mailserver A 192.168.1.10 www CNAME servidor mail CNAME mailserver
      • Concetos
        • $TTL – Tempo de vida dos dados no cache de quem obter as informações • @ indica o nome do domínio indicado no named.conf • No registro SOA (Start of Authority), o primeiro endereço refere-se ao NS e o segundo ao email do administrador • O . sempre deve ser utilizado no final da referência ao FQDN (Fully Qualified Domain Name, ou endereço completo). Na falta do . , o BIND inclui o domínio automaticamente • Os números indicam tempos em segundos, mas também podem ser utilizados h (horas), d (dias) ou w (semanas). • Glue Record é um registro do tipo A que relaciona o nome do NS do domínio ao seu endereço IP
        • serial.
          • Número utilizado para indicar mudanças na zona
        • refresh.
          • Após quanto tempo o NS slave deve verificar novamente por atualizações
        • retry.
          • Em caso de falha no refresh, após quanto tempo deve haver uma retentativa
        • expire.
          • Validade das informações. Após quanto tempo as informações não atualizadas do slave deixarão de ser válidas
        • negative caching.
          • Por quanto tempo uma resposta negativa fica em cache
        • @
          • indica o nome do domínio indicado no named.conf No registro SOA (Start of Authority), o primeiro endereço refere-se ao NS e o segundo ao e- mail do administrador
        • $TTL
          • Tempo de vida dos dados no cache de quem obter as informações
        • TXT
          • Texto
        • SOA
          • Start of Authority A zone database has resource records of various types. One such record identifies the authority zone's start and includes zone's authoritative data.
        • NS
          • Name Server
        • MX
          • Mail Exchange (Servidor de E-mail). É acompanhado de um número em que quanto menor o valor, maior a prioridade entre os servidores de e-mail.
        • PTR
          • DNS Reverso
        • A
          • The A record is address record.It connects an ip address to a hostname. IPV4
        • AAAA
          • IPV6
        • CNAME
        • CLASS value
          • IN
            • the Internet
          • CH
            • the CHAOS class
          • HS
            • Hesiod [Dyer 87]
          • CS
            • the CSNET class (Obsolete - used only for examples in some obsolete RFCs)
    • Principais Tipos de Registros:
      • A : Endereço IPv4 • AAAA : Endereço IPv6 • CNAME : Canonical Name (apelido) • TXT : Texto • SOA : Start of Authority • NS : Name Server • MX : Mail Exchange (Servidor de E-mail). É acompanhado de um número em que quanto menor o valor, maior a prioridade entre os servidores de e-mail. • PTR : DNS Reverso
    • DNS Reverso
      • Possibilita a descoberta de um nome de DNS a partir de um endereço IP.&nbsp; Each IP has a reverse zone, that consist of part of the IP numbers in reverse order, plus in-addr.arpa. This system is among other things used to check whether a host name belongs to a specific address.
      • Configuração no /etc/named.conf:
        • zone "1.168.192.in-addr.arpa" IN { type master; file "1.168.192.in-addr.arpa.zone"; };
        • /var/named/1.168.192.in-addr.arpa.zone
          • $TTL 3h @ IN SOA servidor.dominioexemplo.com.br. admin.dominioexemplo.com.br. ( 2018032801 ; serial 28800 ; refresh 7200 ; retry 2419200 ; expire 150 ; minium ) NS servidor.dominioexemplo.com.br. 5 PTR servidor.dominioexemplo.com.br. 10 IN PTR mailserver.dominioexemplo.com.br.&nbsp;
          • host 192.168.1.5
            • named-checkzone
              • • named-checkzone : Verifica a sintaxe do arquivo de zona&nbsp;
              • named-compilezone
                • • named-compilezone : Converte um arquivo de zona slave em formato texto legível&nbsp;
                • # dig @192.168.1.220 axfr dominioexemplo.com.br
          • CENTOS
      • Debian
        • /etc/bind/1.168.192.in-addr.arpa.zone
      • Best describe
        • A special zone that provides a mapping from an IP address to an FQDN
  5. Segurança no Servidor DNS

    • O serviço BIND deve estar sempre atualizado O processo do BIND (named) não pode ser executado pelo usuário root Em ambientes críticos o servidor DNS não deve compartilhar o servidor com outros serviços Considerar a separação (split) do serviço de DNS de acordo com o cenário. Ter servidores (ou views) diferentes para tipos de requests diferentes, por exemplo Internet e Intranet.
    • Configurações do named.conf para Segurança
      • version “hidden” : Esconder a versão do software backhole : IPs/Redes que não serão respondidos pelo servidor allow-query : IPs/Redes que podem fazer consultas no servidor allow-recursion : IPs/Redes que podem fazer consultas recursivas no servidor allow-transfer : IPs/Redes que podem realizar operações de transferência de zonas acl : definir grupos de IPs/Redes view : Definir grupos de regras e declarações
      • version “hidden”;
        • Esconder a versão do software
      • backhole
        • IPs/Redes que não serão respondidos pelo servidor
      • allow-query
        • IPs/Redes que podem fazer consultas no servidor
        • On master server
          • acl "myhosts" { 224.123.40.0/24; }; zone "exemple.com" IN { allow-queries { myhosts; }; };
      • allow-recursion
        • IPs/Redes que podem fazer consultas recursivas no servidor
      • allow-transfer
        • IPs/Redes que podem realizar operações de transferência de zonas
      • acl
        • definir grupos de IPs/Redes. Limit access to nameserver data. acl "truted" { localhost; 192.168.1.0/24; }
        • On master server
          • acl "my_slave_servers" { 224.123.240.3; }; zone "exemple.com" IN{ type master; allow-transfer{ my_slave_servers; }; };
        • On slave server
          • zone "exemple.com" IN{ type slave; allow-transfer{none;};};
      • view
        • Definir grupos de regras e declarações
    • TSIG – Transaction Signature
      • Utiliza uma chave simétrica compartilhada para aumentar a segurança na comunicação entre servidores DNS. Essa chave é utilizada para se autorizar o acesso às informações de um servidor. Muito utilizado para proteger a comunicação entre servidores master e slave.
      • O comando dnssec-keygen é utilizado para gerar as chaves. Exemplo: # dnssec-keygen -a HMAC-MD5 -b 256 -r /dev/urandom -n HOST chaves
      • Exemplo de configuração no master
        • key exemplo { algorithm HMAC-MD5; secret “xxxxxxxxxxxxx”; }; allow-transfer { key exemplo; };
      • Exemplo de configuração no slave
        • key exemplo { algorithm HMAC-MD5; secret “xxxxxxxxxxxxx”; }; server IP { keys { exemplo; }; };
    • DNSSEC
      • DNSSEC (BIND DNS Security Extensions) https://www.youtube.com/watch?v=_8M_vuFcdZU Utiliza chaves assimétricas (públicas e privadas) para assegurar a autenticidade e integridade das&nbsp; respostas enviadas pelos servidores DNS.Através da chave privada uma zona de DNS é assinada e a chave pública possibilita garantir aautenticidade da resposta.As chaves são geradas pelo comando dnssec-keygen. Por exemplo:# dnssec-keygen -a DSA -b 1024 -r /dev/urandom -n ZONE exemploO arquivo Kexemplo.+999.+99999.key conterá a chave pública, que deve ser inserida como umregistro na zona de DNS.O arquivo da zona de DNS deve ser assinado com o comando dnssec-signzone, utilizando oarquivo de chave privada Kexemplo.+999.+99999.private. Exemplo:# dnssec-signzone -P -r /dev/urandom -o exemplo.com.br exemplo.zone Kexemplo.+999.+99999.private.O comando dnssec-signzone gerará um arquivo de zona assinado (exemplo.zone.signed), que deve ser configurado no /etc/named.conf.
      • MASTER - #dnssec-keygen
        • dnssec-keygen is a part of the dnssec security extension&nbsp; for DNS. Is used to create either TSIG or DNSSEC keys!!!!May be used to generate public/private and symmetric keys.&nbsp;
        • -a option | Algorithm
          • RSAMD5: [512...4096] RSASHA1:[512...4096] DH:[128...4096] DSA:[512...1024]and multiple of 64 HMAC-MD5:[1...512]
        • -b option | key size
        • #dnssec-keygen -a DSA -b 768 -n zone exemple.com
          • kexemple.com.+003+54444.key
            • chave pública
          • kexemple.com.+003+54444.private
            • chave privada
          • Usando a chave
            • key key.exemplo.com. { &nbsp; &nbsp; &nbsp;algorithm "hmac-md5'; &nbsp; &nbsp; &nbsp;secret "5HUcmGO7Vz...." }; To allow client use the key:&nbsp; server 224.123.400.1 { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; keys key.exemplo.com; };
        • -n option| zone, host, entity, user, other
      • #dnssec-keygen -a DSA -b 1024 -r /dev/urandom -n ZONE dominioexemplo.com.br
        • As chaves são geradas pelo comando dnssec-keygen. Por exemplo:
        • # dnssec-sigzone -P -r /dev/urandom -o dominioexemplo.com.br dominioexemplo.zone Kdominioexemplo.com.br.+003+10370.private
      • #dnssec-sigzone
        • O comando dnssec-signzone gerará um arquivo de zona assinado (exemplo.zone.signed), que deve ser configurado no /etc/named.conf
    • DANE
      • DANE (DNS -Based Authentication of Named Entities)&nbsp; Solução criada para resolver o problema dos CAs (Certification Authorities), criando uma forma de associar um domínio a um CA específico através de um registro do tipo TLSA inserido dentro do arquivo de zona.
      • TLSA
      • CA
    • chroot jail
      • Forma de executar o serviço de DNS em um ambiente isolado do resto do servidor, impedindo que brechas no serviço impactem a segurança do servidor como um todo. Na prática, é criado um novo / exclusivo para o BIND, por isso chroot. Nessa nova raiz são instalados, criados e copiados todos os arquivos e diretórios utilizados pelo BIND, incluindo arquivos do /etc/, /lib, /sbin, /var/run e etc, em uma nova estrutura completa. Na execução do processo bind, deve ser utilizada a opção -t para definir o diretório chroot, por exemplo: # named -u bind -t /chroot/
      • /etc/, /lib, /sbin, /var/run e etc,
      • # named -u bind -t /chroot/
    • Transferência de zona
      • #dig axfr @ns12.zoneedit.com zonetransfer.me
      • #host -l zonetransfer.me ns12.zoneedit.com
      • allow-query statement can be used insine a zone statement or an options statement as well. It can contain either an acl label (truted), none, or one or more IP or ip ranges.
      • alow-transfer { none; };
      • allow-queries {myhosts; };
    • DNSSEC VS TSIG
      • &nbsp;DNSSEC:&nbsp; Utilia chaves públicas e privadas assícronas TSIG: Utiliza chaves compartilhadas&nbsp; para permitir a comunicação entre servidores dns
      • DNSSEC
        • chaves públicas e privadas assícronas
      • TSIG
        • chaves compartilhadas
    • Executar o bind com menos privilégio
    • Running bind in a chroot jail
      • start...... --exec /usr/sbin/named -t /var/cache/bind
      • /usr/sbin -u named -c /etc/named.conf -t /var/named/chroot
  6. Portas

    • O DNS utiliza a porta 53 e em geral o protocolo UDP, o protocolo TCP é usado apenas para transferências de zona.
    • UDP - 53
    • TCP para transferências
  7. Zone information be copied from de primary

    • Why might authoritative zone information be copied from the primary name server's zone databases over to the secondary name server (Called a zone transfer)
    • the secondary daemon start
      • The secondary server's bind daemon has started up
    • the rndc was used on the secondary server
      • the rndc utility was used on the secondary server, and a manual zone data refresh was requested.
    • Secondary zone data's refresh time has expired
      • the secondary server's zone data's refresh time has expired

Imagens e arquivos do mapa

  • DNS
  • DNS

Informações

Descrição
Mapa Mental sobre DNS, criado por Luiz Eduardo em 23-04-2019.
Criado por
Luiz Eduardo
Visualizações
101
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?