backara
Goto Top

Debian 8.1 Jessie + Samba 4.1.17 + Bind9 Zusammenspiel DNS + ADS

Hallo Gemeinde,

ich bin gerade an der Umsetzung eine Domäne aufzubauen als Ersatz für eine Windows-Domäne. Ich bin kein Linux Spezi habe mir aber in den Letzten Wochen vieles angeeignet und dazugelernt.

Wie im Betreff schon geschrieben will ich das Ganze mit Debian umsetzen. Ich habe jedoch das Eine oder Andere Verständnisproblem.

Ich habe jetzt so ziemlich alles Mögliche durchgearbeitet angefangen von samba.org über Ubuntu Wiki hin zu Debian.
Immer wieder stoße ich auf Anleitungen die zwar in mühevoller Kleinarbeit erstellt aber leider nicht weiter gepflegt wurden oder gar aktualisiert werden. Irgendwas ist halt immer anders oder aber in einem Englisch geschrieben das ich schier ab und zu am Verstand zweifle.

Ich habe mir also das einzige deutschsprachige Buch zum Thema Samba 4 von S. Kania besorgt und habe dieses von vorne bis hinten durchgearbeitet. Ich habe mich an die Versionen gehalten die auch im Buch benutzt wurden. Debian 7.x Samba SerNet Pakete etc. Und siehe da es hat alle so funktioniert wie es soll.

Nun will ich aber einen Schritt weiter denn einfach nur nach Anleitung Arbeiten bringt mich bei meiner Arbeit ja nicht weiter.

Da ich nicht allein arbeite haben wir entschieden das Debian 8.1 Jessie mit dem Samba aus den aktuellen Quellen also 4.1.17 zum Einsatz kommen soll und bind 9.5.5.

Ich habe also Debian als Host System aufgesetzt und über Virtualbox etliche Installationen durchgeführt.

Soweit so gut funktioniert sowohl AD DC als auch DNS über Bind.
Im Buch kam nach Anleitung der SAMBA_INTERNAL DNS zum Einsatz. Ich konnte also nach Fertigstellung mittels Win7 Client und den RSAT Tools die Samba Domäne verwalten. Sprich Benutzer Computer Gruppenrichtlinien etc. Auch die Verwaltung des DNS war möglich sowohl über den Client als auch direkt auf dem Server per samba-tool. Freigaben lasse ich mal außen vor da ich dafür einen extra Fileserver aufgesetzt hatte.

Mit den DNS Tools vom Client aus kann ich in der jetzigen Konstellation anscheinend Daten pflegen die aber NULL Auswirkungen auf bind haben. Mit den samba-tools das Gleiche. Beispiel: Ich mache einen neuen A Eintrag in meine Zonendatei kann aber den Namen oder die IP nicht über nslookup auflösen weil sie ja nicht in meiner bind Zone steht. Ich muss also meine Zonendateien immer öffnen die Seriennummer erhöhen und meine Veränderungen machen und anschliessend den bind9 Dienst neu starten, dann klappt es.

Es gibt einen Punkt in der /var/lib/samba/private/named.conf der da heißt du solltest diese Datei in deine bind Konfiguration includieren.
Aber genau hier scheitere ich auch mit meinem Verständnis. Tue ich die und setze einen include in die named.conf im Standardverzeichnis /etc/bind/ bekomme ich einen SAMBA_DLZ Fehler das meine eigene ZONE nicht geladen werden kann weil schon die AD zone existiert (oder so ähnlich klingend).

Wo hängt es bei meinem Verständnis?
Wo greift Samba auf den DNS bind zu? Warum funktioniert diese Konstellation?


Also Frage ich mal hier.

Sicher ist das was ich geschrieben habe nicht allzu leicht nachzuvollziehen aber vllt. gibts doch ein paar Ansätze.

Gruß Andreas

Fast vergessen face-smile

Was hab ich gemacht?
apt-get install sudo acl xattr rsync xinetd resolvconf samba smbclient heimdal-clients tdb-tools bind9 bind9utils bind9-doc

