<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<?xml-stylesheet href="docbook.xsl" type="text/xsl"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<book lang="pt_BR">
  <bookinfo>
    <title>Instalando um servidor BIND secundário</title>
    <authorgroup>
      <author>
        <firstname>Leonardo</firstname>
        <othername>Serra Maciel de</othername>
        <surname>Campos</surname>
        <affiliation>
          <address>
            <email>linuxbh@brfree.com.br</email>
          </address>
        </affiliation>
      </author>
    </authorgroup>
    <revhistory>
      <revision>
        <revnumber>0.1</revnumber>
        <date>2004-10-05 10:30:24 -0300</date>
        <authorinitials>Leonardo Serra Maciel de Campos</authorinitials>
      </revision>
      <revision>
        <revnumber>0.2</revnumber>
        <date>2004-10-05 11:38:31 -0300</date>
        <authorinitials>Leonardo Serra Maciel de Campos</authorinitials>
      </revision>
      <revision>
        <revnumber>0.3</revnumber>
        <date>2004-10-06 11:08:12 -0300</date>
        <authorinitials>Leonardo Serra Maciel de Campos</authorinitials>
      </revision>
    </revhistory>
    <copyright>
      <year>2004</year>
      <holder>Leonardo Serra Maciel de Campos</holder>
    </copyright>
    <legalnotice>
      <para>Este documento é licenciado sobre a licença de Atribuição-Compartilhamento da Creative Commons. Para ver uma cópia desta licença, visite <ulink url="http://creativecommons.org/licenses/by-sa/2.0/"/> ou envie uma carta para Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.</para>
    </legalnotice>
    <abstract>
      <para>Este documento visa ensinar como instalar e configurar um servidor BIND secundário.</para>
    </abstract>
  </bookinfo>
  <dedication>
    <para>Dedico este documento a todas as pessoas que realmente acreditam na filosofia do <glossterm baseform="Logicial">Logicial</glossterm> Livre.</para>
  </dedication>
  <chapter>
    <title>Introdução</title>
    <sect1>
      <title>O que é BIND?</title>
      <para>BIND (Berkeley Internet Name Domain) é uma implementação do protoloco DNS (Domain Name System).</para>
    </sect1>
    <sect1>
      <title>O que é DNS?</title>
      <para> O sistema de nomes de domínios, ou DNS, é uma parte fundamental da Internet. É responsável para traduzir nome dos endereços, distribuir o correio eletrônico a seu destino apropriado, e muitos outros serviços.</para>
    </sect1>
  </chapter>
  <chapter>
    <title>Ambiente</title>
    <para>Será presumido que o seu sistema <glossterm baseform="Debian GNU/Linux">Debian GNU/Linux</glossterm> e o aptitude estão corretamente configurados. Também é necessário que o seu servidor BIND primário esteja respondendo de forma correta o domínio <replaceable>exemplo.com.br</replaceable>.</para>
    <warning>
      <para>Todos os comandos deverão ser executados na máquina <replaceable>ns2.exemplo.com.br</replaceable> pelo usuário root, exceto quando informado!</para>
    </warning>
    <para>A tabelo abaixo mostra as versões de cada <glossterm baseform="Logicial">logicial</glossterm> usado.</para>
    <table>
      <title>Versão dos logiciais</title>
      <tgroup cols="2">
        <thead>
          <row>
            <entry>
              <glossterm baseform="Logicial">Logicial</glossterm>
            </entry>
            <entry>Versão</entry>
          </row>
        </thead>
        <tbody>
          <row>
            <entry>bind9</entry>
            <entry>9.2.4-1</entry>
          </row>
          <row>
            <entry>bind9-host</entry>
            <entry>9.2.4-1</entry>
          </row>
          <row>
            <entry>bind9-doc</entry>
            <entry>9.2.4-1</entry>
          </row>
        </tbody>
      </tgroup>
    </table>
    <para>A tabelo abaixo mostra as principais características do ambiente onde foi feito esta documentação.</para>
    <table>
      <title>Ambiente</title>
      <tgroup cols="2">
        <tbody>
          <row>
            <entry>Distribuição GNU/Linux</entry>
            <entry>Debian Sarge</entry>
          </row>
          <row>
            <entry>Endereço do servidor BIND primário</entry>
            <entry>
              <replaceable>ns1.exemplo.com.br</replaceable>
            </entry>
          </row>
          <row>
            <entry>Endereço IP do servidor BIND primário</entry>
            <entry>
              <replaceable>192.168.0.1</replaceable>
            </entry>
          </row>
          <row>
            <entry>Endereço do servidor BIND secundário</entry>
            <entry>
              <replaceable>ns2.exemplo.com.br</replaceable>
            </entry>
          </row>
          <row>
            <entry>Endereço IP do servidor BIND secundário</entry>
            <entry>
              <replaceable>192.168.0.2</replaceable>
            </entry>
          </row>
          <row>
            <entry>Nome do domínio</entry>
            <entry>
              <replaceable>exemplo.com.br</replaceable>
            </entry>
          </row>
          <row>
            <entry>Máscara de rede</entry>
            <entry>
              <replaceable>255.255.255.0</replaceable>
            </entry>
          </row>
          <row>
            <entry>Pasta para armazenamento das zonas</entry>
            <entry>
              <filename>
                <replaceable>/var/cache/bind</replaceable>
              </filename>
            </entry>
          </row>
          <row>
            <entry>Pasta para armazenamento das zonas primárias</entry>
            <entry>
              <filename>
                <replaceable>/var/cache/bind</replaceable><replaceable>/slave</replaceable>
              </filename>
            </entry>
          </row>

        </tbody>
      </tgroup>
    </table>
    <note>
      <para>Usaremos palavras <replaceable>desta maneira</replaceable> para indicar substituição.</para>
    </note>
  </chapter>
  <chapter>
    <title>Instalação</title>
    <orderedlist numeration="arabic">
      <listitem>
        <para>Execute o seguinte comando para instalar o servidor BIND:</para>
        <screen><prompt>#</prompt> <userinput>aptitude install bind9 bind9-host bind9-doc</userinput></screen>
      </listitem>
    </orderedlist>
  </chapter>
  <chapter>
    <title>Configuração</title>
    <orderedlist numeration="arabic">
      <listitem>
        <para>As etapas abaixo devem ser executadas na máquina <replaceable>ns1.exemplo.com.br</replaceable>.</para>
        <itemizedlist>
          <listitem>
            <para>Edite o arquivo <filename>/etc/bind/named.conf.local</filename>. No fim do arquivo existem as seguintes linhas:</para>
          <screen>
