Geraldo Silva
(usa Outra)
Enviado em 30/04/2012 - 13:59h
Eu segui um tutorial
http://blog.cesar.augustus.nom.br/instalando-o-servidor-bind-no-linux.html
Instalando o Servidor BIND no Linux
Postado por Cesar Augustus Silva às 00:01 7 Comentários
Linux Servidor Tutorial Video
Hoje irei mostrar como instalar o Servidor BIND para montar um servidor DNS responsável em converter os endereços de nomes em endereços IP e vice-versa no GNU/Linux.
Instalando o BIND
Debian/Ubuntu
root@cesar.augustus.nom.br's
# apt-get install bind9 dnsutils
Fedora/CentOS
root@cesar.augustus.nom.br's
# yum install bind
CentOS
Os arquivos de configuração padrão não são copiados diretamente para o caminho correto, terá que copiá-los manualmente:
root@cesar.augustus.nom.br's
# cp -r /usr/share/doc/bind-9.3.6/sample/* /
No arquivo de configuração (/etc/named.conf), vêm com uma cláusula de chave de segurança mostrando como gerar uma chave:
key ddns_key
{
algorithm hmac-md5;
secret "use /usr/sbin/dns-keygen to generate TSIG keys";
};
Por causa dessa cláusula terá que gerar uma chave para colocar no lugar da descrição, ou, remover a cláusula para que possa iniciar o servidor normalmente.
Se for gerar a chave, execute o comando abaixo e coloque a chave gerada dentro das aspas da directiva secret:
root@cesar.augustus.nom.br's
# dns-keygen
nWGitXKWj65geuWeV2bDupHn0pTh7Ti6Tzpj7uoSuLGN0vlxER6lrFZlBFq4
Atribui a permissão de escrita para o grupo do diretório "/var/named", para que o servidor possa ter controle total nesse diretório:
root@cesar.augustus.nom.br's
# chmod g+w /var/named
Se estiver habilitado o SELinux, execute o seguinte comando:
root@cesar.augustus.nom.br's
# setsebool -P named_write_master_zones 1
Coloque o BIND para iniciar durante o boot e inicie:
root@cesar.augustus.nom.br's
# chkconfig named on
# service named start
Slackware
Baixe o pacote do BIND e instale:
•ftp://ftp.slackware-brasil.com.br/slackware(...)/n/bind-9.4.2_P2-i486-1.tgz
root@cesar.augustus.nom.br's
# installpkg bind-9.4.2_P2-i486-1.tgz
Após a instalação, coloque o BIND para iniciar durante o boot e inicie:
root@cesar.augustus.nom.br's
# chmod +x /etc/rc.d/rc.bind
# /etc/rc.d/rc.bind start
Configurando o BIND
O arquivo de configuração do BIND se encontra no seguinte caminho:
• Debian/Ubuntu: "/etc/bind/named.conf"
São divididos em três arquivos diferentes: 1."/etc/bind/named.conf.options": onde fica a configuração global.
2."/etc/bind/named.conf.local": onde fica a configuração das zonas.
3."/etc/bind/named.conf.default-zones": onde fica a configuração das zonas padrão.
•Fedora/CentOS e Slackware: "/etc/named.conf"
Na cláusula options onde é definido a configuração global do servidor, adicione as seguintes directivas:
options {
...
listen-on { 127.0.0.1; 192.168.0.0/24; };
allow-query { 127.0.0.1; };
recursion yes;
allow-recursion { 127.0.0.1; 192.168.0.0/24; };
};
•listen-on: define quais máquinas possam utilizar o servidor DNS.
•allow-query: define quais máquinas estão autorizadas a emitir consultas.
•recursion: serve para ativar/desativar as consultas recursivas.
•allow-recursion: define quais máquinas possam efetuar consultas recursivas.
Zona
A zona é um sub-domínio, um host, pedaço de nomes que são registrados no servidor DNS para possuir informações e autoridade para responder consultas DNS.
•A zona direta é a responsável por converter os endereços de nomes em endereços IP.
•A zona reversa faz o contrário, converte os endereços IP em endereços de nomes.
CentOS
O arquivo de configuração padrão vêm com as cláusulas view declaradas para definir as zonas dentro e serem acessíveis apenas pelas máquinas que correspondem a view.
Para declarar as zonas no modo padrão, remova todas view existentes na configuração e adicione a seguinte linha abaixo:
include "/etc/named.rfc1912.zones";
Adicione duas cláusulas zone para indicar as configurações das zonas direta e reversa do domínio em que o servidor tem autoridade:
zone "dominio.com.br" {
type master;
file "dominio.com.br.zone";
allow-transfer { 192.168.0.11; };
};
zone "0.168.192.in-addr.arpa" {
type master;
file "dominio.com.br.rev";
allow-transfer { 192.168.0.11; };
}; •type: define o tipo de zona.
•file: define o nome do arquivo de zona.
•allow-transfer: define os endereços IP dos servidores secundários que poderá transferir as informações da zona.
Para verificar se tem algum erro no arquivo de configuração, execute o seguinte comando:
root@cesar.augustus.nom.br's
# named-checkconf
Arquivos de Zona
Os arquivos de zona são criados dentro do diretório que está definido na directiva directory da cláusula options:
•Debian/Ubuntu: "/var/cache/bind"
•Fedora/CentOS e Slackware: "/var/named"
No arquivo de zona são inseridos os registros de recursos (RR) seguindo o seguinte formato:
[name] [ttl] [class] type data •name: define o nome raiz da zona. O @ (arroba) referencia o domínio definido na cláusula zone no arquivo de configuração.
•ttl: define o tempo de duração (time-to-live) em segundos, que o registro de recurso mantêm no cache do servidor. A directiva $TTL serve para definir o valor padrão.
•class: define a classe que irá mapear a informação da zona. A classe utilizada e padrão é o IN.
• type: define o tipo de registro de recurso da zona. ◦ SOA: define o início das zonas e os parâmetros globais. serial: define um número de série para o arquivo de zona. Toda vez que o número de série é alterado para um valor maior, os arquivos de zona dos servidores secundários são atualizados.
refresh: define um período de tempo em segundos, para os servidores secundários verificar periodicamente se o número de série foi alterado para fazer a atualização.
retry: define um período de tempo de espera em segundos, quando um servidor secundário solicita o número de série ao servidor primário e falha na resposta.
expire: define um período de tempo em segundos, que os servidores secundários possam continuar respondendo ser ter sido atualizado pelo servidor primário.
minimum: define o tempo de duração em segundos, que o registro de recurso mantêm no cache dos servidores secundários.
◦NS: define o servidor de nomes autoritário.
◦MX: define o servidor de e-mail a ser utilizado.
◦TXT: define um texto descritivo, mais usado para adicionar registros SPF.
◦HINFO: define o tipo de hardware e sistema operacional em uso.
◦A: define o endereço IP da zona.
◦CNAME: define o pseudônimo como um ponteiro em outra zona existente.
•data: define os dados específicos para cada tipo de registro de recurso.
Crie o arquivo de zona com os seguintes RR:
;
; Zone file for dominio.com.br
;
$TTL 86400
@ IN SOA ns1.dominio.com.br. hostmaster.dominio.com.br. (
2012010100 ; serial
7200 ; refresh
1800 ; retry
1209600 ; expire
300 ) ; minimum
NS ns1
NS ns2
MX 5 mail
TXT "v=spf1 mx -all"
HINFO PC-Intel-2.4GHz "Linux 2.6"
A 192.168.0.100
ns1 A 192.168.0.10
ns2 A 192.168.0.11
mail A 192.168.0.57
www CNAME @
ftp CNAME www
pop3 CNAME mail
smtp CNAME mail
Para verificar se tem algum erro no arquivo de zona, execute o seguinte comando:
Debian/Ubuntu
root@cesar.augustus.nom.br's
# named-checkzone dominio.com.br /var/cache/bind/dominio.com.br.zone
zone dominio.com.br/IN: loaded serial 2012010100
OK
Fedora/CentOS e Slackware
root@cesar.augustus.nom.br's
# named-checkzone dominio.com.br /var/named/dominio.com.br.zone
zone dominio.com.br/IN: loaded serial 2012010100
OK
Crie o arquivo de zona reversa com os seguintes RR:
;
; Reverse zone file for dominio.com.br
;
$TTL 86400
@ IN SOA ns1.dominio.com.br. hostmaster.dominio.com.br. (
2012010100 ; serial
7200 ; refresh
1800 ; retry
1209600 ; expire
300 ) ; minimum
NS ns1.dominio.com.br.
NS ns2.dominio.com.br.
100 PTR dominio.com.br.
10 PTR ns1.dominio.com.br.
11 PTR ns2.dominio.com.br.
57 PTR mail.dominio.com.br.
Para verificar se tem algum erro no arquivo de zona reversa, execute o seguinte comando:
Debian/Ubuntu
root@cesar.augustus.nom.br's
# named-checkzone 0.168.192.in-addr.arpa /var/cache/bind/dominio.com.br.rev
zone 0.168.192.in-addr.arpa/IN: loaded serial 2012010100
OK
Fedora/CentOS e Slackware
root@cesar.augustus.nom.br's
# named-checkzone 0.168.192.in-addr.arpa /var/named/dominio.com.br.rev
zone 0.168.192.in-addr.arpa/IN: loaded serial 2012010100
OK
Se não houver nenhum erro nas configurações, reinicie o servidor:
Debian/Ubuntu
root@cesar.augustus.nom.br's
# /etc/init.d/bind9 restart
Fedora/CentOS
root@cesar.augustus.nom.br's
# service named restart
Slackware
root@cesar.augustus.nom.br's
# /etc/rc.d/rc.bind restart
Testando a Zona
Para testar as zonas do dominio configurado no servidor depois de ter reiniciado, basta usar os seguintes comandos para efetuar consultas e emitir as informações:
•dig: é o comando para consultar os servidores DNS, efetuando as pesquisas e exibindo as respostas que são enviadas pelo servidor de nome que foi consultado.
cesar@cesar.augustus.nom.br's
$ dig @127.0.0.1 dominio.com.br SOA
; <<>> DiG 9.3.6-P1 <<>> @127.0.0.1 dominio.com.br SOA
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29811
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;dominio.com.br. IN SOA
;; ANSWER SECTION:
dominio.com.br. 86400 IN SOA ns1.dominio.com.br. hostmaster.dominio.com.br. 2012010100 7200 1800 1209600 300
;; AUTHORITY SECTION:
dominio.com.br. 86400 IN NS ns1.dominio.com.br.
dominio.com.br. 86400 IN NS ns2.dominio.com.br.
;; ADDITIONAL SECTION:
ns1.dominio.com.br. 86400 IN A 192.168.0.10
ns2.dominio.com.br. 86400 IN A 192.168.0.11
;; Query time: 5 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Jan 01 00:00:00 2012
;; MSG SIZE rcvd: 147
•host: é um comando com a mesma funcionalidade do dig, porém retorna menos informações.
cesar@cesar.augustus.nom.br's
$ host dominio.com.br 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
dominio.com.br has address 192.168.0.100
dominio.com.br mail is handled by 5 mail.dominio.com.br. •nslookup: é um comando igual ao host, usado no GNU/Linux e Windows.
cesar@cesar.augustus.nom.br's
$ nslookup 192.168.0.100 127.0.0.1
Server: 127.0.0.1
Address: 127.0.0.1#53
100.0.168.192.in-addr.arpa name = dominio.com.br.
Servidor Secundário
O servidor DNS secundário (slave) é uma cópia de segurança do servidor DNS primário (master). Para que caso o servidor primário esteja indisponível, ou com algum problema, o servidor secundário servirá como um substituto.
Seguindo a mesma configuração global (options) do servidor primário, adicione as duas zonas que foram adicionado no servidor primário com as seguintes configurações:
zone "dominio.com.br" {
type slave;
file "dominio.com.br.zone";
masters { 192.168.0.10; };
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "dominio.com.br.rev";
masters { 192.168.0.10; };
}; •masters: define o endereço IP do servidor primário em que será feito o pedido de transferência das informações das zonas.
Verifique se tem algum erro no arquivo de configuração:
root@cesar.augustus.nom.br's
# named-checkconf
Se não houver nenhum erro, reinicie o servidor:
Debian/Ubuntu
root@cesar.augustus.nom.br's
# /etc/init.d/bind9 restart
Fedora/CentOS
root@cesar.augustus.nom.br's
# service named restart
Slackware
root@cesar.augustus.nom.br's
# /etc/rc.d/rc.bind restart
Estando com as configurações corretas no servidor DNS primário e secundário, após ter reiniciado o servidor secundário, a transferência dos arquivos de zona do servidor primário já estará feita. Para testar no servidor secundário, basta efetuar uma consulta utilizando o comando dig:
cesar@cesar.augustus.nom.br's
$ dig @127.0.0.1 dominio.com.br SOA
; <<>> DiG 9.3.6-P1 <<>> @127.0.0.1 dominio.com.br SOA
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29811
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;dominio.com.br. IN SOA
;; ANSWER SECTION:
dominio.com.br. 86400 IN SOA ns1.dominio.com.br. hostmaster.dominio.com.br. 2012010100 7200 1800 1209600 300
;; AUTHORITY SECTION:
dominio.com.br. 86400 IN NS ns1.dominio.com.br.
dominio.com.br. 86400 IN NS ns2.dominio.com.br.
;; ADDITIONAL SECTION:
ns1.dominio.com.br. 86400 IN A 192.168.0.10
ns2.dominio.com.br. 86400 IN A 192.168.0.11
;; Query time: 5 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Jan 01 00:00:00 2012
;; MSG SIZE rcvd: 147