Konfigurace Ubuntu-server jako Samba Active directory domain Controller

 návod aktualizován květen 2022

Návod je určen pro nejnovější verze UBUNTU 22.04, 20.04 a 18.04. Pro jiné systémy nutno upravit některé kroky. Jako první musíme provést po instalaci přípravné práce.

Pro server potřebujeme pevnou síťovou adresu. V nových verzích Ubuntu se pro určení síťové adresy používá program netplan s konfiguračním souborem /etc/netplan/50-cloud-init.yaml.
Přepíšeme podle tohoto vzoru:

# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
enp0s3:
addresses:
- 192.168.0.180/24
gateway4: 192.168.0.1
nameservers:
addresses:
- 192.168.0.180
- 192.168.0.1
search: []
optional: true
version: 2

Pro Ubuntu 22.04 musíme tuto konfiguraci trochu upravit.

# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        enp0s3:
            addresses:
            - 192.168.0.180/24
            nameservers:
                addresses:
                - 192.168.0.180
                - 192.168.0.1
                search: []
            routes:
                - to: default
                  via: 192.168.0.1
     optional: true 

Následně aktivujeme příkazem netplan aply nebo provedeme reboot.
Dále se musíme zbavit služby systemd-resolve která pro localhost používá port 53 – budeme potřebovat pro DNS server samby.
Provedeme postupně tyto příkazy a kroky:

sudo systemctl disable systemd-resolved.service
sudo service systemd-resolved stop

Smažeme symlink.

rm /etc/resolv.conf 

Soubor /etc/resolv.conf znovu vytvoříme.
Naplníme podle vzoru.

nameserver 127.0.0.53 
nameserver 192.168.0.1
domain DOMOV.LOCAL

Dbejte na to aby druhý Nameserver byl již plně funkční, localhost zatím nefunguje.
Provedeme změnu jména počítače na plné jméno včetně domény.
Nejdříve musíme zrušit ochranu změny hesla. V souboru /etc/cloud/cloud.cfg změníme:

preserve_hostname: false na preserve_hostname: true

Do souboru /etc/hostname zapíšeme jméno

Domena.domov.local

Provedeme úpravu souboru /etc/hosts.
Doplníme řádek domény.

127.0.0.1 localhost.localdomain localhost
192.168.0.180 Domena.domov.local
::1 localhost6.localdomain6 localhost6
The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Pozor, nekopírovat celý obsah souboru, pouze doplnit řádek domény. (Ostatní řádky se mohou lišit případ od případu,)

Provedeme restart serveru.
Základní přípravné práce máme za sebou a můžeme jít instalovat sambu.
Začneme instalací:

apt-get update
apt-get dist-upgrade
apt-get install samba krb5-user krb5-config winbind libpam-winbind libnss-winbind
systemctl unmask samba-ad-dc.service

V konfiguračních nastaveních kerberos zadáme default rearm velkými písmeny
DOMOV.LOCAL
Další dva servery Kerberos server a Administrative Kerberos server zadáme již stejně jako plné jméno našeho počítače.
Domena.domov.local
Provedeme přípravu pro nastavení Samby jako Domény.

sudo systemctl stop samba-ad-dc.service smbd.service nmbd.service winbind.service
sudo systemctl disable samba-ad-dc.service smbd.service nmbd.service winbind.service
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.initial

Nyní můžeme přistoupit přímo k provedení operace

sudo samba-tool domain provision --use-rfc2307 --interactive

Pro účely našeho příkladu zadáme postupně tyto konfigurační údaje

Realm: DOMOV.LOCAL
Domain: DOMOV
Server role: dc
DNS Backend: SAMBA_INTERNAL
DNS forwarder 192.168.0.1
Administrator password: ….
Retype password: ….

Nakonfigurujeme Kerberos

sudo mv /etc/krb5.conf /etc/krb5.conf.initial
cp /var/lib/samba/private/krb5.conf /etc/


Upravíme soubor /etc/krb5.conf podle tohoto vzoru

[libdefaults]
default_realm = DOMOV.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = false
[realms]
DOMOV.LOCAL = {
kdc = Domena.domov.local
admin_server = Domena.domov.local
default_domain = domov.local
}
[domain_realm]
.domov.local = DOMOV.LOCAL
domov.local = DOMOV.LOCAL

Znovu nastartujeme sambu

sudo systemctl start samba-ad-dc.service
sudo systemctl status samba-ad-dc.service
sudo systemctl enable samba-ad-dc.service


Provedeme kontrolu Kerberos

kinit administrator@DOMOV.LOCAL
klist


Možnost další kontroly:

sudo samba-tool domain level show