Não é possível replicar os dados da zona DNS do mestre na LAN para o escravo atrás do firewall em uma DMZ

2

Aqui estão algumas informações sobre minha configuração. Eu tenho um servidor DNS mestre na minha sub-rede LAN em execução em uma caixa do Ubuntu 16.04. Além disso, tenho alguns servidores DNS escravos nas minhas várias outras sub-redes (sub-rede DMZ, sub-rede de serviço, etc.). Todos os servidores escravos DNS executam diferentes tipos de Linux.

Como meu servidor DNS mestre deve conhecer várias sub-redes diferentes, ele é configurado como split DNS / split horizon.

Meu firewall define três zonas: LAN, WAN e DMZ. Por razões de segurança, nenhuma conexão de DMZ para LAN pode ser iniciada. A conexão deve ser iniciada a partir da sub-rede da LAN. Tal é por política e não quero alterá-lo.

Informações técnicas sobre servidores relevantes:

Master DNS on my LAN subnet:
OS: Ubuntu 16.04
Hostname: master.lan.mydomain.dk
IP: 192.168.1.4 255.255.255.0

Slave DNS on DMZ subnet:
OS: Debian 9
Hostname: tools.dmz.mydomain.dk
IP: 172.16.1.4 255.255.255.0

Imediatamente, minha configuração do split horizon funciona bem no meu servidor mestre. Mas eu não posso replicar entre o servidor mestre e escravo. Não há transferência de arquivos de zona.

Aqui estão os arquivos de configuração relevantes:

named.conf do servidor DNS mestre:

key "rndc-key" {
    algorithm hmac-md5;
    secret "w26wwSa7rJB04IsuW99kGQ==";
};

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

include "/etc/bind/named.conf.logging";
include "/etc/bind/named.conf.keys";
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";

named.conf.keys do servidor DNS mestre:

As principais definições são colocadas em um arquivo separado, para que possam ser facilmente atualizadas via rsync.

key lan-key {
    algorithm HMAC-MD5;
    secret AaEjmxhg3WT2; 
};

key dmz-key {
    algorithm HMAC-MD5;
    secret BEhp4DeLnX4u;
};

key service-key {
    algorithm HMAC-MD5;
    secret 7rP4CN3Km2QT;
};

key management-key {
    algorithm HMAC-MD5;
    secret gNsRz2H7AxLH;
};

key update-key {
    algorithm HMAC-MD5;
    secret B88bqW33Fuap;
};

named.conf.local do servidor DNS mestre:

//
// Do any local configuration here
//
// Keys are defined in /etc/bind/named.conf.keys
//

acl lan-subnet {
    !key dmz-key;
    !key service-key;
    !key management-key;
    key lan-key;
    127.0.0.0/8;
    192.168.1.0/24;
};

acl dmz-subnet {
    !key lan-key;
    !key service-key;
    !key management-key;
    key dmz-key;
    172.16.1.0/24;
};

acl service-subnet {
    !key lan-key;
    !key dmz-key;
    !key management-key;
    key service-key;
    192.168.128.0/24;
};

acl management-subnet {
    !key lan-key;
    !key dmz-key;
    !key service-key;
    key management-key;
    10.21.12.0/24;
};

view "internal" {
    match-clients { lan-subnet; };
    allow-recursion { any; };
    allow-transfer { key lan-key; };
    allow-update { key update-key; };

    // prime the server with knowledge of the root servers
    zone "." {
        type hint;
        file "/etc/bind/db.root";
    };

// be authoritative for the localhost forward and reverse zones, and for
    // broadcast zones as per RFC 1912
    zone "localhost" {
        type master;
        file "/etc/bind/db.local";
    };
    zone "127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
    };
    zone "0.in-addr.arpa" {
        type master;
        file "/etc/bind/db.0";
    };
    zone "255.in-addr.arpa" {
        type master;
        file "/etc/bind/db.255";
    };

    zone "lan.mydomain.dk" {
        type master;
        file "/etc/bind/internals/db.lan.mydomain.dk"; # zone file path
        also-notify { 192.168.1.5 key lan-key; };
        notify yes;
    };
    zone "1.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/internals/db.192.168.1-rev";
        also-notify { 192.168.1.5 key lan-key; };
        notify yes;
    };

    zone "dmz.mydomain.dk" {
        type master;
        file "/etc/bind/internals/db.dmz.mydomain.dk"; # zone file path
        also-notify {
            192.168.1.5 key lan-key;
            172.16.1.4 key dmz-key;
            172.16.1.5 key dmz-key;
            127.0.0.1 key dmz-key;
        };
        notify yes;
    };
    zone "1.16.172.in-addr.arpa" {
        type master;
        file "/etc/bind/internals/db.172.16.1-rev";
        also-notify {
            192.168.1.5 key lan-key;
            172.16.1.4 key dmz-key;
            172.16.1.5 key dmz-key;
            127.0.0.1 key dmz-key;
        };
        notify yes;
    };

zone "service.mydomain.dk" {
        type master;
        file "/etc/bind/internals/db.service.mydomain.dk"; # zone file path
        also-notify {
            192.168.1.5 key lan-key;
            192.168.1.10 key service-key;
            192.168.1.11 key service-key;
            127.0.0.1 key service-key;
        };
        notify yes;
    };
    zone "128.168.192.in-addr.arpa" {
        type master;
        file "/etc/bind/internals/db.192.168.128-rev";
        also-notify {
            192.168.1.5 key lan-key;
            192.168.1.10 key service-key;
            192.168.1.11 key service-key;
            127.0.0.1 key service-key;
        };
        notify yes;
    };

    zone "management.mydomain.dk" {
        type master;
        file "/etc/bind/internals/db.management.mydomain.dk"; # zone file path
        also-notify {
            192.168.1.5 key lan-key;
            10.21.12.4 key management-key;
            127.0.0.1 key management-key;
        };
        notify yes;
    };
    zone "12.21.10.in-addr.arpa" {
        type master;
        file "/etc/bind/internals/db.10.21.12-rev";
        also-notify {
            192.168.1.5 key lan-key;
            10.21.12.4 key management-key;
            127.0.0.1 key management-key;
        };
        notify yes;
    };

};

