sábado, 26 de outubro de 2013

Instalando e Configurando o Bind no Linux

4 comments
O Servidor DNS mais usado no Linux é o Bind. O Bind é um software open-source, desenvolvido pelo ISC (Internet Software Consortium) e é amplamente utilizado não somente no Linux, mas também em sistemas Unix em geral, como o FreeBSB e o Mac OS, portanto quase todos os sistemas operacionais com exceção do Windows.

Para fazer a instalação do Bind, procure pelo pacote bind no gerenciador de pacotes da distribuição utilizada. Nas distribuições derivadas do Debian, o pacote "bind" instala o bind8 enquanto o pacote "bind9" instala o bind9, que é a versão recomendada.
# apt-get install bind9

Nota: O Bind passou da versão 4 para 8, dessa forma acompanhando a numeração de versão do SendMail, Então não existe versões 5, 6 ou 7. O Bind 8 é a quinta versão do software.

No RedHat, o pacote "bind", instala diretamente a versão mais recente, sem opção de instalar entre o bind 8 ou 9.

# yum install bind     [instala última versão do bind disponível no repositório]
# yum install bind-chroot     [protege a Aplicação]
# yum install caching-nameserver     [instala exemplos dos arquivos de Configuração]
# cp /etc/named.caching-nameserver.conf     /etc/named.conf    [copia e substitui o arquivo de configuração pelo arquivo de configuração de exemplo] 
# service named start    [inicia o Serviço]
# chkconfig service named on    [configura para iniciar o bind automaticamente toda vez que o sistema for inicializado]

Por padrão o Bind já vem configurado para trabalhar como um servidor DNS de cache, encaminhando as requisições para os Root Servers, sem responder nada diretamente, então bastaria configurar o DNS primário dos clientes para o IP do Servidor DNS e todos já estariam navegando na Internet.

O principal arquivo de configuração do Bind, é o "named.conf" localizado em /etc/named.conf ou /etc/bind/named.conf dependendo da distribuição e ou versão do sistema. No arquivo de configuração você encontrará configurações parecidas com essas:

# vi named.conf
onde:
listen-on: define quais máquinas possam utilizar o servidor DNS.
allow-query: define quais máquinas estão autorizadas a emitir consultas.
allow-recursion: define quais máquinas possam efetuar consultas recursivas.
recursion: serve para ativar/desativar as consultas recursivas.

ADICIONANDO DOMÍNIOS
Depois do Bind instalado o próximo passo é configurar o serviço para responder pelo seu domínio.
Nota: Consulte seu provedor de registro para saber como apontar seu domínio para seu servidor DNS. (registro.br por exemplo)
Após os devidos apontamentos, comece adicionando as seguintes linhas no final do arquivo named.conf .
zone   "blogdodanilo.com.br" IN {
             type master;
             file "blogdodanilo.com.br.zone";
             allow-update  {  LAN;  };
             allow-transfer {  192.168.1.2;  };
};
onde:
zone: indica o domínio que a zona hospeda
type: tipo da zona
file: arquivo de configuração da zona em /var/named
allow-update: define os hosts que podem se registrar na zona DNS.
allow-transfer: define quais servidores secundários terão permissão para realizar transferências de zona (se não utilizar servidor único coloque o IP do próprio servidor, ou qualquer um conseguirá atualizar a zona)

Essas linhas significam que o servidor é o responsável pelo domínio blogdodanilo.com.br, e sempre que receber uma requisição vai responder de acordo com especificado no arquivo /var/named/blogdodanilo.com.br.zone .

Após configurar o arquivo aplique o seguinte comando para saber se não possui nenhum erro em sua sintaxe: # named-checkconf     [verifica se a sintaxe do arquivo named.conf está correta]

Ao instalar o bind, automaticamente é criado uma conta de serviço chamada named, para seu DNS funcionar perfeitamente essa conta deve possuir permissão sobre o arquivo de configuração named.conf, execute o comando abaixo para alterar o dono e grupo do arquivo:
# chown named.named named.conf     [O usuário de sistema named, precisa ter permissão para ler e executar o arquivo named.conf]

CONFIGURANDO O ARQUIVO DE ZONA

Agora é necessário criar o arquivo de configuração da zona conforme especificado no named.conf. Esse arquivo deve seguir uma certa formatação e caso queria usar comentários utilize ";" no lugar de "#".
Estou disponibilizando arquivo para ser usado como modelo, ele pode ser baixado aqui.
O Arquivo estará formatado conforme mostrado abaixo:
# vi /var/named blogdodanilo.com.br.zone
Na primeira linha:
@   IN     SOA          dns1.blogdodanilo.com.br          hostmaster.blogdodanilo.com.br     (
essa linha significa que na internet esse servidor responde pelo domínio e informa o e-mail do administrador. O parênteses no final indica o início da configuração de domínio.
A segunda linha " 2001062501   ;   serial " indica o número de serial, é formada pela data mais dois dígitos, é o número de sincronismo com o servidor secundário, de tempos em tempos o servidor secundário consulta o número de serial para saber se houve alguma atualização no arquivo.
Ele deve ser alterado a cada atualização para as configurações serem replicadas aos servidores secundários. O serial pode ser qualquer número de 10 dígitos, uma boa prática é usar a data da última alteração mais dois dígitos sequênciais para serem incrementados a cada mudança.

Após terminar de editar o arquivo de configuração você pode executar os seguintes comando para verificar se a configuração está correta: 
# named-checkzone [domínio] [arquivo_de_zona]
ou,
# named-checkzone    blogdodanilo.com.br    blogdodanilo.com.br.zone

Outra forma para verificar o estado de seu servidor DNS é executar o comado para verificar os logs e enquanto isso outro terminal reiniciar o serviço de DNS

por exemplo:
# tail -f  /var/log/messages   
enquanto isso em outro terminal, reinicie o serviço e verifique os logs que apareceram no terminal.
# service named restart

Para aplicar as configurações do arquivo de zona sem precisar reiniciar o serviço DNS, execute o comando abaixo.

Lembre-se de atualizar o serial toda vez que fizer alterações para que seja replicado aos servidores secundários.
# rndc reload blogdodanilo.com.br

Então, 
tem alguma informação ou dúvida sobre o assunto? Fique a vontade para deixar um comentário.



Referências:
Livro Servidores Linux - Guia Pático ( Carlos E. Morimoto)
Material Professor Ricardo Mercês

4 comentários:

  1. Parabéns pelo postm ficou muito bom, me ajudou a entender.

    ResponderExcluir
  2. Parabéns pelo postm ficou muito bom, me ajudou a entender.

    ResponderExcluir
  3. Parabéns pelo postm ficou muito bom, me ajudou a entender.

    ResponderExcluir
  4. Danilo, para um servidor de dominio externo, preciso informar o ip do registro brasil onde esta registrado o dominio ?

    ResponderExcluir