Neste artigo vou mostrar como criar domínios (zonas) no BIND e colocar nossos domínios para funcionar.
Criaremos dois domínios e as máquinas que fazem parte dessas zonas.
Primeiro devemos instalar os pacotes necessários para o funcionamento do serviço, o nome do pacote é bind tanto em distribuições baseadas em Debian quanto em Red Hat.
As diferenças entre as distribuições está na localização dos arquivos, as variáveis e comandos são os mesmos. As diferenças são as seguintes:
Red Hat:
Script de inicialização: /etc/init.d/named
Arquivos de Configuração: /etc/named.conf (Opções e domínios) /etc/named.rfc1912.zones (zonas padrão)
Diretório de database de zonas: /var/named
Debian:
Script de inicialização: /etc/init.d/bind9
Arquivos de Configuração: /etc/bind/named.conf.options (opções) /etc/bind/named.conf.local (domínios) /etc/named.conf.default.zones (zonas padrão)
Diretório de database de zonas: /var/cache/bind
Os domínios (direto e reverso) devem ser criados no arquivo /etc/named.conf (Red Hat) ou /etc/bind/named.conf.local (Debian), e as máquinas de cada domínio devem ser criadas nos arquivos de database de cada distribuição. Nos arquivos com nome named os caracteres de // são os comentários, nos arquivos db. o caracter de ; é o comentário.
No DNS master edite o arquivo named correspondente, usando como exemplo os domínios empresa.net e exemplo.net (domínios que existem, mas aqui serão usados como exemplo) e sendo nossa rede externa 172.16.31.10 a 172.16.31.20(eu sei que é um endereço inválido mas usaremos para exemplo), com o seguinte conteúdo ao final:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | zone "class365.com.br" { type master; file "db.class365.com.br"; allow-transfer { 172.16.31.11; }; }; zone "vagnerfonseca.com.br" { type master; file "db.vagnerfonseca.com.br"; allow-transfer { 172.16.31.11; }; }; zone "31.16.172.in-addr.arpa" { type master; file "db.172.16.31"; allow-transfer { 172.16.31.11; }; }; |
Onde:
zone – é o nome do domínio que será criado neste servidor
type – tipo de servidor DNS (master ou slave)
file – arquivo de database desta zona
allow-transfer – diretiva que permite transferência do arquivo de zona para o servidor slave.
As zonas diretas devem ser criadas uma para cada domínio, mas como a zona reversa é baseada na rede onde os hosts existem, assim sendo, podemos ter uma única zona reversa em nosso DNS atendendo a vários domínios, desde que os hosts destes domínios estejam na mesma rede.
Para checar se não houve erro na configuração usaremos o comando named-checkconf:
root@redhat# named-checkconf /etc/named.conf
ou
root@debian# named-checkconf /etc/bind/named.conf
Com os arquivos named devidamente configurados, devemos criar agora o database de cada zona direta e da zona reversa.
Criaremos nos respectivos diretórios de database os arquivos com os seguintes conteúdos:
db.class365.com.br
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $TTL 28800 ; tempo de vida das respostas fornecidas pelo DNS @ IN SOA ns1.class365.com.br. dns-admin.class365.com.br. ( 2019161101 ; serial para controle de atualizações entre master e slave 3600 ; tempo de atualizações entre master e slave (refresh) 1800 ; tempo de atualizações caso o refresh falhe 604800 ; tempo de expiração do slave caso não se contate com o master 3600 ) ; tempo de vida das repostas negativas do servidor @ IN NS ns1.class365.com.br. @ IN MX 10 mail.class365.com.br. ns1 IN A 172.16.31.10 ns2 IN A 172.16.31.11 mail IN A 172.16.31.12 ftp IN A 172.16.31.13 www IN A 172.16.31.20 web IN CNAME www |
db.vagnerfonseca.com.br
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $TTL 28800 ; tempo de vida das respostas fornecidas pelo DNS @ IN SOA ns1.vagnerfonseca.com.br. dns-admin.vagnerfonseca.com.br. ( 2019161101 ; serial para controle de atualizações entre master e slave 3600 ; tempo de atualizações entre master e slave (refresh) 1800 ; tempo de atualizações caso o refresh falhe 604800 ; tempo de expiração do slave caso não se contate com o master 3600 ) ; tempo de vida das repostas negativas do servidor @ IN NS ns1.vagnerfonseca.com.br. @ IN MX 10 mail.vagnerfonseca.com.br. ns1 IN A 172.16.31.10 ns2 IN A 172.16.31.11 mail IN A 172.16.31.12 ftp IN A 172.16.31.14 www IN A 172.16.31.20 web IN CNAME www |
db.172.16.31
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | $TTL 28800 ; tempo de vida das respostas fornecidas pelo DNS @ IN SOA ns1.vagnerfonseca.com.br. dns-admin.vagnerfonseca.com.br. ( 2019161101 ; serial para controle de atualizações entre master e slave 3600 ; tempo de atualizações entre master e slave (refresh) 1800 ; tempo de atualizações caso o refresh falhe 604800 ; tempo de expiração do slave caso não se contate com o master 3600 ) ; tempo de vida das repostas negativas do servidor @ IN NS ns1.vagnerfonseca.com.br. ;class365.com.br 10 IN PTR ns1.class365.com.br. 11 IN PTR ns2.class365.com.br. 12 IN PTR mail.class365.com.br. 13 IN PTR ftp.class365.com.br. 20 IN PTR www.class365.com.br. 20 IN PTR web.class365.com.br. ;vagnerfonseca.com.br 10 IN PTR ns1.vagnerfonseca.com.br. 11 IN PTR ns2.vagnerfonseca.com.br. 12 IN PTR mail.vagnerfonseca.com.br. 14 IN PTR ftp.vagnerfonseca.com.br. 20 IN PTR www.vagnerfonseca.com.br. 20 IN PTR web.vagnerfonseca.com.br. |
Assim teremos um arquivo para cada domínio direto e um arquivo para todos os reversos.
Vamos testar os arquivos com o seguinte comando (estando no diretório onde os arquivos foram criados):
root@debian# named-checkzone class365.com.br db.class365.com.br
root@debian# named-checkzone vagnerfonseca.com.br db.vagnerfonseca.com.br
root@debian# named-checkzone 31.16.172.in-addr.arpa db.172.16.31
Se não houver nenhum erro, basta iniciar o serviço:
Em Red Hat:
root@redhat# /etc/init.d/named restart
Em Debian:
root@debian# /etc/init.d/bind9 restart
Monitore por erros no log do sistema /var/log/syslog (Debian) ou /var/log/messages (Red Hat).
No slave faremos a seguinte configuração no arquivo named correspondente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | zone "class365.com.br" { type slave; file "db.class365.com.br"; masters { 172.16.31.10; }; }; zone "vagnerfonseca.com.br" { type slave; file "db.vagnerfonseca.com.br"; masters { 172.16.31.10; }; }; zone "31.16.172.in-addr.arpa" { type slave; file "db.172.16.31"; masters { 172.16.31.10; }; }; |
Assim ao reiniciar o serviço o slave irá procurar o master (172.16.31.10) e irá fazer download (porta 53 TCP) dos arquivos db. existentes no master e se manterá sincronizado, verificando a cada ciclo de tempo (refresh) se houve atualizações nos arquivos no master.
No próximo post colocaremos uma zona interna respondendo apenas para rede local e faremos otimizações do DNS.
Não se esqueça de se inscrever no meu canal do Youtube nem de me seguir no Instagram.
Entre no nosso grupo do Telegram e vamos falar muito sobre Linux.
Show de bola❗
Parabéns pela iniciativa.