zone "<replaceable>exemplo.com.br</replaceable>" {
    type master;
    file "<filename><replaceable>exemplo.com.br</replaceable></filename>";
};

zone "0.168.192.in-addr.arpa" {
    type master;
    file "<filename><replaceable>192.168.0</replaceable></filename>";
};
</screen>
          <para>Acrescente a seguinte linha no fim das zonas <replaceable>exemplo.com.br</replaceable> e 0.168.192.in-addr.arpa:</para>
          <screen>    allow-transfer { <replaceable>192.168.0.2</replaceable>; };</screen>
          <para>Ao fim as zonas ficaram da seguinte maneira:</para>
          <screen>
zone "<replaceable>exemplo.com.br</replaceable>" {
    type master;
    file "<filename><replaceable>exemplo.com.br</replaceable></filename>";
    allow-transfer { <replaceable>192.168.0.2</replaceable>; };
};

zone "0.168.192.in-addr.arpa" {
    type master;
    file "<filename><replaceable>192.168.0</replaceable></filename>";
    allow-transfer { <replaceable>192.168.0.2</replaceable>; };
};
</screen>
          </listitem>
        <listitem>
          <para>Edite o arquivo <filename>/var/cache/bind/exemplo.com.br</filename>. No arquivo existem as seguintes linhas:</para>
          <screen>
$TTL       43200
@          IN      SOA     <replaceable>ns1.exemplo.com.br</replaceable>.      <replaceable>root.exemplo.com.br</replaceable>. (
            2004092700 ; Serial
            28800      ; Refresh
            14400      ; Retry
            3600000    ; Expire
            86400 )    ; Minimum
@          IN MX 5  <replaceable>correio.exemplo.com.br</replaceable>.
@          IN NS <replaceable>ns1.exemplo.com.br</replaceable>.
@          IN A  <replaceable>192.168.0.1</replaceable>
<replaceable>ns1</replaceable>        IN A  <replaceable>192.168.0.1</replaceable>
<replaceable>correio</replaceable>    IN A  <replaceable>192.168.0.3</replaceable>
</screen>
          <para>Acrescente as seguintes linhas:</para>
          <screen>
