Szenario
Ich habe mit Windows Server 2012R2 und SAMBA4 eine Active-Directory-Domäne MYDOM.LOCAL aufgebaut.
Ich möchte mit SAMBA4 einen Dateiserver mit dem Namen LINFS als „Member Server“ zu dieser Domäne hinzufügen. Das Betriebssystem ist Debian GNU/Linux „jessie/sid“; die verwendete Version von SAMBA4 ist 4.1.12.
AD-Domänenbenutzer sollen sich auch per SSH auf LINFS.MYDOM.LOCAL anmelden können, um dort Dateien direkt zu bearbeiten.
Ziel dieses Tutorials soll es sein, einen funktionstüchtigen Server mit SAMBA4 in einer AD-Domäne zu implementieren, auf dem sich AD-Benutzer auch anmelden können, um Dateien direkt zu bearbeiten oder Linux-Anwendungen zu benutzen.
Damit sind die Grundlagen geschaffen, um eine Serverlandschaft für AD-Domänen mit SAMBA4 zu verwirklichen. Spezialprobleme wie Druckerfreigaben, Terminal-Dienste, Netlogon-Skripten, einheitliche Home-Verzeichnisse usw. können danach auf dieser Grundlage behandelt werden.
UNIX-Attribute in Active Directory pflegen
In AD kann durch Bearbeiten der „UNIX-Attribute“ eines Benutzers eine Login-Shell, ein Homeverzeichnis und eine UNIX-User-ID für Domänenbenutzer festgelegt werden. Auf einem 2012R2 DC kann dafür das Feature „NIS Service“ hinzugefügt werden. Das geht in einer Eingabeaufforderung als Administrator mit folgendem Kommando:
C:\Windows\system32> Dism.exe /online /enable-feature /featurename:adminui /featurename:nis /all
Dies fügt dem Eigenschafts-Dialog von AD-Gruppen und -Benutzern den Reiter „UNIX-Attribute“ hinzu:
SAMBA4 auf LINFS installieren
Ich installiere SAMBA4 Version 4.1.12 durch Kompilieren aus dem Quellcode:
samba# ./configure --sysconfdir=/etc/samba --with-shared-modules=idmap_ad
samba# make
samba# make install
Hinweis: Wie in meinem vorangegangenen Beispielen möchte ich nur die Konfigurationsdatei smb.conf im offiziellen Debian-Verzeichnis /etc/samba pflegen, die Installation der anderen Dateien soll in das Standard-Verzeichnis /usr/local/samba erfolgen, um nicht von Installationen von Debian-Paketen überschrieben zu werden.
Hinweis: Das Modul idmap_ad für Winbind-ID-Mapping muss beim Aufruf von configure ausdrücklich angefordert werden.
SAMBA4 auf LINFS konfigurieren
Die Datei /etc/samba/smb.conf enthält folgende Einstellungen mitsamt der Definition einer Test-Freigabe test1:
[global]
netbios name = LINFS
workgroup = MYDOM
security = ADS
realm = MYDOM.LOCAL
encrypt passwords = yes
idmap config *:backend = tdb
idmap config *:range = 70001-80000
idmap config MYDOM:backend = ad
idmap config MYDOM:schema_mode = rfc2307
idmap config MYDOM:range = 500-40000
winbind nss info = rfc2307
winbind trusted domains only = no
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
server signing = auto
client signing = auto
[test1]
path = /srv/shares/test1
read only = no
Winbind als NSS-Bibliothek verfügbar machen
~# ln -s \
/usr/local/samba/lib/libnss_winbind.so \
/lib/x86_64-linux-gnu/
~# ln -s \
/lib/x86_64-linux-gnu/libnss_winbind.so \
/lib/x86_64-linux-gnu/libnss_winbind.so.2
~# ldconfig
Winbind für NSS verwenden
In der Datei /etc/nsswitch.conf ändere ich die Einträge für passwd und group wie folgt:
passwd: compat winbind
group: compat winbind
LINFS als „Member Server“ der Domäne MYDOM.LOCAL hinzufügen
Nun führe ich den ADS-Join in die Domäne MYDOM.LOCAL durch:
/usr/local/samba/bin/net ads join \
osName=DebianLinux osVer=7.6.0 \
-U administrator
Wenn ich im AD eine Organisationseinheit SiteNetwork/Servers erstellt habe, kann ich LINFS auch gleich dort hineinversetzen:
/usr/local/samba/bin/net ads join \
createcomputer=SiteNetwork/Servers \
osName=DebianLinux osVer=7.6.0 \
-U administrator
SAMBA4-Dienste auf LINFS starten
~# /usr/local/samba/sbin/nmbd
~# /usr/local/samba/sbin/smbd
~# /usr/local/samba/sbin/winbindd
PAM-Winbind aktivieren
Um die Anmeldung für Domänenbenutzer zu erlauben, muss das von SAMBA4 mitgelieferte PAM-Modul für Winbind verfügbar gemacht werden:
~# ln -si /usr/local/samba/lib/security/pam_winbind.so /lib/x86_64-linux-gnu/security
Zur Datei /etc/pam.d/common-account muss folgende Zeile vor allen anderen Zeilen eingefügt werden:
account sufficient pam_winbind.so
Zur Datei /etc/pam.d/common-auth muss folgende Zeile vor allen anderen Zeilen eingefügt werden:
auth sufficient pam_winbind.so
Optional: Home-Verzeichnis automatisch erstellen
In /etc/pam.d/common-account kann folgende Zeile nach allen anderen Zeilen hinzugefügt werden (das wird ein fehlendes Homeverzeichnis für Domänenbenutzer bei deren erster Anmeldung automatisch erzeugen):
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
Hinweis: Wenn in AD ein neuer Benutzer erstellt wurde, kann es wegen Replikation mehrere Minuten dauern, bis dieser für den Member-Server sichtbar wird.
- SAMBA4 Domain Controller zu existierender W2012R2 AD Domäne hinzufügen
- Anmeldung von AD-Domänenbenutzern auf Linux mit SSSD und PAM
- Active Directory Member Server mit SAMBA4 und PAM-Winbind
- AD-Precreation using ktutil, kinit and adcli
- Taking an Online Backup of a SAMBA-4 ActiveDirectory
- Comparing Distinguished LDAP Names