Hi Crist,

1. Actually, I am running dynamic updates with BIND9 and ISC DHCP server for about a half a year and I am frankly very happy with the way it works. This is at the Academy. So, I am familiar with the dynamic (DDNS) updates. Though there had been some tricky stuff with sub-/24 reverse PTR zone, the thing went rather smooth and it is working well.

At the Faculty, former administrator chose Windows Server 2016 for AD, DHCP and DNS for the organisation. Sad to hear that there doesn't seem a way for TSIG zone xfer on AD-managed DDNS - BIND9 secondary combination.

2. Now please take a coffee, because this became more complex than when I started it, though it is a very simple thing.

I have recently tried views. What would be useful was a way to transfer internal zone to the secondary (or politically incorrect speaking, "slave" server).

WHAT IS REQUIRED:

server PRIMARY: SECONDARY:

view

internal grf.hr.internal.db grf.hr.internal.db
external grf.hr.db grf.hr.db

I can't seem to find a way to mirror the internal copy of primary view "internal" to the secondary server?

I will post an excerpt from the configuration of the questionable zone on primary ("master"):

include "/etc/bind/keys/grf.hr-tsig.key";

view "internal" {

    match-clients { 161.53.83.0/24; 31.147.204.47; 31.147.204.52; 31.147.204.129; 31.147.204.172; localhost; };

    recursion yes;

    include "/etc/bind/named.conf.default-zones";

    zone "grf.hr" in {
        type master;
        file "/etc/bind/zones/grf.hr.internal";
        allow-transfer { key grf.hr-tsig; };
        also-notify { 161.53.83.3; };
        forwarders {};
    };

    ...

};

view "universe" {

    match-clients { any; };

    recursion no;

    zone "grf.hr" in {
        type master;
        file "/etc/bind/zones/grf.hr";
        allow-transfer { 161.53.2.70; };
        also-notify { 161.53.2.70; 161.53.83.3; };
        forwarders {};
    };

    ...

};

So, the internal secondary DNS 161.53.x.3 should get the internal copy of "grf.hr" zone for its own, and external copy of "grf.hr" zone for the view "universe". This is the current configuration, and the secondary server gets the external view, because it is the only copy with that zone name (the external and internal "grf.hr" are homonymous):

view "internal" {

    match-clients { 161.53.83.0/24; 10.0.0.0/16; 31.147.204.224; localhost; };

    recursion yes;

    zone "grf.hr" in {
        type secondary;
        file "/var/cache/bind/grf.hr.db";
        masters { 31.147.204.224; };
        allow-transfer { 31.147.204.224; };
        forwarders {};
    };

    ...

};

view "universe" {

    match-clients { any; };

    recursion no;

    zone "grf.hr" in {
        in-view "internal";
    };

    ...

};

There doesn't seem to be a semantic way to refer to grf.hr from view "internal" as opposed to grf.hr from view "universe" from the secondary's point of view.

I can't seem a way to work around this.

I have Googled, but the reference for view doesn't seem to cover it:

https://bind9.readthedocs.io/en/v9_18_2/reference.html?highlight=view#view-statement-definition-and-usage

There didn't seem to be a way to mirror the configuration with internal and external view to the secondary server. Or I did not see it.

I am running BIND 9.16.27 on Debian 10/11 Linux systems.

I would be grateful for any pointer or idea. I know there must be a catch, for it seems so simple. There must be something I can't see. But probably I need to make some distance from the problem ... and wait to sleep over it.

Also, it would be useful if there is way to refer to a zone by alias. So, I could then have zone "grf.hr.internal" on primary, transfer that, and have an alias zone i.e.

PRIMARY:

view "internal" {

    match-clients { 161.53.83.0/24; 31.147.204.47; 31.147.204.52; 31.147.204.129; 31.147.204.172; localhost; };

    recursion yes;

    include "/etc/bind/named.conf.default-zones";

    zone "grf.hr.internal" in { // workaround zone to get a zone xfer to secondary
        type master;
        file "/etc/bind/zones/grf.hr.internal";
        allow-transfer { key grf.hr-tsig; };
        also-notify { 161.53.83.3; };
        forwarders {};
    };

    zone "grf.hr" in { // real internal zone name with the same data
        zone-alias-for "grf.hr.internal";
   };

    ...

};