Debian 8.1 Jessie installiert (bei ext4 braucht die fstab nicht angepasst werden)
sudo acl xattr installiert
rsync xinetd installiert (kommen zum Einsatz bei der Sync. zum BDC)
Kerberos konfiguriert (kinit klist OK)
bind9 bind9utils bind-doc installiert und konfiguriert DNS funktioniert auch ADDC (dig, host, named-xxx alles i.O)
Samba Domain Provision funktioniert einwandfrei (dlopen einkommentiert bind 9.9)
Alle Prüfungen durchgeführt
Alles scheint zu funktionieren.

Content-ID: 279180

Url: https://administrator.de/contentid/279180

Ausgedruckt am: 25.11.2024 um 20:11 Uhr

Chonta
Chonta 05.08.2015 um 12:11:15 Uhr
Goto Top
Hallo,

vergiss den Bind und verwende den in Samba4 integrierten DNS. Ab Version keine Ahnung welche funktioniert eh nur noch der interne DNS.
Das mit Bind und Samba war eine Option die zu Samba 4.0 mit Hilfe von Mysqlbackend für den Bind funktionierte.

Und deinstalliere den Bind, wenn der den überhaupt laufen sollte.

Gruß

Chonta
backara
backara 05.08.2015 um 21:44:48 Uhr
Goto Top
Nabend Chonta,

ja das wäre in der Tat die einfachste Lösung. Sogar eine die funktioniert. Einfach wäre es auch die Sernetpakete zu nehmen.

Aber wer will schon einfach? Ernsthaft an dieser Stelle die Frage was kann BIND was Samba_internal nicht kann?
Ich habe heute Bind zum Laufen gebracht und wieder etliche neue Befehle herausgefunden mit denen ich weiter Prüfen kann.

Irrsinn es funktioniert und dennoch schmeissen mir die Tools Fehler aus.
Wenn ich morgen Zeit habe schreibe ich mal ein paar Beispiele raus und setze sie hier rein. Es wird dem einen oder anderen sicher auch weiterhelfen der sich mit diesem Thema weiter auseinander setzen möchte.

Ich mags nicht leiden wenn man endlich einen Thread gefunden hat der eine Thema aufrollt und dann bleibt man doch ohne Antwort.

Gruß Andreas
Chonta
Chonta 06.08.2015 um 11:04:28 Uhr
Goto Top
Hallo,

wie gesagt die Unterstützung von BIND als DNS für SAMBA-AD wird, wenn sie in Deiner Version noch vorhanden sein sollte ENTFERNT werden und es wird nur noch der Samba eigene DNS unterstützt, der dann auch über die Windowstools wie ein Windows DNS behandelt werden kann.
Der Bind macht diesbezüglich einfach nicht mit.
Vor allem in Bezug auf automatische DNS einträge der Clients wie bei Windows üblich. (Geht mit Bind aber ist umständlicher und braucht soweit mir bekannt ein MySQL als Backend um Einträge zur Laufzeit und auch nach einem Neustart des Bind zu hben.)

Den Bind nebenbei laufen lassen, kein Problem ABER auf dem selben Rechner wird nicht klappen, da die Ports ja vom Samba DNS gebraucht werden.

Sich mit Bind im allgemeinen zu beschäftigen ist eine gute Idee und sollte man auch, aber für dein Vorhabne macht es keinen Sinn, da keine Zukunft, da Samba den Support für Bind entfernen wird.

Die Frage ist, was bei Dir genau wirklich funktioniert, der Bind oder der Sambainterne DNS (Ich tippe auf den Sambainternen DNS)
Schalte den Bind deamon einfachmal aus unt teste ob der Server noch eine Namensauflösung hinbekommt (nslookup) und die Clients den DNS-Server über die RSAT bedienen können.

Was für Fehler und wo, bekommst Du denn?

Gruß

Chonta
backara
backara 11.08.2015 um 11:05:36 Uhr
Goto Top
Hallo Chonta,

ich denke ich werde mir deine Empfehlung zu Herzen nehmen. Eine laufende Konfiguration mit dem SAMBA_INTERNAL hatte ich ja schon.

@ll others
Nichts desto trotz möchte ich meinen jetzigen Stand, der eigentlich lauffähig ist, hier nicht vorenthalten:

System: Debian 8.1 Jessie
Samba: samba 4.1.17
bind: bind 9.9.5

Was mir weitergeholfen habt bei der Fehlersuche: named -g , journalctl, samba_dnsupdate --verbose --all-names
Sollte kinit die Abfrage mit dem Fehler quitieren das kein KDC gefunden werden konnte als erstes die IP- und Domänangaben Prüfen in:

/etc/krb5.conf
/etc/hosts
/etc/resolv.conf
läuft der bind9 oder hat er Fehler? Hier hilft es die *.jnl Dateie zu löschen und den Bind neu zu starten

Berechtigungen der einzelnen Bind Dateien prüfen!
dns.keys sollten chmod bind:bind gesetzt werden genau wie die db's der Domäne

Was habe ich konfiguriert?

[/etc/bind/named.conf]
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/bind.keys";

[/etc/bind/named.conf.options]
options {
directory "/var/cache/bind";
dnssec-validation auto;
dnssec-enable no;

auth-nxdomain no; # conform to RFC1035
listen-on { 127.0.0.1; 192.168.10.61; };
listen-on-v6 { none; };
allow-update { any; };
allow-query { any; };
allow-recursion { any; };
tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";
};
controls {
inet 127.0.0.1 port 935 allow {127.0.0.1;} keys { rndc-key; };
};
include "/etc/bind/rndc.key";

[/etc/bind/named.conf.local]
include "/etc/bind/zones.rfc1918";
zone "lan.net" IN {
type master;
file "/var/cache/bind/db.lan.net";
};
zone "10.168.192.in-addr.arpa" IN {
type master;
file "/var/cache/bind/db.lan.net.inv";
};

