Basics
Samba 4 kann als Domänencontroller benutzt werden. Im Netz gibt es viele Anleitungen. Wie so häufig ist vieles davon veraltet und man muss sich die relevanten Infos aus unterschiedlichen Quellen zusammen stückeln.
Achtung: man braucht Samba 4.20 und höher, um im AD den functional level 2016 zu erreichen.
https://samba.tranquil.it/doc/en/samba_config_server/redhat/server_install_samba_redhat.html
Basisinstallation
(hier mit Debian 13)
apt install samba smbclient winbind libnss-winbind krb5-user acl samba-ad-dc
Evtl. alte config rausmwerfen
mv /etc/samba/smb.conf /etc/samba/smb.conf.old
Provisionieren
samba-tool domain provision
Danach die Domain Daten und das Admin Passwort angeben
[root@ samba]$ samba-tool domain provision
Realm: netzwissen.loc
Domain [netzwissen]: smb01
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [192.168.178.1]:
Administrator password:
Retype password:
Dann rattern die Python Skripte los
[...]
Applied Domain Update 78: c3c927a6-cc1d-47c0-966b-be8f9b63d991
Applied Domain Update 79: 54afcfb9-637a-4251-9f47-4d50e7021211
Applied Domain Update 80: f4728883-84dd-483c-9897-274f2ebcf11e
[...]
In der /etc/samba/smb.conf muss noch eine Zeile dazu:
# Global parameters
[global]
dns forwarder = 192.168.178.1
netbios name = ODYSSEUS4
realm = NETZWISSEN.LOC
server role = active directory domain controller
workgroup = SMB01
# add the line in [global] section
ad dc functional level = 2016
[sysvol]
path = /var/lib/samba/sysvol
read only = No
[netlogon]
path = /var/lib/samba/sysvol/netzwissen.loc/scripts
read only = No
DNS umstellen, sodaß der lokale DNS (der DC selbst) benutzt wird: /etc/resolv.conf
search netzwissen.loc
nameserver 127.0.0.1
Kerberos config umkopieren:
cp /var/lib/samba/private/krb5.conf /etc/
Systemd: Services konfigurieren
systemctl disable --now smbd nmbd winbind systemd-resolved
systemctl mask smbd nmbd winbind
systemctl unmask samba-ad-dc
systemctl enable --now samba-ad-dc
Danach die DC Konfig prüfen
samba-tool domain info 192.168.50.4
Unknown parameter encountered: "ad dc functional level"
Ignoring unknown parameter "ad dc functional level"
Forest : dvdsdnet2.devoteam.de
Domain : dvdsdnet2.devoteam.de
Netbios domain : DVDSDNET2
DC name : dcfiles03.dvdsdnet2.devoteam.de
DC netbios name : DCFILES03
Server site : Default-First-Site-Name
Client site : Default-First-Site-Name
root@dcfiles03:~# samba-tool domain level show
Unknown parameter encountered: „ad dc functional level“
Ignoring unknown parameter „ad dc functional level“
Domain and forest function level for domain ‚DC=dvdsdnet2,DC=devoteam,DC=de‘
Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2
Functional level erhöhen
root@dcfiles03:~# samba-tool domain level show
Unknown parameter encountered: „ad dc functional level“
Ignoring unknown parameter „ad dc functional level“
Domain and forest function level for domain ‚DC=dvdsdnet2,DC=devoteam,DC=de‘
Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2
samba-tool domain functionalprep --function-level=2016
samba-tool domain level raise --domain-level=2016 --forest-level=2016