Você está na página 1de 6

Introdução

Antes vou explicar o que é um servidor DNS (Domain Name Server). 

Um servidor DNS é responsável em responder pelo(s) domínio(s) e direcionar tudo que é


relacionado a ele, nele por exemplo você vai apontar onde fica o www.dominio.com.br, vai
apontar também quais são os servidores de entrada de email e por aí vai... 

Ele também possui outras utilidades, como por exemplo em uma rede interna, com ele
configurado em um servidor de sua rede, você não precisará informar o servidor DNS do seu
provedor, basta somente apontá-lo para ele e até fazer com que sua empresa toda responda por
hosts, por exemplo: maquina-1.dominio.com.br, maquina-2.dominio.com.br. 

Bem, vamos ao que interessa... 

Baixando e instalando o BIND

Vou deixar bem claro que sempre uso oSlackware como servidor, acredito que em outras versões
não mude muita coisa, portanto meu artigo vai ser todo baseado no Slackware. 

O programa que vamos usar para o usar como server é o BIND, por padrão ele já vem instalado
no Slack, mas vou começar desde o início. 

Outra coisa muito importante é que você deve SEMPRE usar a última versão do BIND, por
questões de segurança. 

Procure em www.linuxpackages.net o pacote mais recente do Bind. Na presente data a mais


recente é a 9.3.0 e a URL é essa: 

http://opensys.linuxpackages.net/.../bind-9.3.0-i486-1jim.tgz 

Após baixar o pacote você deve entrar no diretório que o arquivo está e dar o seguinte comando: 

# installpkg bind-9.3.0-i486-1jim.tgz 
Configurando o BIND

Após ter instalado é hora de configurar um domínio (meudominio.com.br) no seu server para a
brincadeira começar a funcionar, para isso temos que criar alguns arquivos. 

O primeiro deles é o /etc/named.conf, caso esse arquivo já exista, faça um backup dele e crie um
novo com o conteúdo abaixo. 