view "externals" {
    match-clients { any; };
    allow-recursion { none; };
    allow-transfer { key dmz-key; };

    zone "dmz.mydomain.dk" {
        type slave;
        masters { 127.0.0.1 key lan-key; };
        file "/etc/bind/externals/db.dmz.mydomain.dk"; # zone file path
        also-notify { 192.168.1.5 key dmz-key; };
    };
    zone "1.16.172.in-addr.arpa" {
        type slave;
        masters { 127.0.0.1 key lan-key; };
        file "/etc/bind/externals/db.172.16.1-rev";
        also-notify { 192.168.1.5 key dmz-key; };
    };
};

view "services" {
    match-clients { service-subnet; };
    allow-recursion { none; };
    allow-transfer { key service-key; };

    zone "service.mydomain.dk" {
        type slave;
        masters { 127.0.0.1 key lan-key; };
        file "/etc/bind/services/db.service.mydomain.dk"; # zone file path
        also-notify { 192.168.1.5 key service-key; };
    };
    zone "128.168.192.in-addr.arpa" {
        type slave;
        masters { 127.0.0.1 key lan-key; };
        file "/etc/bind/services/db.192.168.128-rev";
        also-notify { 192.168.1.5 key service-key; };
    };
};

view "management" {
    match-clients { management-subnet; };
    allow-recursion { none; };
    allow-transfer { key management-key; };

    zone "management.mydomain.dk" {
        type slave;
        masters { 127.0.0.1 key lan-key; };
        file "/etc/bind/management/db.management.mydomain.dk"; # zone file path
        also-notify { 192.168.1.5 key management-key; };
    };
    zone "12.21.10.in-addr.arpa" {
        type slave;
        masters { 127.0.0.1 key lan-key; };
        file "/etc/bind/management/db.10.21.12-rev";
        also-notify { 192.168.1.5 key management-key; };
    };
};

db.dmz.mydomain.dk do servidor DNS mestre:

$TTL    604800
@       IN      SOA     ns1.dmz.mydomain.dk. root.lan.mydomain.dk. (
                     2018102001         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL

; name and mail servers - NS records
@   IN      NS      ns1.dmz.mydomain.dk.
    IN      NS      ns2.dmz.mydomain.dk.
    IN      MX      10 proxymail.dmz.mydomain.dk.
    IN      A       172.16.1.4

; name servers - A records
ns1.dmz.mydomain.dk.               IN      A       172.16.1.4
ns2.dmz.mydomain.dk.               IN      A       172.16.1.5

; 172.16.1.0/24 - A records
fwdmz.dmz.mydomain.dk.             IN      A       172.16.1.2
tools.dmz.mydomain.dk.             IN      A       172.16.1.4
x3690.vmhost.dmz.mydomain.dk.      IN      A       172.16.1.20
x3650.vmhost.dmz.mydomain.dk.      IN      A       172.16.1.21
wwwgate.dmz.mydomain.dk.           IN      A       172.16.1.30
proxymail.dmz.mydomain.dk.         IN      A       172.16.1.40

named.conf.local do servidor DNS escravo:

zone "dmz.mydomain.dk" {
    type slave;
    file "/etc/bind/slaves/db.dmz.mydomain.dk";
    masters { 172.16.1.1 key dmz-key; };
};

zone "1.16.172.in-addr.arpa" {
    type slave;
    file "/etc/bind/slaves/db.172.16.1-rev";
    masters { 172.16.1.1 key dmz-key; };
};

Como pode ser visto acima, defini o endereço IP mestre como 172.16.1.1, que é o endereço do gateway da sub-rede DMZ. O firewall converte qualquer endereço de LAN no endereço do gateway DMZ seguido por um número de porta aleatório. Portanto, não faz sentido colocá-lo no endereço IP da LAN do servidor master, que nunca é permitido passar pelo firewall.

On the slave server there is the following error message:
"zone dmz.mydomain.dk/IN: refused notify from non-master: 172.16.1.1#47161".

Então, eu posso entender porque a mensagem de erro vem porque eu só especifiquei que o servidor mestre é chamado 172.16.1.1 e não 172.16.1.1 # 47161. Então, como faço para que o Bind9 no servidor escravo aceite que não é apenas um endereço IP, mas um endereço IP e um número de porta aleatório?

Obrigado antecipadamente.

    
por Søren Sjøstrøm 21.10.2018 / 20:06

1 resposta

1

As transferências do DNS BIND usam pacotes maiores / pacotes TCP.

Seu problema pode ser devido a alterações no tamanho do pacote de DNS / DNS e / ou nos inspetores ASA que suportam EDNS0 ao longo dos anos.

Por padrão, o ASA descartará pacotes maiores que não passam nas regras do inspetor de DNS. Essas mudanças também são necessárias se você estiver no DNSSEC.

Para o ASA 8.2.2 e posterior:

policy-map type inspect dns preset_dns_map
    parameters
        message-length maximum client auto
        message-length maximum 4096

Dependendo da sua versão do ASA, talvez você também precise fazer isso:

fixup protocol dns maximum-length 4096
fixup protocol dns 4096

veja Preparando-se para o DNSSEC: Melhores Práticas, Recomendações e Dicas para Implementação de Sucesso

    
por 21.10.2018 / 22:57