@          IN NS <replaceable>ns2.exemplo.com.br</replaceable>.
<replaceable>ns2</replaceable>        IN A  <replaceable>192.168.0.2</replaceable>
</screen>
          <para>Ao fim o arquivo ficará da seguinte maneira:</para>
          <screen>
$TTL       43200
@          IN      SOA     <replaceable>ns1.exemplo.com.br</replaceable>.      <replaceable>root.exemplo.com.br</replaceable>. (
            2004092700 ; Serial
            28800      ; Refresh
            14400      ; Retry
            3600000    ; Expire
            86400 )    ; Minimum
@          IN MX 5  <replaceable>correio.exemplo.com.br</replaceable>.
@          IN NS <replaceable>ns1.exemplo.com.br</replaceable>.
@          IN NS <replaceable>ns2.exemplo.com.br</replaceable>.
@          IN A  <replaceable>192.168.0.1</replaceable>
<replaceable>ns1</replaceable>        IN A  <replaceable>192.168.0.1</replaceable>
<replaceable>ns2</replaceable>        IN A  <replaceable>192.168.0.2</replaceable>
<replaceable>correio</replaceable>    IN A  <replaceable>192.168.0.3</replaceable>
</screen>
        </listitem>
        <listitem>
          <para>Edite o arquivo <filename>/var/cache/bind/192.168.0</filename>. No arquivo existem as seguintes linhas:</para>
           <screen>
$TTL       43200
@          IN      SOA     <replaceable>ns1.exemplo.com.br</replaceable>.      <replaceable>root.exemplo.com.br</replaceable>. (
            2004092700 ; Serial
            28800      ; Refresh
            14400      ; Retry
            3600000    ; Expire
            86400 )    ; Minimum
           IN NS    <replaceable>ns1.exemplo.com.br</replaceable>.
1          IN PTR   <replaceable>ns1.exemplo.com.br</replaceable>.
3          IN PTR   <replaceable>correio.exemplo.com.br</replaceable>.
</screen>
          <para>Acrescente as seguintes linhas:</para>
          <screen>
           IN NS    <replaceable>ns2.exemplo.com.br</replaceable>.
2          IN PTR   <replaceable>ns2.exemplo.com.br</replaceable>.
</screen>
          <para>Ao fim o arquivo ficará da seguinte maneira:</para>
          <screen>
$TTL       43200
@          IN      SOA     <replaceable>ns1.exemplo.com.br</replaceable>.      <replaceable>root.exemplo.com.br</replaceable>. (
            2004092700 ; Serial
            28800      ; Refresh
            14400      ; Retry
            3600000    ; Expire
            86400 )    ; Minimum
           IN NS    <replaceable>ns1.exemplo.com.br</replaceable>.
           IN NS    <replaceable>ns2.exemplo.com.br</replaceable>.
1          IN PTR   <replaceable>ns1.exemplo.com.br</replaceable>.
2          IN PTR   <replaceable>ns2.exemplo.com.br</replaceable>.
3          IN PTR   <replaceable>correio.exemplo.com.br</replaceable>.
</screen>
          </listitem>
          <listitem>
            <para>É necessário recarregar os arquivos de configuração do servidor BIND primário. Para isto execute:</para>
            <screen><prompt>#</prompt> <userinput>rndc reload</userinput></screen>
            <warning>
              <para>É altamente recomendado configurar o servidor BIND para somente aceitar comandos para administração através do rndc utilizando assinatura digital!</para>
            </warning>
          </listitem>
        </itemizedlist>
      </listitem>
      <listitem>
        <para>Edite o arquivo <filename>/etc/bind/named.conf.local</filename>. Acrescente ao fim as seguintes linhas:</para>
        <screen>
zone "<replaceable>exemplo.com.br</replaceable>" {
    type slave;
    file "<filename>slave/<replaceable>exemplo.com.br</replaceable></filename>";
    masters { <replaceable>192.168.0.1</replaceable>; };
};

zone "0.168.192.in-addr.arpa" {
    type slave;
    file "<filename>slave/<replaceable>192.168.0</replaceable></filename>";
    masters { <replaceable>192.168.0.1</replaceable>; };
};
</screen>
        <note>
          <para>Não será abordado como calcular o mapa de DNS reverso, para saber mais informações sobre visite <ulink href="http://www.zytrax.com/books/dns/ch3/"/>.</para>
        </note>
      </listitem>     
      <listitem>
        <para>É necessário que apenas o usuário root possa ler e gravar os arquivos de configuração e que apenas os usuários do grupo bind possam ler estes arquivos. Para isto execute:</para>
        <screen>
