Configurando servidor DNS (BIND) no Linux

Introdução

Neste post, apresenta um breve resumo do serviço DNS e configuração do Bind no sistema Linux (Slackware), mas pode ser aplicado em qualquer distro, claro apenas muda o modo de instalação, inicialização, localização do bind de distro para distro.

Qual a função do DNS?

A função do DNS é traduzir um domínio para endereço IP.

Imagina você memorizar todos endereços IPs dos sites que costuma acessar: Ex: 200.154.56.80 (www.terra.com.br), 200.18.7.2(www.joinville.udesc.br), etc, então é muito mais fácil lembrar o nome do site do que pelo endereço IP né, por isso que temos o serviço DNS que faz a tradução do site acessado para endereço IP.

O DNS (Domain Name System), é um serviço cliente/servidor baseado em hierarquias, em que a parte cliente é conhecida como resolver (resolvedor) e a parte servidora como name server. As conexões entre o cliente e o servidor se dão através da porta UDP 53.

Estrutura de domínios

O servidor DNS é baseado em uma estrutura hierárquica, em que o processo de resolução se dá da hierarquia mais alta para a mais baixa. O ponto mais alto da hierarquia é chamado de root-level-domain, ou domínio raiz, que é representado por um caractere ‘.’.

O próximo nível da hierarquia são os top-level-domain, ou domínios de primeiro nível. Eles são representados por códigos domínio de primeiro nível. Veja alguns deles:

* com – Organização comercial

* mil – Militar

* net – Redes (backbones para a Internet)

* org – organizações sem fins comerciais

* gov – governamental

* xx – Sigla do país representado por dois caracteres. Ex: br, uk

Zona de autoridade

 

É a parte do domínio ao qual um servidor de DNS é o responsável. Em cada zona tem-se um arquivo de zona que é a base de referências entre os IPs e nomes desta zona.

 

Servidor primário

É o servidor onde estão os arquivos originais da zona. Só pode existir um servidor primário por zona.

 

Servidor secundário

Aqui é onde ficam as réplicas dos arquivos de zona, que podem ser consultados no caso de inoperabilidade do servidor primário. Ao contrário do servidor primário, podem existir vários servidores secundários. No Brasil, para que possamos registrar um domínio é obrigatório ter dois servidores: o Primário e também um Secundário.

Servidor master

 

É aquele servidor para o qual um servidor secundário irá solicitar as cópias dos arquivos de zona.

 

Servidor cache

É aquele servidor que não responde por zona alguma. Sua função é apenas armazenar resultados de consultas que ele armazena em cache. Assim, novas consultas ao mesmo registro serão atendidas com mais rapidez.

Instalação

 

No Debian: #apt-get install bind9

No Slackware: basta você colocar o CD1 do Slackware, e após montado o CD-ROM , entrar na pasta Slackware/n do CD e digitar no console: #installpkg bind-9.4.3_P4-i486-1.txz

PS: Também pode optar para instalar o bind já na instalação do Slackware.

* /etc/named.conf – Arquivo de configuração geral do BIND.

* /usr/sbin/named – O binário (daemon) do BIND.

* /usr/doc/bind-9.4.3-P4/ – Manual em html muito bom do BIND em inglês.

* /var/named/caching-example/ – Diretório com arquivos exemplo de configuração básicos do BIND

Depois de instalado o pacote bind, vamos para configuração dos arquivos.

named.conf

 

options {

directory “/var/named”;

version “PROTECT”;

allow-transfer {192.168.1.103;};

listen-on {127.0.0.1; 192.168.1.103;};

allow-recursion {127.0.0.1; localhost; 192.168.1.103/24;};

/*

* If there is a firewall between you and nameservers you want

* to talk to, you might need to uncomment the query-source

* directive below. Previous versions of BIND always asked

* questions using port 53, but BIND 8.1 uses an unprivileged

* port by default.

*/

// query-source address * port 53;

};

//

// a caching only nameserver config

//

zone “.” IN {

type hint;

file “caching-example/named.root”;

};

zone “localhost” IN {

type master;

file “caching-example/localhost.zone”;

allow-update { none; };

};

zone “0.0.127.in-addr.arpa” IN {

type master;

file “caching-example/named.local”;

allow-update { none; };

};

zone “103.1.168.192.in-addr.arpa” IN {

type master;

file “caching-example/domain.rev”;

allow-transfer {192.168.1.103;};

};

zone “mundodacomputacao.com.br” IN {

type master;

file “caching-example/saitam.host”;

allow-transfer {192.168.1.103;};

};

 

Explicação do arquivo named.conf

*directory – Aqui você indica qual será o diretório onde ficará os arquivos de registros DNS.

*version – versão do bind. Pensando na segurança é comum esconder a versão do bind, por exemplo nesse caso ‘PROTECT’.

*minimal-responses – Se habilitado, quando o servidor gerar respostas, somente adicionará registros na autoridade quando requerido. Esta opção aumenta a performance do servidor.

*allow-transfer – Aqui você indica quem poderá fazer transferência de autoridades.

*listen-on – Aqui você especifica quais interfaces estão habilitadas a “escutar” conexões na porta UDP 53 do DNS.

*allow-recursion – Caso vá usar um DNS que será acessível pela Internet, é bom que você não deixe que esse pessoal faça recursões, ou seja, que eles pesquisem outros domínios que não sejam os que você tem cadastrado no seu servidor.

Zona Reversa (domain.rev)

 

$TTL 86400

$ORIGIN mundodacomputacao.com.br.

@ IN SOA Slackware.mundodacomputacao.com.br. root.Slackware.mundodacomputacao.com.br. (

4 ; Serial de sincronização

604800 ; refresh

86400 ; retry

2419100 ; expiry

640800 ) ; Negative cache TTL

IN NS Slackware.mundodacomputacao.com.br.

1 IN PTR Slackware.mundodacomputacao.com.br.

1 IN PTR ftp

1 IN PTR www

 

Explicação:

O $TTL se refere ao time-to-live, o tempo de vida do registro que é medido em segundos. Então, no nosso exemplo, o tempo de vida é de 86400 segundos.

$ORIGIN é uma variável que o BIND usa para registros que não entende. É onde você coloca o nome do seu domínio em qualquer registro não-qualificado.

Domínio (mundodacomputacao.host)

 

$TTL 86400

@ IN SOA Slackware.mundodacomputacao.com.br. root.Slackware.mundodoacomputacao.com.br. (

4 ; Serial de sincronização

694800 ; refresh

86400 ; rety

2419100 ; expiry

640800 ) ; Negative cache TTL

NS Slackware.mundodacomputacao.com.br.

IN MX 10 mundodacomputacao.com.br.

localhost IN A 127.0.0.1

mundodacomputacao.com.br. IN A 192.168.1.103

dns IN A 192.168.1.103

www IN A 192.168.1.103

ftp IN A 192.168.1.103

 

Conclusão

Depois de configurado inicie o serviço (bind).

No Debian: #/etc/init.d/bind9 start

No Slackware: #/etc/rc.d/rc.bind start

Na máquina cliente, coloque o DNS do servidor que acabou de configurar e faça um teste.

Nesse caso: $ping mundodacomputacao.com.br

Se obter resposta, então esta OK!

Algumas observações:

1. nesse caso foi configurado o serviço DNS com domínio ‘mundodacomputacao.com.br’, hostname ‘Slackware’ e IP 192.168.1.103. Substitua para seu caso.

2. atenção na sintaxe do bind, pois é comum esquecer ‘.’ e ‘;’ no arquivo de configuração.

3. testado na distribuição Linux Slackware 13.1

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: