Estou executando um BIND 9.9.5-9 + deb8u8-Debian autoritativo no Debian Jessie.
Eu tenho uma zona de trabalho para robin.info
que funciona corretamente (vários testes relatam sucesso, como o da ferramenta de verificação DNS do pingdom.com)
Estou tentando protegê-lo com o dnssec. Estou seguindo as instruções fornecidas no Guia BIND DNSSEC , capítulo 4, com fácil acesso . Gerei um ZSK e KSK com sucesso e atualizei minha zona adicionando as linhas em negrito:
zone "robin.info" {
type master;
file "/etc/bind/zones/robin.info";
include "/etc/bind/include-zones/acls";
key-directory "/etc/bind/dnssec/robin.info/2016";
inline-signing yes;
auto-dnssec maintain;
};
Assegurei-me de que nenhum arquivo .jnl
, .jbk
, .signed
e .signed.jnl
estivesse presente no arquivo de zona, reiniciei a ligação com rndc reload
e confirmei que a região foi carregada e tinha entradas DNSKEY, embora eu tenha tido alguns erros no log:
11-Dec-2016 13:54:20.742 zone robin.info/IN/internal (signed): loaded serial 2016121111
11-Dec-2016 13:54:20.742 zone robin.info/IN/external (signed): loaded serial 2016121111
11-Dec-2016 13:54:20.750 zone robin.info/IN/external (signed): receive_secure_serial: unchanged
11-Dec-2016 13:54:20.750 zone robin.info/IN/external (signed): reconfiguring zone keys
11-Dec-2016 13:54:20.766 zone robin.info/IN/external (signed): next key event: 11-Dec-2016 14:54:20.750
11-Dec-2016 13:54:20.796 zone robin.info/IN/internal (signed): receive_secure_serial: unchanged
11-Dec-2016 13:54:20.796 zone robin.info/IN/internal (signed): reconfiguring zone keys
11-Dec-2016 13:54:20.805 malformed transaction: /etc/bind/zones/robin.info.signed.jnl last serial 2016121113 != transaction first serial 2016121111
11-Dec-2016 13:54:20.805 zone robin.info/IN/internal (signed): zone_rekey:dns_journal_write_transaction -> unexpected error
Estes erros de série parecem causar problemas na linha quando eu quero atualizar minha zona. Faço alterações na zona não assinada /etc/bind/zones/robin.info
e aumento minha série para 2016121121
11-Dec-2016 13:57:58.658 zone robin.info/IN/internal (signed): serial 2016121121 (unsigned 2016121121)
11-Dec-2016 13:57:58.658 zone robin.info/IN/internal (signed): could not get zone keys for secure dynamic update
11-Dec-2016 13:57:58.658 zone robin.info/IN/internal (signed): receive_secure_serial: not found
11-Dec-2016 13:57:58.659 malformed transaction: /etc/bind/zones/robin.info.jnl last serial 2016121121 != transaction first serial 2016121111
11-Dec-2016 13:57:58.659 zone robin.info/IN/external (unsigned): not loaded due to errors.
11-Dec-2016 13:57:58.659 all zones loaded
11-Dec-2016 13:57:58.659 running
11-Dec-2016 13:57:58.661 zone robin.info/IN/internal (signed): reconfiguring zone keys
11-Dec-2016 13:57:58.670 malformed transaction: /etc/bind/zones/robin.info.signed.jnl last serial 2016121115 != transaction first serial 2016121111
11-Dec-2016 13:57:58.670 zone robin.info/IN/internal (signed): zone_rekey:dns_journal_write_transaction -> unexpected error
11-Dec-2016 13:57:58.670 zone robin.info/IN/external (signed): reconfiguring zone keys
11-Dec-2016 13:57:58.671 zone robin.info/IN/external (signed): next key event: 11-Dec-2016 14:57:58.670
Posso confirmar com dig
que minha zona antiga ainda está carregada (da SOA e das alterações que não estão visíveis).
Existem várias mensagens de erro aqui:
1) Sugerindo que estou tendo problemas com as chaves ("não foi possível obter chaves de zona para atualização dinâmica segura"). No entanto, o bind não teve problemas com isso no primeiro carregamento, e meus arquivos de chave podem ser lidos pela ligação (o nome é executado como usuário bind
, que é membro do grupo bind
):
xavier@dent:/etc/bind/zones$ ls -l /etc/bind/dnssec/robin.info/2016
total 17k
-rw-r--r-- 1 root bind 603 Dec 10 17:23 Krobin.info.+008+43324.key
-rw-r----- 1 root bind 1.8k Dec 10 17:23 Krobin.info.+008+43324.private
-rw-r--r-- 1 root bind 604 Dec 10 17:22 Krobin.info.+008+44679.key
-rw-r----- 1 root bind 1.8k Dec 10 17:22 Krobin.info.+008+44679.private
2) Sugerindo um erro com as séries (o erro inicial foi last serial 2016121113 != transaction first serial 2016121111
). No entanto, achei que não precisava me preocupar muito com os seriados, já que no KB do ISC eu posso ler isso:
Note that the serial number in this response is not the same as the
one in the file example.com.db. Named keeps track of the serial
number of the signed version of the zone independently of the unsigned
version. If the unsigned zone is updated with a new serial number
that's higher than the one in the signed copy, then the signed copy
will be increased to match it, but otherwise the two are kept
separate.[1]
Até agora, a única maneira encontrada para atualizar a zona é parar a ligação, excluir os arquivos .jnl
, .jbk
, .signed
e .signed.jnl
e iniciar a ligação novamente. Isso parece errado, e eu preciso ter certeza de aumentar a serial o suficiente para ativar a nova zona.
O que estou fazendo de errado e como posso consertar meu dnssec?