options {
        directory "/var/named";
        /*
         * 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;

        transfer-format many-answers;

};

controls {
        inet * port 953 allow { 127.0.0.1; }; // Para usar o rndc apenas em localhost
};

//
// a caching only nameserver config
//
zone "." IN {
        type hint;
        file "caching-example/named.ca";
};

zone "localhost" IN {
        type master;
        file "caching-example/localhost.zone";
        allow-update { none; };
};

zone "meudominio.com.br" IN {
        type master;
        file "meudominio.com.br.domain";
        allow-update { none; };
};

Agora vamos criar o /var/named/caching-example/named.ca. Se os diretórios não existirem, por


favor os crie: 

;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  <file>"
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC registration services
;       under anonymous FTP as
;           file                domain/named.root
;           on server           FTP.RS.INTERNIC.NET
;       -OR- under Gopher at    RS.INTERNIC.NET
;           under menu          InterNIC Registration Services (NSI)
;              submenu          InterNIC Registration Archives
;           file                named.root
;
;       last update:    Aug 22, 1997
;       related version of root zone:   1997082200

;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
;
; formerly NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     128.9.0.107
;
; formerly C.PSI.NET
;
.                        3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
;
; formerly TERP.UMD.EDU
;
.                        3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
;
; formerly NS.NASA.GOV
;
.                        3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
;
; formerly NS.ISC.ORG
;
.                        3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
.                        3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
.                        3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
;
; formerly NIC.NORDU.NET
;
.                        3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
.                        3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
.                        3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129
;
; temporarily housed at ISI (IANA)
;
.                        3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12
;
; housed in Japan, operated by WIDE
;
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
; End of File

Agora vamos criar o /var/named/caching-example/localhost.zone. Se os diretórios não existirem


por favor os crie: 

$TTL    86400
$ORIGIN localhost.
@          1D IN SOA       @ root (
                 42              ; serial (d. adams)
                 3H              ; refresh
                 15M             ; retry
                 1W              ; expiry
                 1D )            ; minimum

         1D IN NS        @
         1D IN A         127.0.0.1

Vamos criar o arquivo referente ao seu domínio /var/named/meudominio.com.br.domain: 

$TTL    86400
; Authoritative data for meudominio.com.br
;
@                IN       SOA localhost. root.meudominio.com.br. (
                                2004102897      ; Serial (yymmddxx)
                                10800           ; Refresh 3 hours
                                3600            ; Retry   1 hour
                                36000           ; Expire  10 hours
                                86400 )         ; Minimum 24 hours
                 IN       NS            ns1.meudominio.com.br.
                 IN       NS            ns2.meudominio.com.br.

;
;Recebimento de mensagens de mail
;

meudominio.com.br.        IN      MX      0       mx
meudominio.com.br.        IN      MX     10       mx

;
; Hosts
;

localhost     IN       A             127.0.0.1


              IN       HINFO         INTEL/110       LINUX
www           IN       A             200.162.73.7   ; o ip da sua maquina
ns1           IN       A             200.162.73.7   ; o ip da sua maquina
ns2           IN       A             200.162.73.7   ; o ip da sua maquina
maquina-1     IN       A             192.168.69.12 ; ip qualquer da rede
maquina-2     IN       A             192.168.69.13 ; ip qualquer da rede

Caso você não tenha o arquivo /etc/rc.d/rc.bindcrie-o com o seguinte conteúdo: 

#!/bin/sh
# Start/stop/restart the BIND name server daemon (named).

# Start bind. In the past it was more secure to run BIND


# as a non-root user (for example, with '-u daemon'), but
# the modern version of BIND knows how uses to use the
# kernel's capability mechanism to drop all root privileges
# except the ability to bind() to a privileged port and set
# process resource limits, so -u should not be needed. If
# you wish to use it anyway, chown the /var/run/named
# directory to the non-root user.
#
# You might also consider running BIND in a "chroot jail",
# a discussion of which may be found in
# /usr/doc/Linux-HOWTOs/Chroot-BIND-HOWTO.

bind_start() {
  if [ -x /usr/sbin/named ]; then
    echo "Starting BIND:  /usr/sbin/named"
    /usr/sbin/named
  fi
}

# Stop bind:
bind_stop() {
  killall named
}

# Restart bind:
bind_restart() {
  bind_stop
  sleep 1
  bind_start
}

case "$1" in
'start')
  bind_start
  ;;
'stop')
  bind_stop
  ;;
'restart')
;;
*)
  echo "usage $0 start|stop|restart"
esac

Depois de salvo o arquivo com o conteúdo acima e dê permissão ao arquivo: 

# chmod +x /etc/rc.d/rc.bind 

Para iniciar o BIND basta digitar o seguinte comando: 

# /etc/rc.d/rc.bind start 

Iniciando o BIND automaticamente

Vamos agora colocar o nossa brincadeira para funcionar na hora que a máquina iniciar. Existem
várias formas, todos sabem, mas vou explicar a mais simples usando o nosso bom e
velho/etc/rc.d/rc.local. 

Coloque a linha abaixo dentro do/etc/rc.d/rc.local: 

/etc/rc.d/rc.bind start
Configurando seu servidor

Após tudo feito vamos colocar o nosso servidor para usar o seu próprio DNS para navegar. 

Edite o arquivo /etc/resolv.conf e coloque o seguinte conteudo: 

search meudominio.com.br
nameserver 192.168.69.11

OBS: altere o 192.168.69.11 para o seu IP.

Testando o seu servidor DNS

Depois de tudo pronto e configurado vamos testar. 

Por via das dúvidas, dê um boot na sua máquina só pra ver se está tudo iniciando direitinho, não
custa nada né? 

Vamos pingar o UOL: 

$ ping www.uol.com.br 

Se a resposta for parecida com essa é por que esta funcionando perfeitamente: 

PING www.uol.com.br (200.221.2.45) 56(84) bytes of data.


64 bytes from hugo.uol.com.br (200.221.2.45): icmp_seq=1 ttl=123 time=13.9 ms
64 bytes from hugo.uol.com.br (200.221.2.45): icmp_seq=2 ttl=123 time=18.4 ms

--- www.uol.com.br ping statistics ---


2 packets transmitted, 2 received, 0% packet loss, time 1008ms
rtt min/avg/max/mdev = 13.917/16.165/18.413/2.248 ms 

Vamos pingar o www.meudominio.com.br, por que está apontando para sua máquina: 

$ ping www.meudominio.com.br 

Se a resposta for parecida com essa, está funcionando também: 

PING www.meudominio.com.br (200.162.73.7) 56(84) bytes of data.


64 bytes from 200.162.73.7: icmp_seq=1 ttl=64 time=0.046 ms
64 bytes from 200.162.73.7: icmp_seq=2 ttl=64 time=0.041 ms

--- www.markeweb.com.br ping statistics ---


2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.041/0.043/0.046/0.007 ms 

PRONTO! 

Se você chegou até aqui sem enfrentar problemas é por que seu server está funcionando
perfeitamente. Caso contrário veja novamente todos os passos anteriores ou entre em contato
comigo, terei um grande prazer em ajudar os usuários do VOL. 

Você também pode gostar