[/var/cache/bind/db.lan.net] (die Datei wurde nachdem Bind lief automatisch angepasst)
$ORIGIN .
$TTL 604800 ; 1 week
lan.net IN SOA dc1.lan.net. root.lan.net. (
63 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
NS dc1.lan.net.
$TTL 900 ; 15 minutes
A 192.168.10.1
A 192.168.10.2
$ORIGIN _msdcs.lan.net.
$TTL 604800 ; 1 week
eeeeeeee-1111-2222-3333-444444444444 CNAME dc2.lan.net.
_gc SRV 0 100 3268 dc1.lan.net.
$ORIGIN _tcp.Default-First-Site-Name._sites.dc._msdcs.lan.net.
$TTL 900 ; 15 minutes
_kerberos SRV 0 100 88 dc2.lan.net.
SRV 0 100 88 dc1.lan.net.
_ldap SRV 0 100 389 dc2.lan.net.
SRV 0 100 389 dc1.lan.net.
$ORIGIN _tcp.dc._msdcs.lan.net.
_kerberos SRV 0 100 88 dc2.lan.net.
SRV 0 100 88 dc1.lan.net.
_ldap SRV 0 100 389 dc2.lan.net.
SRV 0 100 389 dc1.lan.net.
$ORIGIN _msdcs.lan.net.
$TTL 604800 ; 1 week
_ldap._tcp.Default-First-Site-Name._sites.DomainDnsZones SRV 0 100 389 dc1.lan.net.
$ORIGIN domains._msdcs.lan.net.
$TTL 900 ; 15 minutes
_ldap._tcp.bbbbbbbb-1111-2222-3333-444444444444 SRV 0 100 389 dc1.lan.net.
_ldap._tcp.cccccccc-1111-2222-3333-444444444444 SRV 0 100 389 dc2.lan.net.
SRV 0 100 389 dc1.lan.net.
$ORIGIN _msdcs.lan.net.
aaaaaaaa-1111-2222-3333-444444444444 CNAME dc1.lan.net.
$ORIGIN gc._msdcs.lan.net.
_ldap._tcp.Default-First-Site-Name._sites SRV 0 100 3268 dc2.lan.net.
SRV 0 100 3268 dc1.lan.net.
_ldap._tcp SRV 0 100 3268 dc2.lan.net.
SRV 0 100 3268 dc1.lan.net.
$ORIGIN _msdcs.lan.net.
_ldap._tcp.pdc SRV 0 100 389 dc1.lan.net.
$ORIGIN _tcp.Default-First-Site-Name._sites.lan.net.
_gc SRV 0 100 3268 dc2.lan.net.
SRV 0 100 3268 dc1.lan.net.
_kerberos SRV 0 100 88 dc2.lan.net.
SRV 0 100 88 dc1.lan.net.
_ldap SRV 0 100 389 dc2.lan.net.
SRV 0 100 389 dc1.lan.net.
$ORIGIN _tcp.lan.net.
_gc SRV 0 100 3268 dc2.lan.net.
SRV 0 100 3268 dc1.lan.net.
_kerberos SRV 0 100 88 dc2.lan.net.
SRV 0 100 88 dc1.lan.net.
_kpasswd SRV 0 100 464 dc2.lan.net.
SRV 0 100 464 dc1.lan.net.
_ldap SRV 0 100 389 dc2.lan.net.
SRV 0 100 389 dc1.lan.net.
$ORIGIN _udp.lan.net.
_kerberos SRV 0 100 88 dc2.lan.net.
SRV 0 100 88 dc1.lan.net.
_kpasswd SRV 0 100 464 dc2.lan.net.
SRV 0 100 464 dc1.lan.net.
$ORIGIN lan.net.
$TTL 604800 ; 1 week
dc2 A 192.168.10.2
$TTL 900 ; 15 minutes
DomainDnsZones A 192.168.10.1
A 192.168.10.2
$ORIGIN DomainDnsZones.lan.net.
_ldap._tcp.Default-First-Site-Name._sites SRV 0 100 389 dc2.lan.net.
SRV 0 100 389 dc1.lan.net.
_ldap._tcp SRV 0 100 389 dc2.lan.net.
SRV 0 100 389 dc1.lan.net.
$ORIGIN lan.net.
ForestDnsZones A 192.168.10.1
A 192.168.10.2
$ORIGIN ForestDnsZones.lan.net.
_ldap._tcp.Default-First-Site-Name._sites SRV 0 100 389 dc2.lan.net.
SRV 0 100 389 dc1.lan.net.
_ldap._tcp SRV 0 100 389 dc2.lan.net.
SRV 0 100 389 dc1.lan.net.
$ORIGIN lan.net.
dc1 A 192.168.10.1
$TTL 1200 ; 20 minutes
PC1 A 192.168.10.104

[/var/cache/bind/db.lan.net.inv] (die Datei wurde nachdem Bind lief automatisch angepasst)
$ORIGIN .
$TTL 604800 ; 1 week
10.168.192.in-addr.arpa IN SOA dc1.lan.net. root.lan.net. (
4 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
NS dc1.lan.net.
$ORIGIN 10.168.192.in-addr.arpa.
$TTL 1200 ; 20 minutes
104 PTR PC1.lan.net.
$TTL 604800 ; 1 week
1 PTR dc1.lan.net.
2 PTR dc2.lan.net.

Ich konnte den Fehler den samba_dnsupdate ausgespuckt hat gc._msdcs.lan.net failed nicht löse. sofern ich den Fehlenden EIntrag gesetz hatte verweigert bind die Arbeit aufgrund des kdc Fehlers. Auch einen Eintrag der Domänen GUID zauberte Bind immer wieder selbständig in die db und bemägelte dies als Failed. Wo dieser Eintrag her kommt weiß ich nicht. Ich habe mittel ldbsearch gegengeprüft kann die ObejktID aber nicht finden.

Vielleicht hilft dies dem Einen oder Anderen bei der Fehlersuche. Welche das bei mir im einzelnen waren kann ich nicht mehr nachvollziehen.
Es betraf: dns_update Fehler. Konfigurationsfehler in den db's. Status des Bind's fehlerhaft.

Gruß Andreas