view "universe" {


    match-clients { any; };

    recursion no;

    zone "grf.hr" in {
        type master;
        file "/etc/bind/zones/grf.hr"; // database for the external view
        allow-transfer { 161.53.2.70; };
        also-notify { 161.53.2.70; 161.53.83.3; };
        forwarders {};
    };

    ...

};

SECONDARY:

view "internal" {

    match-clients { 161.53.83.0/24; 10.0.0.0/16; 31.147.204.224; localhost; };

    recursion yes;

    zone "grf.hr.internal" in {
        type secondary;
        file "/var/cache/bind/grf.hr.internal.db";
        masters { 31.147.204.224; };
        allow-transfer { none; };
        forwarders {};
    };

*    zone "grf.hr" in {**
**        zone-alias-for "grf.hr.internal";**
**    };**
*
    ...

};

view "universe" {

    match-clients { any; };

    recursion no;

    zone "grf.hr" in {
        in-view "internal";
    };

    ...

};

Because that's what I really need, for the same zone to have internal and external variant of data, equal on both primary and secondary server.

(Of course, this is not a suggestion for a change in BIND9 configuration syntax, just a semantic example of what is semantically required.)

Thank you.

Kind regards,
Mirsad

On 26. 05. 2022. 08:07, Crist Clark wrote:
As far as I know, GSS-TSIG is only used for DNS updates, not zone transfers.

https://bind9.readthedocs.io/en/v9_16_5/advanced.html#dynamic-update

Sorry, don't know what capabilities AD has for securing zone transfers beyond IP ACLs, which of course is not much security at all. I've never had luck getting AD admins to offer anything better. I'm definitely no AD expert myself.

One possibility of course is to secure at the IP layer, a.k.a. IPsec. You could secure all traffic between the servers with transport mode AH. That would probably blow some minds in your organization. There are many who only know IPsec as encrypted tunnels, i.e. VPNs.

On Wed, May 25, 2022 at 3:38 PM Mirsad Goran Todorovac <mirsad.todoro...@alu.unizg.hr> wrote:

    Dear all,

    I have a zone local.grf.hr <http://local.grf.hr> administered by
    AD, DHCP and DDNS ran by
    Windows Server 2016
    (not by my architectural choice). However, since Windows Server
    2016 had
    round-robin
    strategy of inquiring the forwarders, it performed worse than
    BIND9 on
    old Debian server.

    So, I had the BIND9 as the secondary server ("slave" is somewhat
    politically incorrect) and I
    wanted to secure transactions with TSIG HMAC-SHA256 or stronger, as
    between Debian
    BIND9 servers.

    I've been Googling around, and they say it cannot be done, because
    Windows Server uses
    special proprietary GSS-TSIG. The article was for an earlier
    version of WS.

    Has there been some improvement in the meantime?

    We are thinking about moving DHCP server to Linux, but it is a
    huge job
    to convert the
    reservations, so it may not be done in the next couple of months.

    I would like to secure DNS xfers from zone poisoning in the meantime,
    considering the recent
    surge of cyber attacks since the recent war started, and our country
    voted support for the
    defending party.

    Frankly, I am not in deep with Microsoft DNS, and I guess there
    can be
    some tweaking with
    the PowerShell, and maybe even some undocumented features, but
    right now
    I am presented
    with a problem I can't seem to solve because it is not an open system.

    Thanks for any help.

    Kind regards,
    Mirsad Todorovac

    --
    Mirsad Goran Todorovac
    CARNet sistem inženjer
    Grafički fakultet | Akademija likovnih umjetnosti
    Sveučilište u Zagrebu

-- CARNet system engineer
    Faculty of Graphic Arts | Academy of Fine Arts
    University of Zagreb, Republic of Croatia
    tel. +385 (0)1 3711 451
    mob. +385 91 57 88 355

-- Visit https://lists.isc.org/mailman/listinfo/bind-users to
    unsubscribe from this list

    ISC funds the development of this software with paid support
    subscriptions. Contact us at https://www.isc.org/contact/ for more
    information.


    bind-users mailing list
    bind-users@lists.isc.org
    https://lists.isc.org/mailman/listinfo/bind-users

--
Mirsad Goran Todorovac
CARNet sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu
--
CARNet system engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb, Republic of Croatia
tel. +385 (0)1 3711 451
mob. +385 91 57 88 355
-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users

Reply via email to