A atualização do dyndns nsupdate do BIND 9 fornece: “tsig verify failure (BADKEY)”

7

Eu vasculhei tantas páginas HOWTO no DDNS para tentar corrigir isso ... Eu estou perdido.

WorkstationX = CentOS 6.2 x64 ServerX = Ubuntu 12.04 LTS x64

Eu não entendo porque não está funcionando ... estou literalmente sem idéias. Eu regenerei e reconfigurei tudo várias vezes.

Eu me certifiquei:

  • Executando o NTPD em ambos os hosts, verifiquei se o NTP está funcionando
  • TZ está correto para ambos os nós (o hardware é UTC)
  • Eu segui estes guias:
    • linux.yyz.us/nsupdate /
    • agiletesting.blogspot.com.au/2012/03/dynamic-dns-updates-with-nsupdate-and.html
    • www.cheshirekow.com/wordpress/?p=457
    • www.erianna.com/nsupdate-dynamic-dns-updates-with-bind9
    • consultancy.edvoncken.net/index.php/HOWTO_Manage_Dynamic_DNS_with_nsupdate
    • blog.philippklaus.de/2013/01/updating-dns-entries-with-nsupdate-or-alternative-implementations-your-own-ddns /

Alguns deles têm formas variadas de gerar a chave, mas o resto é o mesmo ... e ainda assim, quando tento o nsupdate - mesmo no servidor onde o dnssec-keygen foi executado (e onde o bind é), recebo as mesmas entradas de log:

Aug 14 11:20:38 vps named[31247]: 14-Aug-2013 11:20:38.032 security: error: client 127.0.0.1#29403: view public: request has invalid signature: TSIG domain2.com.au.: tsig verify failure (BADKEY)

deste nsupdate:

nsupdate -k Kdomain2.com.au.+157+35454.key
server localhost
zone domain2.com.au.
update add test.domain2.com.au. 86400 IN A 10.20.30.40
show
send

O que eu entendo é o método gerado CORRETO:

dnssec-keygen -a HMAC-MD5 -b 512 -n HOST domain2.com.au.

named.conf (IPs foram alterados para privacidade):

acl ipv4                { 0.0.0.0/0; };
acl ipv6                { 2000::/3; ::1; fe80::/10; fec0::/10; };
acl safehosts           { 127.0.0.0/8; 3.2.2.40; 44.44.14.12; };

include "/etc/bind/rndc.key";

controls {
        inet * port 953
        allow { safehosts; } keys { "rndc-key"; };
};

options
{
        auth-nxdomain           yes;
        empty-zones-enable      no;
        zone-statistics         yes;
        dnssec-enable           yes;
        listen-on               { any; };
        listen-on-v6            { any; };
        directory               "/etc/bind/db";
        managed-keys-directory  "/etc/bind/keys";
        memstatistics-file      "/etc/bind/data/bind.memstats";
        statistics-file         "/etc/bind/data/bind.qstats";
};

logging
{
## CUT ##
};

view "public"
{
    recursion           yes;
    allow-query-cache   { safehosts; };
    allow-recursion     { safehosts; };

zone "." IN {
    type            hint;
    file            "root.zone";
};

zone "0.0.127.in-addr.arpa" {
    type            master;
    allow-update    { none; };
    allow-transfer  { none; };
    file            "0.0.127.in-addr.arpa.zone";
};

zone "localhost" {
    type            master;
    allow-update    { none; };
    allow-transfer  { none; };
    file            "localhost.zone";
};

zone "3.2.2.in-addr.arpa" {
    type            master;
    allow-update    { none; };
    allow-transfer  { none; };
    file            "3.2.2.in-addr.arpa.zone";
};

zone "domain1.com.au" {
    type            master;
    notify          yes;
    allow-update    { key "rndc-key"; };
    allow-transfer  { key "rndc-key"; };
    file            "domain1.com.au.zone";
};

zone "domain2.com.au" {
    type            master;
    notify          yes;
    allow-update    { key "rndc-key"; };
    allow-transfer  { key "rndc-key"; };
    file            "doomain2.com.au.zone";
};
};

/etc/bind/rndc.key:

key "rndc-key" {
    algorithm hmac-md5;
    secret "vZwCYBx4OAOsBrbdlooUfBaQx+kwEi2eLDXdr+JMs4ykrwXKQTtDSg/jp7eHnw39IehVLMtuVECTqfOwhXBm0A==";
};

Kdomain1.com.au. + 157 + 35454.private

Private-key-format: v1.3
Algorithm: 157 (HMAC_MD5)
Key: vZwCYBx4OAOsBrbdlooUfBaQx+kwEi2eLDXdr+JMs4ykrwXKQTtDSg/jp7eHnw39IehVLMtuVECTqfOwhXBm0A==
Bits: AAA=
Created: 20130814144733
Publish: 20130814144733
Activate: 20130814144733
    
por Litch 15.08.2013 / 04:43

2 respostas

3

nsupdate tem algumas peculiaridades e assume algumas convenções de nomenclatura quando chamado com -k . Na página man, acho que seu nome-chave pode, de alguma forma, ser chamado de domain2.com.au .

Você poderia tentar o seguinte?

nsupdate -y \
  'rndc-key:vZwCYBx4OAOsBrbdlooUfBaQx+kwEi2eLDXdr+JMs4ykrwXKQTtDSg/jp7eHnw39IehVLMtuVECTqfOwhXBm0A=='
    
por 15.08.2013 / 10:33
0

Você tem permissão para atualizar {key "rndc-key"; }; e não a chave que você gerou. Você deve ter uma declaração chave em algum lugar: key "ddns_key" { algorithm hmac-md5; secret "vZwCYBx4OAOsBrbdlooUfBaQx+kwEi2eLDXdr+JMs4ykrwXKQTtDSg/jp7eHnw39IehVLMtuVECTqfOwhXBm0A=="; }; . Você deve então adicionar o allow-update { key "ddns_key" };

    
por 15.08.2013 / 06:22