Samba Server für Windows Shares und Active Directory Controller

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