Rndc utilizando assinatura digital para acessar o servidor BIND

Leonardo Serra Maciel de Campos


            
          

Este documento é licenciado sobre a licença de Atribuição-Compartilhamento da Creative Commons. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-sa/2.0/ ou envie uma carta para Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Histórico de Revisões
Revisão 0.1 2004-09-27 22:20:45 -0300 Leonardo Serra Maciel de Campos
Revisão 0.2 2004-09-27 23:06:18 -0300 Leonardo Serra Maciel de Campos
Revisão 0.3 2004-09-27 11:46:21 -0300 Leonardo Serra Maciel de Campos
Revisão 0.4 2005-01-12 20:41:02 -0300 Leonardo Serra Maciel de Campos

Resumo

Este documento visa ensinar como configurar o utilitário rndc para usar assinatura digital durante a conexão com o servidor BIND.


Índice

1. Introdução
1.1. O que é rndc?
1.2. O que é BIND?
1.3. O que é DNS?
2. Ambiente
3. Instalação
4. Configuração
5. Comandos úteis
6. Apêndice
6.1. Bibliografia
6.2. Glossário

1. Introdução

1.1. O que é rndc?

O rndc é um utilitário que controla as operações do servidor BIND. O rndc comunica com o servidor BIND através de uma conexão TCP, opcionalmente enviando os comandos autenticados com assinatura digital.

1.2. O que é BIND?

BIND (Berkeley Internet Name Domain) é uma implementação do protoloco DNS (Domain Name System).

1.3. O que é DNS?

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.

2. Ambiente

Será presumido que o seu sistema Debian GNU/Linux e o aptitude estão corretamente configurados.

Atenção

Todos os comandos deverão ser executados pelo usuário root!

A tabelo abaixo mostra as versões de cada logicial usado.

Tabela 1. Versão dos logiciais

Logicial Versão
bind9 9.2.4-1

A tabelo abaixo mostra as principais características do ambiente onde foi feito esta documentação.

Tabela 2. Ambiente

Distribuição GNU/Linux Debian Sarge

Nota

Usaremos palavras desta maneira para indicar substituição.

3. Instalação

Atenção

O servidor BIND já deve estar instalado, configurado e sendo executado de maneira correta!

4. Configuração

  1. É necessário parar o servidor BIND, para isto execute:

    # invoke-rc.d bind9 stop

    Atenção

    É necessário parar o servidor BIND pois não é possivel utilizar o utilitario rndc para recarregar as configurações do servidor BIND, pois estaremos configurando o utilitario rndc e o servidor BIND para somente aceitar e realizar acesso através da assinatura digital.

  2. Precisamos criar o arquivo /etc/bind/rndc.conf onde será armazenada a assinatura digital gerada aleatoriamente, para isto execute:

    # rndc-confgen -a -c /etc/bind/rndc.conf -k rndc-key -b 256

    Nota

    • A opção -k é o nome da assinatura digital que será gerada. O padrão é rndc-key. É altamente recomendado alterar o nome da assinatura digital quando você quiser utilizar o rndc para acessar um servidor BIND em outra máquina.

    • A opção -b é o tamanho da assinatura digital que será gerada, em bits. Por padrão , o tamanho da assinatura digital é 128 bits, entretando o tamanho pode variar de 1 até 512 bits. É recomendado que se utilize assinaturas digitais maiores que 256 bits se o servidor BIND for usado fora da rede local.

  3. Edite o arquivo /etc/bind/rndc.conf.

    • O arquivo estará parecido com o conteúdo abaixo:

      key "rndc-key" {
              algorithm hmac-md5;
              secret "v0pp2yXAw7VIDEAy4G2HucjQrauIF7mqoNc4br9/pzc=";
      };
      

      Nota

      O que está no parâmetro secret é a assinatura digital gerada aleatoriamente pelo comando rndc-config, mais abaixo precisaremos colocar ela nas configurações do servidor BIND.

    • Acrescente ao fim as seguintes linhas:

      options {
          default-key "rndc-key";
          default-server 127.0.0.1;
      };
      
  4. Edite o arquivo /etc/bind/named.conf.options. Acrescente ao seu fim o seguinte:

    key "rndc-key" {
        algorithm hmac-md5;
        secret "v0pp2yXAw7VIDEAy4G2HucjQrauIF7mqoNc4br9/pzc=";
    };
    
    controls {
        inet * allow { 127.0.0.1; } keys { "rndc-key"; };
    }; 
    

    Atenção

    Não esqueça de colocar no parâmetro secret a assinatura digital gerada aleatoriamente pelo comando rndc-config que foi gravada no arquivo /etc/bind/rndc.conf.

  5. É necessário que apenas o usuário root possa ler e gravar o arquivo de configuração e que apenas os usuários do grupo bind possam ler estes arquivos. Para isto execute:

    # chown root:bind /etc/bind/rndc.conf
    # chmod 640 /etc/bind/rndc.conf
    
  6. É necessário iniciar o servidor BIND, para isto execute:

    # invoke-rc.d bind9 start

5. Comandos úteis

  • Para recarregar os arquivos de configuração e as zonas do servidor BIND execute:

    # rndc reload
  • Para visualizar o estado do servidor BIND execute:

    # rndc status

6. Apêndice

6.1. Bibliografia

Os seguintes sítios foram usados como base para a criação desta documentação

6.2. Glossário

Debian GNU/Linux

O Debian é 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), Linux, mas a maior parte das ferramentas do SO vêm do projeto GNU; daí o nome GNU/Linux.

Logicial

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.

Esta palavra é pouco usada no Brasil, onde se usa muito a expressão "Software".

Origem: Wikipédia, a enciclopédia livre.