sexta-feira, 5 de julho de 2013

Instalação e configuração de um servidor BIND9 em debian 6

Quero passar a todos, como realizar as configurações de servidores para montar estruturas de Infra básica do mais básico ao intermediário/avançado.

Nessa primeira parte que será constituído de uma serie de 4 postagens, vou passar um passo a passo de como realizar a instalação e configuração do DNS com o BIND9 no Debian 6.

Obs: Lembrando a todos que onde estiver destacado em vermelho é para que você possa alterar conforme sua vontade.


Vamos seguindo com o nosso roteiro:

================================================
||MONTANDO UM SERVIDOR BIND DNS PASSO-A-PASSO||
================================================

======================================
-== Configurando as interfaces ==-
========================
Entrar no arquivo # vi /etc/network/intervaces e configurar uma Alias como abaixo:
(abaixo da eth0 que estará configurada como DHCP, não esquecendo de arancar o hot-plug eth0
e colocar auto eth0, onde stá como DHCP).
                   Exemplo de configuração da placa de rede em DHCP com Aliase
                   #Interface DHCP
                   auto eth0
                   iface eth0 inet dhcp
                          
#Aliase para configurar a interface para o DNS
auto eth0:1
iface eth0:1 inet static
                name Eth0 Alias
                address 192.168.4.1
                netmask 255.255.255.0
                broadcast 192.168.4.255
                network 192.168.4.0
#Aliase para configurar a interface para o MAIL
auto eth0:1
iface eth0:1 inet static
                name Eth0 Alias
                address 192.168.4.2
                netmask 255.255.255.0
                broadcast 192.168.4.255
                network 192.168.4.0
#Aliase para configurar a interface para o DHCP
auto eth0:1
iface eth0:1 inet static
                name Eth0 Alias
                address 192.168.4.3
                netmask 255.255.255.0
                broadcast 192.168.4.255
                network 192.168.4.0
======================================
-== Adicionando o caminho para baixar bibliotécas ==-
======================================
Primeiramente entrar no diretório # vi /etc/apt/source.list e adicionar ao arquivo a linha

deb http://ftp.br.debian.org/debian stable main contrib non-free

Agora para atualizar as bibliotecas antes das instalações, #apt-get update

======================================
-== Instalar o vim  ==-
===============
Para a instalação de um editor de texto mais amigável e confiável e prático (em relação ao VI)
 #apt-get install vim

======================================
-== Configurações importantes para facilitar o trabalho  ==-
======================================
Entrar no arquivo # vim /etc/vim/vimrc e aproximadamente na linha "20"descomentar a "syntax on"
e também abaixo adicionar a linha set nu para enumerar as linhas  e diferenciar a sintax dentro dos
arquivos de configuração (/ nome do arquivo serve para procurar em um arquivo.
apt-get install gpm    (para instalar o mouse bom para pode se localizar no sell do Debian)
Entrar no arquivo # vim /root/.bashrc e adicionar as linhas no arquivo conforme abaixo:

alias ls='ls --color=auto'
 alias dir='ls --color=auto'
 alias vdir='ls --color=auto'
 alias grep='grep --color=auto'
 alias fgrep='fgrep --color=auto'
 alias egrep='egrep --color=auto'

Salvar e sair, após aplicar o # source ~/.bashrc  para realizar a aplicação do que foi alterado no arquivo.
As linhas acrescentadas acima, seve para diferenciar os arquivo, diretórios entre outros com
cores diferentes.
======================================
-== Instalando o bind9 ==-
==================
# apt-get install bind9
======================================
-== Configurando o arquivo de ZONA  ==-
==============================
Obs.: Antes de começar, entrar no arquivo #vim /etc/resolv.conf e adicionar o nameserver 127.0.0.1
para que o mesmo seja o primeiro a fazer a consulta no arquivo como exemplo abaixo:
domain home
search home
nameserver 127.0.0.1


1º) Fazer cat named.conf.options >> named.conf depois cat named.conf.default-zones >> named.conf 
e por fim cat named.conf.local >> named.conf isso tudo é para centralizar em somente um arquivo o 
#named.conf, gerando mais facilidade de administração do DNS;

2º) Entrar no diretório do bind # cd /etc/bind e copiar o arquivo db.empty
#cp db.empty /etc/bind/db.dominio

3º) Após entrar no arquivo db.dominio e realizar as devidas alterações de dominio, 
os tempos de refresh, retry, serial, expire, negative cache, os IP's aos domínios, serveiços, etc, após
configurar essa parte, realizar o teste do arquivo com o comando 
#named-checkzone + nomedomínio + arquivo db.xxxx;

