20.7. Transações de segurança

Transações seguras podem ser feitas com a ajuda de TSIGs (Transaction Signatures, Assinaturas de Transação), baseadas em chaves secretas compartilhadas (também chamadas de chaves TSIGs). Esta seção descreve como gerar e usar tais chaves.

Transações seguras são necessárias para a comunicação entre servidores diferentes e para a atualização dinâmica dos dados de zona. Tornar o controle de acesso dependente de chaves é muito mais seguro do que meramente confiar em endereços IP.

Gere uma chave TSIG com o seguinte comando (para obter detalhes, consulte man dnssec-keygen):

   dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2
  

Serão criados dois arquivos com nomes similares a:

Khost1-host2.+157+34265.private Khost1-host2.+157+34265.key
  

A chave (uma string como ejIkuCyyGJwwuN3xAteKgg==) é encontrada nos dois arquivos. Para usá-la em transações, o segundo arquivo (Khost1-host2.+157+34265.key) deve ser transferido para o host remoto, de preferência de forma segura (usando scp, por exemplo). No servidor remoto, a chave deve ser incluída no arquivo /etc/named.conf para permitir uma comunicação segura entre host1 e host2:

key host1-host2. {
 algorithm hmac-md5;
 secret ";ejIkuCyyGJwwuN3xAteKgg==;
};
[Warning]Permissões de arquivo de /etc/named.conf

Verifique se as permissões do arquivo /etc/named.conf foram restringidas adequadamente. O padrão para esse arquivo é 0640, com o proprietário sendo root e o grupo, named. Como alternativa, mova as chaves para um outro arquivo com permissões especialmente limitadas, que então será incluído de /etc/named.conf.

Para permitir que o servidor host1 use a chave para host2 (que tem o endereço 192.168.2.3 neste exemplo), o arquivo /etc/named.conf do servidor deve incluir a seguinte regra:

server 192.168.2.3 {
  keys { host1-host2. ;};
};

Entradas análogas devem ser incluídas nos arquivos de configuração de host2.

Adicione chaves TSIG a quaisquer ACLs (listas de controle de acesso, não confundir com as ACLs do sistema de arquivos) definidas por endereços IP e intervalos de endereço para possibilitar a segurança da transação. A entrada correspondente deve ter esta aparência:

allow-update { key host1-host2. ;};

Este tópico é discutido com mais detalhes no BIND Administrator Reference Manual (Manual de Referência do Administrador BIND), em update-policy.