<prompt>#</prompt> <userinput>chown -R root:bind /etc/bind</userinput>
<prompt>#</prompt> <userinput>chmod 640 /etc/bind/*</userinput>
</screen>
      </listitem>
      <listitem>
        <para>É necessário criar a pasta onde será armazenada as zonas primárias. Para isto execute:</para>
        <screen><prompt>#</prompt> <userinput>mkdir <replaceable>/var/cache/bind</replaceable><replaceable>/slave</replaceable></userinput></screen>
      </listitem>
      <listitem>
        <para>É necessário que apenas o usuário bind possa ler e gravar arquivos na pasta para armazenamento das zonas primárias. Para isto execute:</para>
        <screen>
<prompt>#</prompt> <userinput>chown bind:bind <replaceable>/var/cache/bind</replaceable><replaceable>/slave</replaceable></userinput>
<prompt>#</prompt> <userinput>chmod 700 <replaceable>/var/cache/bind</replaceable><replaceable>/slave</replaceable></userinput>
</screen>
      </listitem>
      <listitem>
        <para>É necessário recarregar os arquivos de configuração e as novas zonas do servidor BIND secundário. Para isto execute:</para>
        <screen><prompt>#</prompt> <userinput>rndc reconfig</userinput></screen>
        <warning>
          <para>É altamente recomendado configurar o servidor BIND para somente aceitar comandos para administração através do rndc utilizando assinatura digital!</para>
        </warning>
      </listitem>
    </orderedlist>
  </chapter>
  <chapter>
    <title>Comandos úteis</title>
    <itemizedlist>
      <listitem>
        <para>Para recarregar os arquivos de configuração e as novas zonas do servidor BIND execute:</para>
        <screen><prompt>#</prompt> <userinput>rndc reconfig</userinput></screen>
      </listitem>
      <listitem>
        <para>Para recarregar os arquivos de configuração e as zonas do servidor BIND execute:</para>
        <screen><prompt>#</prompt> <userinput>rndc reload</userinput></screen>
      </listitem>
      <listitem>
        <para>Para visualizar o estado do servidor BIND execute:</para>
        <screen><prompt>#</prompt> <userinput>rndc status</userinput></screen>
      </listitem>
    </itemizedlist>
  </chapter>
  <chapter>
    <title>Apêndice</title>
    <sect1>
      <title>Bibliografia</title>
      <para>Os seguintes sítios foram usados como base para a criação desta documentação</para>
      <itemizedlist>
        <listitem>
          <para>
            <ulink url="http://www.bind9.net/Bv9ARM.html">BIND 9 Administrator Reference Manual</ulink>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.bind9.net/"/>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.zytrax.com/books/dns/"/>
          </para>
        </listitem>
        <listitem>
          <para>
            <ulink url="http://www.rnp.br/newsgen/0105/bind9.html"/>
          </para>
        </listitem>
      </itemizedlist>
    </sect1>
    <sect1>
      <title>Glossário</title>
      <glosslist>
        <glossentry>
          <glossterm>Debian GNU/Linux</glossterm>
          <glossdef>
            <para>O <ulink url="http://www.debian.org">Debian</ulink> é um sistema operacional (SO) livre para seu computador. Um sistema operacional é um conjunto de programas básicos e utilitários que fazem seu computador funcionar. O Debian usa o kernel (núcleo de um sistema operacional), <ulink url="http://www.kernel.org">Linux</ulink>, mas a maior parte das ferramentas do SO vêm do projeto <ulink url="http://www.gnu.org">GNU</ulink>; daí o nome GNU/Linux.</para>
          </glossdef>
        </glossentry>
        <glossentry>
          <glossterm>Logicial</glossterm>
          <glossdef>
            <para>Conjunto de instruções lógicas. Na informática designa um conjunto de instruções lógicas e suas dependências, também conhecido como programa ou sistema de computador.</para>
            <para>Esta palavra é pouco usada no Brasil, onde se usa muito a expressão "Software".</para>
            <para>Origem: <ulink url="http://pt.wikipedia.org/wiki/Logicial">Wikipédia, a enciclopédia livre.</ulink></para>
          </glossdef>
        </glossentry>
      </glosslist>
    </sect1>
  </chapter>
</book>
