1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-06 13:18:07 +03:00
Commit Graph

103 Commits

Author SHA1 Message Date
Stefan Metzmacher
fd952bf814 s4:dlz_bind9: let dlz_bind9 use dns_common_replace()
Bug: https://bugzilla.samba.org/show_bug.cgi?id=10749

Change-Id: I2fd2503230cbf89445594e49f39ac321769ff06e
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2014-08-27 12:55:06 +02:00
Stefan Metzmacher
dedcf30fd1 s4:dlz_bind9: let dlz_bind9 use dns_common_extract()
Bug: https://bugzilla.samba.org/show_bug.cgi?id=10749

Change-Id: I7c661964a3da1a1981f022a06b9bef25bbd33479
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2014-08-27 12:55:06 +02:00
Stefan Metzmacher
96dcebe8c2 s4:dlz_bind9: let dlz_bind9 use dns_common_lookup() for name lookup
Bug: https://bugzilla.samba.org/show_bug.cgi?id=10749

Change-Id: I2632fa0ce120a978f6f400fa5cbf18a7fbbd64a3
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2014-08-27 12:55:06 +02:00
Stefan Metzmacher
5d397c8198 s4:dlz_bind9: do an early talloc_free(el_ctx) in dlz_allnodes()
We don't have to keep everything arround while walking the whole zone.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2014-08-26 09:13:06 +02:00
Stefan Metzmacher
fbebe7e756 s4:dlz_bind9: avoid some compiler warnings
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2014-08-26 09:13:06 +02:00
Arvid Requate
5e892fb674 s4-dns: dlz_bind9: improve log message consistency
Change-Id: I0a12c048fd4e667b9aa0777f99c8f8306fc090ea
Signed-off-by: Arvid Requate <requate@univention.de>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Kai Blin <kai@samba.org>

Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Mon May 26 05:55:46 CEST 2014 on sn-devel-104
2014-05-26 05:55:46 +02:00
Arvid Requate
f15d10df29 s4-dns: dlz_bind9: Fix ipv6 updates
b9_record_match needs to consider all allowed representations of IPv6
addresses (RFC 2373), otherwise DNS subtractrdataset operations fail
due to differences in zero padding between bind9 frontend and ndr_pull
of a dnsp_DnssrvRpcRecord structure.

Change-Id: Ic0a1b16008458993dc644646d7f4ae3d3a3c5fed
Signed-off-by: Arvid Requate <requate@univention.de>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Kai Blin <kai@samba.org>
Reviewed-by: Guenter Kukkukk <kukks@samba.org>
2014-05-26 03:31:28 +02:00
Andrew Bartlett
086c06e361 kerberos: Remove un-used event context argument from smb_krb5_init_context()
The event context here was only specified in the server or admin-tool
context, which does not do network communication, so this only caused
a talloc_reference() and never any useful result.

The actual network communication code sets an event context directly
before making the network call.

Andrew Bartlett

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>

Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Mon Apr 28 02:24:57 CEST 2014 on sn-devel-104
2014-04-28 02:24:57 +02:00
Stefan Metzmacher
31a2ddb361 s4:dns_server: make use of gensec_update_ev()
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2014-03-27 00:36:31 +01:00
Amitay Isaacs
97dd673157 s4-dns: Ignore duplicate dns zones from multiple locations in dlz_bind9
BIND DLZ module currently loads DNS zones from DNS partitions and domain
partitions using following prefixes:

   CN=MicrosoftDNS,DC=DomainDnsZones
   CN=MicrosoftDNS,DC=ForestDNSZones
   CN=MicrosoftDNS,CN=System

Windows supports DNS zones duplicated in DNS partitions and domain
partition and updates both of them simultaneously.

