Samba und AD-Domäne einrichten
Damit Samba als Active Directory-Domain Controller arbeiten kann, müssen wir diese Domäne jetzt erstellen und einrichten („provisionieren“).
samba-tool domain provisionWir verwenden dazu für diese Anleitung folgende Daten:
Nach diesen Eingaben wird die Domäne provisioniert, alle Datenbanken und Netzfreigaben erzeugt und die DNS-Einträge aktualisiert. Das dauert einen kleinen Moment und sieht im Erfolgsfall etwa so aus:
Rot markiert sind hier noch die Hinweise auf zwei nötige, gleich folgende Konfigurationsanpassungen.
Kerberos-Konfiguration übernehmen
Falls schon eine eigene Kerberos-Konfiguration existiert, muß der Inhalt der von Samba erzeugten Konfigurationsdatei /usr/local/samba/private/krb5.conf bestehende /etc/krb5.conf integriert werden. Ansonsten kann die aktuellen Konfiguration gesichert und danach einfach ersetzt werden:
mv /etc/krb5.conf /usr/local/samba/private/krb5.conf.original
cp /usr/local/samba/private/krb5.conf /etcDomäne in Bind integrieren und DNS-Dienst übernehmen
Zunächst muß in der Datei /usr/local/samba/private/named.conf die für unsere Bind-Version
9.9 zutreffende Konfiguration aktiviert und die andere auskommentiert werden:
-
dlz "AD DNS Zone" {
-
# For BIND 9.8.0 -
# database "dlopen /usr/local/samba/lib/bind9/dlz_bind9.so"; -
-
# For BIND 9.9.0 -
database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_9.so"; -
};
Anschließend wird diese Samba-Konfiguration in der Datei /usr/local/bind9/etc/named.conf eingebunden. Im folgenden Beispiel ist das die letzte Zeile:
-
include "/etc/bind/named.conf.options"; -
include "/etc/bind/named.conf.local"; -
include "/etc/bind/named.conf.default-zones"; -
include "/usr/local/samba/private/named.conf";
Optional: DNS-Weiterleitung
Um den Pi zu entlasten, können wir ihm einen Forwarder zur Verfügung stellen. Dazu kann ein öffentlicher DNS, der lokale Internetrouter und weitere Server in /usr/local/bind9/etc/named.conf.options ergänzt werden:
-
options { -
-
// ... andere Optionen ...
-
-
forward first; -
forwarders { -
192.168.1.1; // Lokaler Router -
8.8.8.8; // Google oder ein beliebiger anderer -
// Beliebige weitere externe DNS-Server.
-
// Jede Adresse muß mit einem Semikolon enden.
-
};
-
notify no; -
};
Wer statt Bind den eingebauten Samba-DNS nutzen will, kann bzw. muß stattdessen einen(!) Forwarder in der /usr/local/samba/etc/smb.conf eintragen:
-
[global] -
; ... -
; andere Optionen -
; ... -
dns forwarder = 192.168.1.1
-
allow dns updates = nonsecure and secure
x64-Support vorbereiten
Um später Druckertreiber auch für x64-Systeme hochladen zu können, müssen wir aufgrund von Windows-Konventionen einen x64-Server betreiben. Das ist der Pi zwar nicht, aber mit der folgenden Anpassung der /usr/local/samba/etc/smb.conf können wir ihn gegenüber Windows-Clients so tun lassen, als ob:
-
[global] -
; ... -
; andere Optionen -
; ... -
spoolss: architecture = Windows x64
Konfiguration prüfen
Nach einem Neustart beider Dienste ist es Zeit für ein paar Testkommandos:
service bind9custom restart
service samba4 start
host -t SRV _ldap._tcp.ad.example.com. localhost; host -t SRV _kerberos._udp.ad.example.com. localhostDabei sollte eine Antwort wie
Name: localhost
Address: 127.0.0.1#53
Aliases:
_ldap._tcp.ad.example.com has SRV record 0 100 389 raspberrypi.ad.example.com.
Name: localhost
Address: 127.0.0.1#53
Aliases:
_kerberos._udp.ad.example.com has SRV record 0 100 88 raspberrypi.ad.example.com.
herauskommen. Wenn das der Fall ist, kann unser Domain Controller die Rolle des lokalen Nameservers übernehmen.
DNS-Einstellungen/DHCP-Server umstellen
Sofern der Pi nicht bereits im lokalen Netz als Primärer DNS bekannt ist, wird das jetzt nachgeholt. Am einfachsten ist das mit DHCP, wo wir nur den DNS-Eintrag am DHCP-Server (bzw. in den DHCP-Optionen des Routers) anzupassen brauchen.
Wer kein DHCP nutzt, muß nun als DNS-Server-Adresse für jeden Computer im LAN die IP des Pi eintragen.
Als Suchdomäne (je nach System manchmal auch nur Domain o.ä.) wird, entweder am DHCP-Server oder an jedem Client einzeln, der Name unserer Domäne (hier: ad.example.com) eingetragen.
In beiden Fällen ist noch einmal ein Neustart fällig.
NTP testen
Spätestens jetzt sollte der NTP-Client, den wir zuvor bereits installiert haben, richtig funktionieren. Das läßt sich relativ einfach überprüfen:
ntpq -psollte etwas ähnliches wie dies ausgeben:
Kerberos testen
Zuletzt testen wir noch, ob Kerberos wie gewünscht funktioniert, denn ohne diesen Dienst würde der gesamte Controller niemals richtig arbeiten:
kinit administratorNach Eingabe des beim Provisionieren vergebenen Paßworts wird nun ein „Berechtigungsausweis“ („Ticket“) erstellt. Ob das funktioniert, überprüfen wir mit:
klistDas Ergebnis sollte in etwa so aussehen:
Admin-Privilegien vergeben
Zwei wichtige Rechte müssen jetzt noch an die Gruppe „Domain Admins“ vergeben werden. Der Namenspräfix AD wird dabei ggf. durch den tatsächlichen (Kurz-)Namen der Domäne ersetzt. Anschließend wird das Ergebnis kontrolliert:
net rpc rights grant 'AD\Domain Admins'\
SePrintOperatorPrivilege SeDiskOperatorPrivilege\
-Uadministrator
net rpc rights list accounts -UadministratorAls Paßwort dient wiederum das bei der Provisionierung erstellte. Bei Erfolg sieht das Ergebnis ungefähr so aus:



