[Samba] ISC's dhcp server, radvd and bind9 now adding samba as an AD DC

Rowland penny rpenny at samba.org
Fri May 27 16:23:03 UTC 2016


On 27/05/16 17:11, Jeff Sadowski wrote:
> https://wiki.samba.org/index.php/Configure_BIND_as_backend_for_Samba_AD helped 
> me find that I needed to add
>
> options {
>       [...]
>       tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";
>       [...]
> };
> That seems to have fixed my errors with DNS
>
> On Fri, May 27, 2016 at 9:26 AM, Rowland penny <rpenny at samba.org 
> <mailto:rpenny at samba.org>> wrote:
>
>     On 27/05/16 14:37, Jeff Sadowski wrote:
>
>         I had left my config alone for now and dhcp still writes to
>         DOMAIN1.SUBDOMAIN.TLD.  But samba has been complaining about
>         not being able
>         to write to bind in its zone.
>
>         [2016/05/27 07:30:06.738434,  0]
>         ../source4/dsdb/dns/dns_update.c:295(dnsupdate_nameupdate_done)
>         ../source4/dsdb/dns/dns_update.c:295: Failed DNS update -
>         NT_STATUS_UNSUCCESSFUL
>
>         If you are right about it using kerberos I think I am missing
>         a bit more
>         configuration to allow bind to use kerberos. I have a place
>         for it to use
>         the key but nothing in it about kerberos and how to verify that.
>
>         On Mon, May 23, 2016 at 10:35 AM, mathias dufresne
>         <infractory at gmail.com <mailto:infractory at gmail.com>>
>         wrote:
>
>             Hi,
>
>             Why modifying a working conf when you can build your DC on
>             others systems
>             (VM)? That could be really nice to learn but you add a lot
>             of complexity in
>             your process, I think.
>             Why not using DLZ to access your AD zones? I expect Bind
>             to be able to mix
>             its behaviour: flat file for some zone, DLZ for others...
>
>             Now regarding:
>             update-policy {
>                              grant AD.DOMAIN2.SUBDOMAIN.TLD ms-self *
>             A AAAA;
>                              grant
>             Administrator at AD.DOMAIN2.SUBDOMAIN.TLD wildcard * A
>             AAAA SRV CNAME;
>                              grant DOMAIN2$@ad.DOMAIN2.SUBDOMAIN.TLD
>             wildcard * A AAAA
>             SRV CNAME;
>             };
>             For me this means:
>             grant AD.DOMAIN2.SUBDOMAIN.TLD ms-self * A AAAA;
>             Grant any authenticated user (from domain
>             AD.DOMAIN2.SUBDOMAIN.TLD) to
>             modify A and AAAA it owns (ms-self) from any host (*).
>
>             grant Administrator at AD.DOMAIN2.SUBDOMAIN.TLD wildcard * A
>             AAAA SRV CNAME;
>             Grant administrator from domain AD.DOMAIN2.SUBDOMAIN.TLD
>             to do anything on
>             any A AAAA SRV CNAME from any host
>
>             same for last one.
>
>             I'm really a new comer to DNS world, these thoughts come from
>             http://docstore.mik.ua/orelly/networking_2ndEd/dns/ch10_02.htm
>
>             These lines should make your Bind to use Kerberos. At
>             least I do hope the
>             authentication is Kerberos (that's AD!). If it is kerberos
>             authentication,
>             I expect you can rely on it as almost the whole world rely
>             on Kerberos
>             these days : )
>
>             A last thing regarding ISC's key method:
>             https://bugzilla.samba.org/show_bug.cgi?id=11520
>             I don't meant this bug as something to do with what you
>             want to achieve,
>             simply it could be a good thing to read if you understand
>             anything to ISC's
>             key method (that I don't), perhaps you could find some
>             leads to follow or
>             some information to avoid that configuration.
>
>             Sorry not to help more. Have a nice day,
>
>             mathias
>
>
>
>             2016-05-18 18:13 GMT+02:00 Jeff Sadowski
>             <jeff.sadowski at gmail.com <mailto:jeff.sadowski at gmail.com>>:
>
>                 So I had dhcp, radvd and bind working together nicely
>                 and now I threw in a
>                 wrench of setting up an AD DC
>
>                 I want to change my dhcp server setting to put
>                 client's into the new AD
>                 Domain but am a little hesitant as it is all working
>                 so nicely with DDNS
>
>                 I'm starting to think all I need to do is edit just my
>                 dhcpd.conf and
>                 change occurrences of DOMAIN1.SUBDOMAIN.TLD to
>                 AD.DOMAIN2.SUBDOMAIN.TLD
>                 A little touch up of db.self and comment out and
>                 eventually remove DOMAIN1
>                 entries as everything is working as I like.
>
>                 My concern is moving from
>                          allow-update { key rndc-key; };
>                          notify yes;
>                 to
>                          update-policy {
>                                  grant AD.DOMAIN2.SUBDOMAIN.TLD
>                 ms-self * A AAAA;
>                                  grant
>                 Administrator at AD.DOMAIN2.SUBDOMAIN.TLD wildcard * A
>                 AAAA SRV CNAME;
>                                  grant
>                 DOMAIN2$@ad.DOMAIN2.SUBDOMAIN.TLD wildcard * A AAAA
>                 SRV CNAME;
>                          };
>
>                 The latter being produced when I created the domain in
>                 the example configs
>                 that I copied into mine.
>                 I think what that is saying is let the domain
>                 controller by name have
>                 access to the domain's entries
>                 I'm a little concerned about verification as I know
>                 the key method is safe
>                 and I'm not so sure about the grant method.
>
>                 Is there a way to have samba use ISC's key method?
>                 Anyone have any suggestions?
>
>                 My current setup is as below.
>
>                 My server name is the same as DOMAIN2 it has a ipv4
>                 address of 192.168.1.1
>                 and a ipv6 address of fc00:1::1111:1111:1111:1111
>                 It's outside addresses are dhcp from my ISP I do ip
>                 masquerade on both
>                 ipv4
>                 and ipv6
>
>
>                 My dhcpd.conf looks as follows
>                 #================START=======================
>                 ddns-updates on;
>                 ddns-update-style interim;
>                 ddns-domainname "DOMAIN1.SUBDOMAIN.TLD.";
>                 ddns-rev-domainname "in-addr.arpa.";
>                 ignore client-updates;
>                 option domain-search-order code 119 = string;
>                 include "/etc/rndc.key";
>                 zone DOMAIN1.SUBDOMAIN.TLD {
>                   primary 192.168.1.1;
>                   key rndc-key;
>                 }
>                 zone 1.168.192.in-addr.arpa. {
>                   primary 192.168.1.1;
>                   key rndc-key;
>                 }
>                 default-lease-time 100000;
>                 max-lease-time 1000000;
>                 subnet 192.168.1.0 netmask 255.255.255.0 {
>                   range 192.168.1.10 192.168.1.200;
>                   option routers 192.168.1.1;
>                   option domain-name "DOMAIN1.SUBDOMAIN.TLD.";
>                   option domain-name-servers 192.168.1.1;
>                   option domain-search-order
>                 "DOMAIN1.SUBDOMAIN.TLD.,ipv6.DOMAIN1.SUBDOMAIN.TLD.";
>                   next-server 192.168.1.1;
>                   filename "/pxelinux.0";
>                   allow unknown-clients;
>                 }
>                 #================END=========================
>
>                 My radvd.conf looks like so
>                 #================START=======================
>                 interface eth0
>                 {
>                   AdvSendAdvert on;
>                   prefix fc00:1::/64
>                   {
>                    AdvOnLink on;
>                    AdvAutonomous on;
>                   };
>                   RDNSS fc00:1::1111:1111:1111:1111 {};
>                 };
>                 #================END=========================
>
>                 My named.conf after adding my samba looks like so
>                 #================START=======================
>                 options {
>                          listen-on port 53 { 127.0.0.1; 192.168.1.1; };
>                          listen-on-v6 port 53 { ::1; };
>                          directory       "/var/named";
>                          dump-file  "/var/named/data/cache_dump.db";
>                          statistics-file
>                 "/var/named/data/named_stats.txt";
>                          memstatistics-file
>                 "/var/named/data/named_mem_stats.txt";
>                          allow-query     { localhost; 192.168.1.0/16
>                 <http://192.168.1.0/16>; };
>                          recursion yes;
>                          dnssec-enable yes;
>                          dnssec-validation yes;
>                          dnssec-lookaside auto;
>                          bindkeys-file "/etc/named.iscdlv.key";
>                          managed-keys-directory "/var/named/dynamic";
>                          pid-file "/run/named/named.pid";
>                          session-keyfile "/run/named/session.key";
>                 };
>                 logging {
>                          channel default_debug {
>                                  file "data/named.run";
>                                  severity dynamic;
>                          };
>                 };
>                 zone "." IN {
>                          type hint;
>                          file "named.ca <http://named.ca>";
>                 };
>                 zone "ipv6.DOMAIN1.SUBDOMAIN.TLD" {
>                          type master;
>                          file "zones/db.ipv6.DOMAIN1.SUBDOMAIN.TLD";
>                          allow-update { key rndc-key; };
>                          notify yes;
>                 };
>                 zone "DOMAIN1.SUBDOMAIN.TLD" IN {
>                          type master;
>                          file "zones/db.DOMAIN1.SUBDOMAIN.TLD";
>                          allow-update { key rndc-key; };
>                          notify yes;
>                 };
>                 zone "ad.DOMAIN2.SUBDOMAIN.TLD." IN {
>                          type master;
>                          file "zones/db.ad.DOMAIN2.SUBDOMAIN.TLD";
>                          update-policy {
>                                  grant AD.DOMAIN2.SUBDOMAIN.TLD
>                 ms-self * A AAAA;
>                                  grant
>                 Administrator at AD.DOMAIN2.SUBDOMAIN.TLD wildcard * A
>                 AAAA SRV CNAME;
>                                  grant
>                 DOMAIN2$@ad.DOMAIN2.SUBDOMAIN.TLD wildcard * A AAAA
>                 SRV CNAME;
>                          };
>                          check-names ignore;
>                 };
>                 zone "DOMAIN2.SUBDOMAIN.TLD" IN { type master; file
>                 "db.self"; };
>                 #================END=========================
>
>                 content of db.self
>                 #================START=======================
>                 $TTL 604800     ; 1 week
>                 @           IN SOA  ns.DOMAIN1.SUBDOMAIN.TLD MY.EMAIL. (
>                 2014092401 <tel:2014092401> ; serial
>                                                  604800     ; refresh
>                 (1 week)
>                                                  86400      ; retry (1
>                 day)
>                                                  2419200    ; expire
>                 (4 weeks)
>                                                  604800     ; minimum
>                 (1 week)
>                                                  )
>                                          NS ns.DOMAIN1.SUBDOMAIN.TLD.
>                 @       IN      A       192.168.1.252
>                 @       IN      MX      10 DOMAIN2.SUBDOMAIN.TLD.
>                 @       IN      TXT     "v=spf1 mx a -all"
>                 #================END=========================
>
>                 my smb.conf looks like
>                 #================START=======================
>                 [global]
>                          netbios name = DOMAIN2
>                          realm = AD.DOMAIN2.SUBDOMAIN.TLD
>                          server services = s3fs, rpc, nbt, wrepl,
>                 ldap, cldap, kdc, drepl,
>                 winbindd, ntp_signd, kcc, dnsupdate
>                          workgroup = AD
>                          server role = active directory domain controller
>                          idmap_ldb:use rfc2307 = yes
>                 [netlogon]
>                          path =
>                 /var/lib/samba/sysvol/ad.DOMAIN2.SUBDOMAIN.TLD/scripts
>                          read only = No
>                 [sysvol]
>                          path = /var/lib/samba/sysvol
>                          read only = No
>                 #================END=========================
>
>
>                 my krb5.conf looks like
>                 #================START=======================
>                 [libdefaults]
>                          default_realm = AD.DOMAIN2.SUBDOMAIN.TLD
>                          dns_lookup_realm = false
>                          dns_lookup_kdc = true
>                 #================END=========================
>                 --
>                 To unsubscribe from this list go to the following URL
>                 and read the
>                 instructions:
>                 https://lists.samba.org/mailman/options/samba
>
>
>
>     You are going about this the wrong way, you do not setup dhcp and
>     bind then add a Samba4 AD DC, you setup the AD DC with bind9 and
>     then add the dhcp server.
>
>
> Your right now I will try adding dhcp to that same rule set
>
>

I will give you a few hints: 'on commit' 'on release' and 'on expiry' :-)

Rowland

PS: if you get stuck, I could always tell you how I have been doing it 
for nearly 4 years.





More information about the samba mailing list