4º) Adicionar um subdomínio e mudando o domínio raiz é simples, adicionando linhas mostrando
 qual o nome do subdomínio, assim como será o domínio com o subdomínio e apresentar o IP do
 mesmo, como pode ser mostrado abaixo:
domínio raiz:                                                       IN           NS          ns.principal.com.
                                                                          IN           A             192.168.4.1
                                                                                             
Para mudar o domínio RAIZ                       $ORIGIN exemplo.principal.com.
O nome que será do subdomínio:               qualquer             IN           A             192.168.4.1
(Apontando para outro IP dentro do servidor Raiz ou outro servidor)
Para retornar o domínio principal               $ORIGIN principal.com.

5º) Para delegar delegar domínios usando o registro de cola (glue) adicionar as linhas conforme abaixo:

#O domínio a delegar                                                  
exemplo2           IN           NS          ns.exemplo2.principal.com.
ns.exemplo2.principal.com. IN           A             192.168.4.1

6º) Colocando os nomes de HOSTS assim como os seus respectivos IP's, como mostrado abaixo:

;Hosts
ssh         IN           A             192.168.4.1
ns           IN           A             192.168.4.1      # Esse é um que não pode faltar pois é o 
                                                                         seu próprio DNS

7º) Para configurar o servidor de e-mail entrar no arquivo # vim db.principal.com e seguir
instruções abaixo:

domínio raiz:                      IN           NS          ns.principal.com.
                                         IN           A             192.168.4.1
                                         IN           MX 10    mail.principal.com.     #Esse será o servidor de 
e-mail com a prioridade de acesso 50 o principal, caso tenha outros podemos colocar 
uma prioridade maior ou menor dependendo de qual o servidor queira que seja o primeiro.

                                        ;servidor de e-mail
                                         mail       IN      A         192.168.4.2
                                         smtp      IN      CNAME             mail
                                         pop       IN      CNAME             mail
                                         imap      IN      CNAME             mail


8º) Configurando o servidor DNS e E-MAIL reverso, copiar o arquivo #cp db.127 db.192.168.4 
e editar o arquivo #vim db.192.168.4 conforme segue abaixo:
 ;
 ; BIND reverse data file for local loopback interface
 ;
 $TTL    604800
 @       IN      SOA     ns.principal.com.     admin.principal.com. (
                      2013043001         ; Serial
                          604800             ; Refresh
                           86400              ; Retry
                         2419200            ; Expire
                          604800 )           ; Negative Cache TTL
 ;
 @       IN      NS         ns.principal.com.
            IN      A           192.168.4.1
            IN      MX 10   mail.principal.com.
            IN      NS        dhcp.principal.com.

;Hosts
ns           IN           A             192.168.4.1         #Precisa ser criado para que possa 
                                                                            reconhecer o domínio principal;

;Servidor MAIL
mail      IN      A       192.168.4.2
smtp     IN      CNAME   mail
pop      IN      CNAME   mail
imap     IN      CNAME   mail

;Servidor DHCP

dhcp     IN      A       192.168.4.3


9º) Entrar no arquivo #vi /etc/dhcp/dhclient.conf e descomentar a linha vinte para poder
 realizar a consulta no IP local como segue abaixo

 prepend domain-name-servers 127.0.0.1;

salvar o arquivo e sair.