BIND DLZ module can handle DNS zones stored either in DNS partitions
or domain partition, but not both.  This patch ignores duplicate zones
from domain partition and allows BIND9 to work with AD with duplicate
DNS zones.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Kai Blin <kai@samba.org>
2013-11-30 14:22:57 +11:00
Stefan Gohmann
666a5630ef s4-dns: dlz_bind9: Check result to avoid segfault
We saw this issue in a customer environment with many CNF objects. I
wasn't able to reproduce it, but I got the following core dump:

 (gdb) directory samba4-4.0.0~rc6/source4/dns_server/
 Source directories searched: /root/samba4-4.0.0~rc6/source4/dns_server:$cdir:$cwd
 (gdb) bt
 #0  0xb4b0bc13 in dlz_lookup_types (state=0x9648e48, zone=0xb659b9a8 "xxxxxx.xxxxx.de", name=0xb659bda8 "client9173", lookup=0xb6db7588, types=0x0) at ../source4/dns_server/dlz_bind9.c:830
 #1  0xb4b0bdb8 in dlz_lookup (zone=0xb659b9a8 "xxxxxx.xxxxx.de", name=0xb659bda8 "client9173", dbdata=0x9648e48, lookup=0xb6db7588) at ../source4/dns_server/dlz_bind9.c:875
 #2  0x080b43d8 in dlopen_dlz_lookup ()
 #3  0xb7701755 in findnode () from /usr/lib/libdns.so.81
 #4  0xb7701d22 in find () from /usr/lib/libdns.so.81
 #5  0xb7639e5f in dns_db_find () from /usr/lib/libdns.so.81
 #6  0x08075476 in query_find ()
 #7  0x0807acb9 in ns_query_start ()
 #8  0x08060712 in client_request ()
 #9  0xb743022b in run () from /usr/lib/libisc.so.81
 #10 0xb7216955 in start_thread () from /lib/i686/cmov/libpthread.so.0
 #11 0xb706c1de in clone () from /lib/i686/cmov/libc.so.6
 (gdb) f 0
 #0  0xb4b0bc13 in dlz_lookup_types (state=0x9648e48, zone=0xb659b9a8 "xxxxxx.xxxxx.de", name=0xb659bda8 "client9173", lookup=0xb6db7588, types=0x0) at ../source4/dns_server/dlz_bind9.c:830
 830             el = ldb_msg_find_element(res->msgs[0], "dnsRecord");
 (gdb) p res->msgs
 $1 = (struct ldb_message **) 0x0
 (gdb) p res->count
 $2 = 0
 (gdb)

Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2013-03-09 06:30:21 +01:00
Amitay Isaacs
1f55865f28 s4-dns: Fix format string vulnerability in an error message (bug #9354)
Also, fixes few comments.

Thanks to Bruno Rohée <bruno@rohee.org> for reporting and patch fix.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-By: Kai Blin <kai@samba.org>

Autobuild-User(master): Amitay Isaacs <amitay@samba.org>
Autobuild-Date(master): Sun Nov  4 16:58:13 CET 2012 on sn-devel-104
2012-11-04 16:58:13 +01:00
Amitay Isaacs
d70f3644a4 s4-dns: dlz_bind9: Ignore zones that are not used by BIND9 DLZ plugin
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
2012-10-09 10:36:32 +11:00
Amitay Isaacs
f52afa955e dlz_bind9: Make the talloc destructor static and return 0.
Autobuild-User: Amitay Isaacs <amitay@samba.org>
Autobuild-Date: Thu May 24 03:32:50 CEST 2012 on sn-devel-104
2012-05-24 03:32:47 +02:00
Amitay Isaacs
34eab45cba dlz_bind9: Fix the named crash on reloading named
When reloading zones, named first creates new zone instance and then shuts down
the old instance. Since ldb layer, keeps the same LDB open, talloc_free() on samdb
handle, causes talloc "access after use" error.

This patch keeps only single context (dlz_bind9_data) and uses reference counting
to decide when to actually free the context. Since samdb handle is reused, use
talloc_unlink() instead of talloc_free() on samdb handle.
2012-05-24 09:42:24 +10:00
Amitay Isaacs
bbc98df743 dlz_bind9: Build shared libraries for both BIND versions 9.8 and 9.9
This adds #define BIND_VERSION_9_8 and keeps the current version as 9.9, so
shared libraries can be built for both BIND versions.
2012-04-16 11:16:34 +10:00
Amitay Isaacs
07677b2e43 dlz_bind9: changes to make dlz_bind9 work with BIND 9.9.0
The main changes are:
  DLZ_DLOPEN_VERSION changed from 1 to 2
  isc_boolean_t changed from bool to int
  dlz_lookup() now takes 2 additional arguments
2012-04-16 11:16:34 +10:00
Andrew Bartlett
1a8e7157e5 dlz_bind9: Log Samba DEBUG() messages to the bind9 logs 2012-03-08 10:14:05 +01:00
Amitay Isaacs
f5f17b19af dlz_bind9: Match PTR records as DNS names and not just strings
This fixes the dynamic update of PTR records.

Autobuild-User: Amitay Isaacs <amitay@samba.org>
Autobuild-Date: Thu Mar  1 15:58:05 CET 2012 on sn-devel-104
2012-03-01 15:58:05 +01:00
Amitay Isaacs
0c8a10ecb0 dlz_bind9: Fix handling of TXT records with multiple quoted strings 2012-03-02 00:24:50 +11:00
Amitay Isaacs
f5b041fc04 dlz_bind9: This fixes the problem with adding/deleting rdataset
Fix commit 169db33303. This change
allowed for LDB records without dnsRecord attribute to exist to
prevent large number of deleted records.

This change fixes the handling of missing dnsRecord attribute
and correctly deleting dnsRecord attribute.
2012-03-02 00:24:49 +11:00
Amitay Isaacs
1a70332f95 dlz_bind9: Fix the log message level 2012-02-21 23:08:35 +11:00
Amitay Isaacs
169db33303 dlz_bind9: Do not remove LDB record in subrdataset and delrdataset
This fixes the problem of large number of deleted records in DNS
partitions due to frequent dynamic dns updates from windows
clients. The typical pattern for dynamic update get converted
into subrdataset() followed by addrdataset().  If there are no
dnsRecord attributes left as a result of sub/delrdataset(),
leave the LDB entry for dns name as is. The subsequent
addrdataset() would add the dnsRecord attribute without
re-creating the same entry.
2012-02-21 18:24:30 +11:00
Amitay Isaacs
dc4ef9b57b dlz_bind9: for authenticated user, set the AUTHENTICATED USERS sid in token 2012-01-25 10:01:45 +11:00
Amitay Isaacs
6a1201a67b dlz_bind9: create session info from PAC using auth context
This fixes the creation of session info from PAC, after changes
in gensec code.

Autobuild-User: Amitay Isaacs <amitay@samba.org>
Autobuild-Date: Wed Jan  4 01:59:09 CET 2012 on sn-devel-104
2012-01-04 01:59:09 +01:00
Andrew Bartlett
dbbb626dc0 s4-dns Use match-by-key in GSSAPI server if principal is not specified
This allows dlz_bind9 to match on exactly the same key as bind9 itself

Andrew Bartlett

Autobuild-User: Amitay Isaacs <amitay@samba.org>
Autobuild-Date: Wed Dec  7 02:20:10 CET 2011 on sn-devel-104
2011-12-07 02:20:10 +01:00
Amitay Isaacs
b9f4febd40 dlz_bind9: Add command line options for URL and debug
To specify debug level, use -d <level> in named.conf.
To specify sam db, use -H <path/to/sam.ldb> in named.conf.

The default log level is set to 0. The log level specified in smb.conf
is not used. To set log level, use -d option.
2011-12-07 10:43:52 +11:00
Amitay Isaacs
de9a4ca831 dlz_bind9: Set debugging output to stderr 2011-12-07 10:43:52 +11:00
Amitay Isaacs
ce19bfcc6b dlz_bind9: Use client supplied credentials for DNS record update
This creates the DNS records with correct owner and group settings.
2011-12-07 10:43:31 +11:00
Amitay Isaacs
d3d365daab dlz_bind9: For creating a child entry, use only SEC_ADS_CREATE_CHILD
The member servers in AD do not have access to modify the parent, but
do have access to create child DNS records.
2011-12-07 10:41:26 +11:00
Amitay Isaacs
7ac5c5061e dlz_bind9: Added access check to verify dynamic update
This creates session info from kerberos ticket and verifies if
the signer has write access to a particular DN corresponding
to the name in dynamic update.

Pair-Programmed-With: Andrew Tridgell <tridge@samba.org>
2011-11-29 16:00:36 +11:00
Amitay Isaacs
dcc5a7e1f2 dlz_bind9: Use the sam database in dns/ as default
This change is introduced to access samdb copy directly, rather
than over ildap. The advantage is that the samba server does not
need to be running for bind9 to start.
2011-11-29 16:00:36 +11:00
Stefan Metzmacher
ebcf45b550 s4:dlz_bind9: add no memory checks
metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Mon Oct 17 14:07:25 CEST 2011 on sn-devel-104
2011-10-17 14:07:24 +02:00
Stefan Gohmann
d9558fdc34 s4:dlz_bind9: Copy dn before changing in b9_has_soa
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2011-10-17 12:36:50 +02:00
Stefan Gohmann
c88195fbe3 s4:dlz_bind9: add missing earch bases for windows 2000 domains
By default the samba4 dlz_bind9 backend searches under
CN=MicrosoftDNS,DC=DomainDnsZones and CN=MicrosoftDNS,DC=ForestDnsZones.

In my samba4 test setup all DNS zones are under CN=MicrosoftDNS,CN=System.
After adding the attached patch it works fine for me.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2011-10-17 12:36:49 +02:00
Matthias Dieter Wallnöfer
bbf28703a4 s4:"ldb_connect" calls - proof for "!= LDB_SUCCESS"
Reviewed-by: abartlet
2011-04-29 19:05:04 +02:00
Andrew Bartlett
67905b41a9 s4-param Rename private_path() -> lpcfg_private_path()
This is consistent with lock_path()

Andrew Bartlett
2011-04-29 16:38:14 +10:00
Andrew Tridgell
74493af86f s4-dns: renamed DNS_TYPE_ZERO to DNS_TYPE_TOMBSTONE
we now know that these are tombstone records, with a timestamp

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-01-14 16:39:32 +11:00
Matthias Dieter Wallnöfer
aa759de6b3 s4:dns_server/dlz_bind9.c - initialise "ret" variables 2011-01-12 19:52:20 +01:00
Andrew Tridgell
987b49c8e2 dns: fixed dns record format
based on new WSPP docs from Bryan Burgin

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Dec 22 04:45:46 CET 2010 on sn-devel-104
2010-12-22 04:45:46 +01:00
Andrew Tridgell
901f34840b s4-dns: set dwSerial and dwFlags
we are waiting on full docs on these, but this is better than zero

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Tue Dec 21 12:05:51 CET 2010 on sn-devel-104
2010-12-21 12:05:51 +01:00
Andrew Tridgell
f2dea305f4 s4-dns: fixed name comparison in bind9 module
we need to compare without the trailing '.'

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-12-21 11:18:20 +01:00
Andrew Tridgell
8466027bf9 s4-dns: return the local hostname as the SOA authority
this is done by all DCs in the domain to ensure that updates go to the
right place
2010-12-21 11:18:19 +01:00
Andrew Tridgell
da5c328b4b s4-dns: disable segfault handling in dlz_bind9
we don't want bind9 calling the Samba segv handler
2010-12-21 11:18:19 +01:00
Andrew Tridgell
8c04657600 s4-dns: fixed a crash bug in dlz_bind9 code
we need to keep el_ctx for the next part of the loop
2010-12-21 02:42:37 +01:00
Andrew Tridgell
4a1ce3b4b9 s4-dns: implemented parsing and storing of DNS records from bind
DNS updates from nsupdate against our ldb SAM now work

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Wed Dec 15 12:36:46 CET 2010 on sn-devel-104
2010-12-15 12:36:46 +01:00
Andrew Tridgell
74f8c9ccf8 s4-dns: added basic DLZ writeable support to dlz_bind9
this implements the expanded DLZ update driver API, allowing for bind9
to send dynamic updates to the Samba DLZ driver.

This change also adds support for exporting all DNS zones in the SAM
database, which also means we now correctly separate the _msdcs zone
from the main zone.
2010-12-15 21:48:15 +11:00
Andrew Tridgell
18177f1e52 s4-dns: use ldb hooks for samba extensions in dlz_bind9
this avoids linking dlz_bind9 directly to heimdal, which allows a
RTLD_DEEPBIND in ldb module loading to find the right kerberos version

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-12-08 05:26:06 +01:00
Andrew Tridgell
591e18a12c s4-dns: allow a remote ldap server to be used with dlz_bind9
this allows for configs like this:

dlz "Samba zone" {
	database "dlopen /usr/lib/samba/modules/bind9/dlz_bind9.so
	-H ldap://10.0.0.4 -Uadministrator@v2.tridgell.net%penguin -k no";
};
2010-12-08 05:26:05 +01:00
Andrew Tridgell
5845cc94a9 s4-dns: return the correct TTL
I've now patched the bind9 sdlz layer to cope with multiple TTLS on a
name/type pair

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Mon Dec  6 08:12:11 CET 2010 on sn-devel-104
2010-12-06 08:12:11 +01:00
Andrew Tridgell
49e0aef3cb s4-dns: support Samba command line options to the dlz_bind.so module
this allows setting of Samba command line options in named.conf
2010-12-06 17:24:52 +11:00
Andrew Tridgell
c60ce7503c s4-dns: added flags support for dlz_bind9
this will allow us to set the THREADSAFE flag if we make this
threadsafe. For now we don't set that flag, and let bind9 do the
locking for us.
2010-12-06 17:24:52 +11:00
Andrew Tridgell
9f6f1b0098 s4-dns: a dlz module for bind9
this module can be loaded into bind9 if bind9 has been built with the
--with-dlz-dlopen option. It provides access bind9 access to the
DNS records in SAMDB.

You can then start bind9 with this in named.conf:

dlz "Samba zone" {
	database "dlopen /usr/lib/samba/modules/bind9/dlz_bind9.so";
};

See http://git.samba.org/tridge/bind9.git for a bind9 tree with the
dlz_dlopen driver. See also the discussion on the bind-workers mailing
list

Autobuild-User: Andrew Tridgell <tridge@samba.org>
Autobuild-Date: Mon Dec  6 05:48:30 CET 2010 on sn-devel-104
2010-12-06 05:48:30 +01:00