Samba Server für Windows Shares

SMBclient Basics

Anonyme Anmeldung

thommie@locutus:~> smbclient -N -L ``//192.168.72.22``
Anonymous login successful
Sharename Type Comment
--------- ---- -------
Ontrack Disk
IPC$ IPC IPC Service (omv server)
SMB1 disabled -- no workgroup available

User-Anmeldung

thommie@locutus:~> smbclient -U thommie -L ``//192.168.72.22``
Password for [WORKGROUP\thommie]:

Samba als Active Directory Controller

Samba 4 kann als Domänen-Controller 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