10º) Agora entrar no arquivo #vim named.conf, e  ajeitar o arquivo num geral e também 
adicionar nossas zonas conforme segue abaixo: o arquivo comentado:

  options {
          directory "/var/cache/bind";      #Esse diretório é o que vai indicar onde 
                                                           estão todos os arquivos de configuração do BIND;

          forwarders {                            #Essa parte é para realizar o 
                                                         direcionamento para o servidor venha ter conexão
                  10.3.63.253;                    externa no SENAI devido ao proxy, uma peculiaridade;
           };

          auth-nxdomain no;                   # conform to RFC1035
          listen-on-v6 { any; };
  };

  zone "." {
          type hint;
          file "/etc/bind/db.root";
  };

                                                              zone "localhost" {                       #Essa é a zona local do próprio 
                                                           servidor sendo 
                                                            assim é preciso ela estar presente;
          type master;                               #O tipo tem que ser master;
          file "/etc/bind/db.local";               #Deve-se ter o local do arquivo completo para 
                                                            a consulta dentro do arquivo corretamente;
  };

                                                               zone "127.in-addr.arpa" {            #Assim como temos a zona local é preciso
                                                             a local reversa sendo essa feita dessa maneira;
          type master;                                #O tipo tem que ser master;
          file "/etc/bind/db.127";                 #Deve-se ter o local do arquivo completo para 
                                                             a consulta dentro do arquivo corretamente;
  };

  zone "0.in-addr.arpa" {                         
         type master;                      
         file "/etc/bind/db.0";     
 };

  zone "255.in-addr.arpa" {                      #De igual forma temos o broadcaste de uma 
                                                               rede temos também para o DNS que se 
                                                               encontra no arquivo reverso;
          type master;                                   #Como é nossa rede temos que coloca-lo como
                                                                master e nã outro broadcast;
          file "/etc/bind/db.255";                   #De igual forma deve-se ter o local do 
                                                               arquivo completo para a consulta dentro do 
                                                               arquivo corretamente;
  };

 # Abaixo vamos adicionar as zonas do nosso servidor de DNS que foram criados
 anteriormente e testados no passo 2º e 3º;

  zone "principal.com" {                       #Nessa parte somente adicinar o domínio 
                                                               sem o "db" e sem o ponto no final;
          type master;                                  #Sendo ele o seu servidor principal a 
                                                               controlar o server ele deve ser o master;
          file "/etc/bind/db.principal.com";      #Colocar o caminho completo do arquivo
                                                               de zona do seu domínio que foi criado;
  };


  zone "4.168.192.in-addr.arpa" {         #Esse arquivo serve para resolver os nomes 
                                                            reversamente e deve-se colocar o IP reverso
                                                             sem o ultimo octeto como está;
          type master;                               #É preciso que ele seja o master para que 
                                                            possa acompanhar a consulta normal como
                                                            acima mencionado;
          file "/etc/bind/db.192.168.4";      #Caminho completo para realizar a consulta 
                                                            criando de igual forma o arquivo com o IP 
                                                            do servidor não incluindo o ultimo octeto.
  };

Após configurar o arquivo reiniciar o serviço DNS #rndc reload

Agora realizar o teste do arquivo named.conf com o comando #named-checkconf e named-checkzone;


=====================================
-== Criando uma ZONA slave (SECUNDÁRIA)  ==-
=====================================


11º) Para criar uma zona slave fazer entrar no arquivo #vim /etc/bind/named.conf e adicionar as
 linhas após a ultima zona criada como abaixo:

  zone "secundario.com" {                          #Adicionar o domínio ao qual será o slave;
          type slave;                                       #Colocar como o slave;
          file "bck.principal.com.br";               #Criar o documento bck.principal.com.br que 
                                                                 será criado dentro do #/var/cache/bind 
                                                                 onde tem o usuário bind tem permissão de escrita;
          masters { 192.89.200.1; };              #O IP do servidor ao qual o domínio acima 
                                                                 está configurado;
  };

12º) Vamos agora gerar o TSIG (uma espécie de certificado interno para interligar servidores), 
com o comando abaixo:
     # dnssec-keygen -a HMAC-MD5 -b 128 -n HOST key-name      #É o nome da sua chave.
     Ao rodar esse comando será criado dois arquivos com o segredo com os seguintes nomes 
Kkey-name.+157+11281.private e também Kkey-name.+157+11281.key (o ponto key é o 
que será utilizado) primeiramente renomear o arquivo para um nome para melhor compreensão 
como key-name.key entrar no arquivo que vai estar de forma semelhante o exemplo abaixo:

key-name. IN KEY 512 3 157 Di8Rx/7CiVZgh9AL8Nlc9w==

Após entrar no arquivo, edita-lo e deixar conforme abaixo:

 key " key-name " {
         algorithm hmac-md5;
        secret " Di8Rx/7CiVZgh9AL8Nlc9w==";
 };

13º) Agora com o arquivo devidamente alterado, entrar no named.conf e adicionar as linhas 
que estão destacadas conforme abaixo:
 zone "principal.com" {
         type master;
         file "/etc/bind/db.principal.com";
         allow-transfer { key key-name.key; };
 };
 zone "4.168.192.in-addr.arpa" {
         type master;
         file "/etc/bind/db.192.168.4";
         allow-transfer { key  key-name.key; };
 };


14º) Para concluir realizar os testes com os comandos   # named-checkconf  
  # named-checkzone + nomedomínio + arquivo db.xxxx, # cat /var/log/syslog 
(para ver o que foi rodado e se deu algum problema) se não de nenhum problema ok 
vamos a integração do BIND com o DHCP, esse será o nosso próximo assinto (postagem) 
o passo-a-passo do servidor DHCP.

Pessoal, muito obrigado por lerem meu blog assim acabamos a configuração 
de um servidor DNS, mais não as postagens, qualquer dúvida fique a vontade
para postar, dentro do possível estarei respondendo e também procurarei 
realizar postagem que interesse aos nossos leitores.


Dentro de alguns dias começaremos com o servidor DHCP.

Um comentário:

  1. Opa man, me manda um email valido ai para conversarmos. Não te identifiquei pelo nome :)

    ResponderExcluir