Apesar desse post ser feito para CentOS, você pode adaptar para Debian ou Ubuntu (alterando yum para apt-get install e de bind para bind9 e adaptando o arquivo de .conf)
Para instalar esse servidor, você vai precisar:
- Instalar o servidor CentOS padrão: Caso tenha dúvidas consulte aqui ou no link disponibilizado nas referências.
Antes de iniciar a configuração de um servidor DNS, vamos entender alguns conceitos:
- ACLs: São objetos que você cria para usar nas configurações do BIND (como a sua rede interna);
- Views: São como servidores diferentes, que respondem dependo da consulta. Aqui vamos criar Views para o servidor funcionar diferente para a rede interna e para a internet;
- Serial: Informação é usada ENTRE os servidores DNS para saber se as informações estão atualizadas (se estão com o mesmo serial) ou se um servidor precisa atualizar sua zona DNS, sempre que se atualiza uma zona é necessário incrementar o serial dela (diferente de atualizar, esse número tem que ser maior que o anterior);
- Root Hints: São as entidades responsáveis pelos registros DNS no mundo, são usados por padrão como encaminhadores;
- Encaminhadores (Forwarders): Para “quem” o servidor DNS consulta quando for uma pesquisa DNS que ele não é o responsável e ele não possuí a informação;
- Recursividade: É a permissão para o servidor DNS consultar informações de domínios que ele não tem a zona cadastrada (em servidores Externos, normalmente se desabilita, para que não usem seu servidor para navegar na internet).
Agora, vamos começar. Para instalar o Bind, execute os seguintes comandos:
yum install bind bind-utils bind9-doc -y
Lembrando que nesse post, vamos exemplificar duas views:
- Uma para os clientes da rede interna: Nesse caso vamos permitir a recursividade e redirecionar as consultas do domínio seudominiointerno.com para outro servidor DNS interno (se fosse o servidor Active Directory, por exemplo);
- Uma para os demais clientes (rede externa): Nesse caso vamos desabilitar a recursividade e responder apenas as consultas sobre o domínio as consultas do domínio seudominioexterno.com;
Para isso execute o comando:
vim /etc/named.conf
Deixe o arquivo da seguinte forma:
options { directory “/var/named”; dump-file “/var/named/data/cache_dump.db”; statistics-file “/var/named/data/named_stats.txt”; memstatistics-file “/var/named/data/named_mem_stats.txt”; dnssec-enable yes; dnssec-validation yes; bindkeys-file “/etc/named.iscdlv.key”; managed-keys-directory “/var/named/dynamic”; pid-file “/run/named/named.pid”; session-keyfile “/run/named/session.key”; }; logging { channel default_debug { file “data/named.run”; severity dynamic; }; }; acl “rede_interna” { IP_SUA_REDE_INTERNA/CIDR; }; view “view_para_rede_interna”{ match-clients { rede_interna; }; match-destinations { localhost; }; recursion yes; include “/etc/named.root.key”; include “/etc/named.rfc1912.zones”; zone “seudominiointerno.com” IN { type forward; forwarders { IP_DNS_PRIMARIO; IP_DNS_SECUNDARIO; }; }; }; view “view_external”{ match-clients { any; }; match-destinations { any; }; recursion no; allow-query-cache { none; }; allow-transfer { active_directory; }; zone “seudominioexterno.com” { type master; file “/var/named/zonas/seudominioexterno.com.dns”; }; zone “seuoutrodominioexterno.com” { type slave; file “/var/named/zonas/seuoutrodominioexterno.com.dns”; masters { IP_DNS_MASTER; }; }; }; |
Agora crie os registros do seudominioexterno.com e adicionar alguns registros
mkdir /var/named/zonas
touch /var/named/zonas/seudominioexterno.com.dns
touch /var/named/zonas/seuoutrodominioexterno.com.dns
chmod -R 775 /var/named/zonas/
chown -R named.named /var/named/zonas/
vim /var/named/zonas/seudominioexterno.com.dns
Dentro insira o seguinte conteúdo (deixamos alguns exemplos para ajudar, como um registro SPF e configurando o gmail como o provedor de e-mail desse domínio):
$TTL 86400 @ IN SOA nomedoservidor.seudominioexterno.com. root.nomedoservidor.seudominioexterno.com. ( 2011120201 ; Serial: use no formato ano,mes,dia,atualizadao do dia (yyyymmddnn[00..99]) 3H ; Refresh every 3 hours: 3h60m60s 1H ; Retry every 15 minutes: 15m60s 1W ; Expire after a week: 7d24h60m60s 1H ) ; Minimum ttl of 1 hour: 1h60m60s @ IN NS nomedoservidor.seudominioexterno.com. @ IN MX 10 smtp.gmail.com. @ IN TXT “v=spf1 mx a:SERVIDOR +all” dns1 IN A IP www IN CNAME nomedoservidor |
Agora, execute:
systemctl enable named
systemctl start named
Se precisar testar se a configuração está correta, execute o comando:
named-checkconf
Fontes/Referências
NVLAN – Instalação padrão do CentOS7
https://help.ubuntu.com/10.04/serverguide/dns-configuration.html
https://social.technet.microsoft.com/Forums/pt-BR/bfa2f560-9bd8-4241-8140-c9e5502752e7/diferena-entre-forwarders-e-root-hints-?forum=winsrv2008pt
http://aesptux.com/2011/11/08/configuring-bind9-master-slave-on-ubuntu/
Mais Informações
Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.
Entre em contato conosco pelo e-mail equipe@nvlan.com.br.