Ez a dokumentum egy előző változata!
Tartalomjegyzék
Samba 4 AD telepítése RHEL/Almalinux 9 (x86_64) rendszeren.
A telepítéshez és az üzemeltetéshez szükséges dokumentáció a https://samba.tranquil.it/doc/en/ címen érhető el.
Előkészítés
Kiindulásként AlmaLinux 9 (x86_64) operációs rendszer telepítését kell elvégezni. A telepítés minimal telepítés.
Telepítést követő lépések
Módosítani kell a /etc/dnf/dnf.conf állományt a felesleges gyenge függőségek telepítésének tiltásához:
# if [ ! -f /etc/dnf/dnf.conf.orig ] ; then cp -a /etc/dnf/dnf.conf /etc/dnf/dnf.conf.orig && echo 'install_weak_deps=False' >> /etc/dnf/dnf.conf ; fi
Érdemes kikapcsolni a kernel üzenetek megjelenítését
# grubby --update-kernel=ALL --args=quiet
A SElinux-ot átmenetileg megengedő módba kell kapcsolni
# sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
Be kell állítani a rendszer locale-t en_US.UTF-8-ra
# localectl
Be kell állítani a rendszer hostnevét a kívánt gépnév + realm formában
# hostnamectl set-hostname dc1.adomain.lan
Samba 4 AD telepítése
Előkészítő műveletek
A telepítés előtt be kell állítani a gép hálózatát statikus IP-re. A példában a dc1.adomain.lan gép IP címe 192.168.110.11/24.
Fel kell venni a gép FQDN-t a /etc/hosts állományba
# cat > /etc/hosts <<EOF 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.110.11 dc1.adomain.lan EOF
Telepíteni kell az EPEL release csomagot
# dnf install epel-release
Telepíteni kell néhány kiegészítő csomagot
# dnf install bind-utils chrony krb5-workstation
Le kell tölteni és telepíteni kell a csomagok aláíró kulcsát
# curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-9 https://samba.tranquil.it/RPM-GPG-KEY-TISSAMBA-9
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3147 100 3147 0 0 16650 0 --:--:-- --:--:-- --:--:-- 16650
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-9
<code>
Létre kell hozni a samba csomagokat tartalmazó repo fájlt
<code>
# echo -e "[tis-samba]\nname=tis-samba\nbaseurl=https://samba.tranquil.it/redhat9/samba-4.20/\nenabled=1\ngpgcheck=1\ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-9\npriority=98" > /etc/yum.repos.d/tissamba.repo
Telepíteni kell a samba-dc csomagot
# dnf install samba-dc
Biztonsági másolatot kell készíteni a /etc/krb5.conf állományról
# [ ! -f /etc/krb5.conf.orig ] && cp -a /etc/krb5.conf /etc/krb5.conf.orig
Biztonsági másolatot kell készíteni a /etc/samba/smb.conf állományról (az állományt magát törölni kell).
# [ ! -f /etc/samba/smb.conf.orig ] && mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
Érdemes biztonsági másolatot készíteni a /var/lib/samba könyvtárról. Ez a könytár visszaállítható, ha a provisioning sikertelen.
# [ ! -d /var/lib/samba.orig ] && cp -a /var/lib/samba /var/lib/samba.orig
Tűzfal konfiguráció módosítása
# firewall-cmd --permanent --remove-service=cockpit --remove-service=dhcpv6-client success # firewall-cmd --permanent --add-service=samba-dc success # firewall-cmd --reload success # firewall-cmd --list-services samba-dc ssh
Samba 4 provision
A domain előkészítéséhez az alábbi utasítást kell futtatni
# samba-tool domain provision --use-rfc2307 --domain=ADOMAIN --realm=ADOMAIN.LAN --server-role=dc --host-name=dc1.adomain.lan INFO 2025-09-06 13:36:56,500 pid:17 /usr/lib64/python3.9/site-packages/samba/provision/__init__.py #2414: gkdi/gmsa root key added with guid 2a4c9b44-1396-beda-f6f7-b30e2970cf03 INFO 2025-09-06 13:36:56,500 pid:17 /usr/lib64/python3.9/site-packages/samba/provision/__init__.py #2425: A Kerberos configuration suitable for Samba AD has been generated at /var/lib/samba/private/krb5.conf INFO 2025-09-06 13:36:56,501 pid:17 /usr/lib64/python3.9/site-packages/samba/provision/__init__.py #2427: Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink! INFO 2025-09-06 13:36:56,556 pid:17 /usr/lib64/python3.9/site-packages/samba/provision/__init__.py #2086: Setting up fake yp server settings INFO 2025-09-06 13:36:56,628 pid:17 /usr/lib64/python3.9/site-packages/samba/provision/__init__.py #492: Once the above files are installed, your Samba AD server will be ready to use INFO 2025-09-06 13:36:56,628 pid:17 /usr/lib64/python3.9/site-packages/samba/provision/__init__.py #497: Server Role: active directory domain controller INFO 2025-09-06 13:36:56,628 pid:17 /usr/lib64/python3.9/site-packages/samba/provision/__init__.py #498: Hostname: dc1.adomain.lan INFO 2025-09-06 13:36:56,628 pid:17 /usr/lib64/python3.9/site-packages/samba/provision/__init__.py #499: NetBIOS Domain: ADOMAIN INFO 2025-09-06 13:36:56,629 pid:17 /usr/lib64/python3.9/site-packages/samba/provision/__init__.py #500: DNS Domain: adomain.lan INFO 2025-09-06 13:36:56,629 pid:17 /usr/lib64/python3.9/site-packages/samba/provision/__init__.py #501: DOMAIN SID: S-1-5-21-3755515453-789900971-4137546087
Be kell állítani az admin felhasználó jelszavát
# samba-tool user setpassword administrator New Password: Retype Password: Changed password OK
Át kell állítani a /etc/krb5.conf állományát
# rm -f /etc/krb5.conf # ln -s ../var/lib/samba/private/krb5.conf /etc/krb5.conf
Engedélyezni kell és el kell indítani a samba szolgáltatást
# systemctl --now enable samba
Ellenőrzések
Névfeloldáso
# host -t A hup.hu 127.0.0.1 hup.hu has address 92.119.122.43 # host -t A adomain.lan 127.0.0.1 Using domain server: Name: 127.0.0.1 Address: 127.0.0.1#53 Aliases: # host -t SRV _ldap._tcp.adomain.lan 127.0.0.1 Using domain server: Name: 127.0.0.1 Address: 127.0.0.1#53 Aliases: _ldap._tcp.adomain.lan has SRV record 0 100 389 dc1.adomain.lan.adomain.lan.
A tesztek végén módosítható a gép nameserver beállítása
# cat /etc/resolv.conf # Generated by NetworkManager search adomain.lan nameserver 127.0.0.1
Kerberos ellenőrzése
# kinit administrator@ADOMAIN.LAN Password for administrator@ADOMAIN.LAN: Warning: Your password will expire in 41 days on Sat 18 Oct 2025 01:46:03 PM CEST # klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@ADOMAIN.LAN Valid starting Expires Service principal 09/06/2025 14:17:40 09/07/2025 00:17:40 krbtgt/ADOMAIN.LAN@ADOMAIN.LAN renew until 09/07/2025 14:17:28
Ha nem működik, akkor törölni kell a /etc/krb5.conf szimbolikus linket és létre kell hozni a fájlt az alábbi tartalommal
# cat > /etc/krb5.conf <<EOF
[libdefaults]
default_realm = ADOMAIN.LAN
dns_lookup_realm = true
dns_lookup_kdc = true
[realms]
ADOMAIN.LAN = {
kdc = dc1.adomain.lan
admin_server = dc1.adomain.lan
}
EOF
Domain szintű ellenőrzések
# samba-tool domain level show Domain and forest function level for domain 'DC=adomain,DC=lan' Forest function level: (Windows) 2008 R2 Domain function level: (Windows) 2008 R2 Lowest function level of a DC: (Windows) 2008 R2 # samba-tool user list Guest krbtgt Administrator
Időszinkron beállítása
A tartományba léptetett Windows kliensek a tartományvezérlőt használják időszinkronként. Ennek beállításához szükséges a chrony konfigurációjának módosítása.
Általános műveletek
Listázzuk a jelenlegi jelszó beállításokat
# samba-tool domain passwordsettings show Password information for domain 'DC=adomain,DC=lan' Password complexity: on Store plaintext passwords: off Password history length: 24 Minimum password length: 7 Minimum password age (days): 1 Maximum password age (days): 42 Account lockout duration (mins): 30 Account lockout threshold (attempts): 0 Reset account lockout after (mins): 30
Módosítsunk néhány beállítást
# samba-tool domain passwordsettings set --complexity=off --min-pwd-age=0 --max-pwd-age=180 --min-pwd-length=5 --history-length=0 Password complexity deactivated! Password history length changed! Minimum password length changed! Minimum password age changed! Maximum password age changed! All changes applied successfully!
Ellenőrizzük a módosítást
# samba-tool domain passwordsettings show Password information for domain 'DC=adomain,DC=lan' Password complexity: off Store plaintext passwords: off Password history length: 0 Minimum password length: 5 Minimum password age (days): 0 Maximum password age (days): 180 Account lockout duration (mins): 30 Account lockout threshold (attempts): 0 Reset account lockout after (mins): 30
Felhasználó létrehozása
# samba-tool user add teszt.elek 12345678 --surname=Teszt --given-name=Elek User 'teszt.elek' added successfully # samba-tool user list Administrator teszt.elek krbtgt Guest # samba-tool user show teszt.elek dn: CN=Elek Teszt,CN=Users,DC=adomain,DC=lan objectClass: top objectClass: person objectClass: organizationalPerson objectClass: user cn: Elek Teszt sn: Teszt givenName: Elek instanceType: 4 whenCreated: 20250907181629.0Z whenChanged: 20250907181629.0Z displayName: Elek Teszt uSNCreated: 4286 name: Elek Teszt objectGUID: eaaebe56-2ea8-43c4-a3e3-cac45d4eb7dc badPwdCount: 0 codePage: 0 countryCode: 0 badPasswordTime: 0 lastLogoff: 0 lastLogon: 0 primaryGroupID: 513 objectSid: S-1-5-21-4057828206-964441470-1345394844-1104 accountExpires: 9223372036854775807 logonCount: 0 sAMAccountName: teszt.elek sAMAccountType: 805306368 userPrincipalName: teszt.elek@adomain.lan objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=adomain,DC=lan pwdLastSet: 134017425895426721 userAccountControl: 512 uSNChanged: 4288 distinguishedName: CN=Elek Teszt,CN=Users,DC=adomain,DC=lan
Felhasználó átnevezése
# samba-tool user rename teszt.elek --force-new-cn='Teszt Elek' Renamed CN of user "teszt.elek" from "Elek Teszt" to "Teszt Elek" successfully # samba-tool user show teszt.elek dn: CN=Teszt Elek,CN=Users,DC=adomain,DC=lan objectClass: top objectClass: person objectClass: organizationalPerson objectClass: user sn: Teszt givenName: Elek instanceType: 4 whenCreated: 20250907182955.0Z displayName: Elek Teszt uSNCreated: 4290 objectGUID: 9a3b3706-9934-4d04-8239-4d809059fad8 badPwdCount: 0 codePage: 0 countryCode: 0 badPasswordTime: 0 lastLogoff: 0 lastLogon: 0 primaryGroupID: 513 objectSid: S-1-5-21-4057828206-964441470-1345394844-1105 accountExpires: 9223372036854775807 logonCount: 0 sAMAccountName: teszt.elek sAMAccountType: 805306368 userPrincipalName: teszt.elek@adomain.lan objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=adomain,DC=lan pwdLastSet: 134017433955222440 userAccountControl: 512 cn: Teszt Elek name: Teszt Elek whenChanged: 20250907183000.0Z uSNChanged: 4293 distinguishedName: CN=Teszt Elek,CN=Users,DC=adomain,DC=lan
Felhasználó jelszavának alaphelyzetbe állítása
# samba-tool user setpassword teszt.elek New Password: Retype Password: Changed password OK
Felhasználó törlése
# samba-tool user delete teszt.elek Deleted user teszt.elek
Különleges műveletek
Jelszó kiolvasása
Alapértelmezetten a Samba/AD környezetben nem olvashatók a felhasználók jelszavai. Az alábbi módszer elérhetővé teszi a felhasználók jelszavait különböző formátumokban.
Telepítsük a rng-tools csomagot
# dnf install rng-tools
Indítsuk el az rngd programot
# rngd -r /dev/urandom
Hozzunk létre a root home könyvtárában egy samba-key állományt
Jelszó nélküli változat
# cat > ~/samba-key <<EOF %no-protection Key-Type: 1 Key-Length: 2048 Subkey-Type: 1 Subkey-Length: 2048 Name-Real: samba Name-Email: root@localhost Expire-Date: 0 %commit EOF
Jelszavas változat (nem javasolt)
# cat > ~/samba-key <<EOF Key-Type: 1 Key-Length: 2048 Subkey-Type: 1 Subkey-Length: 2048 Name-Real: samba Name-Email: root@localhost Expire-Date: 0 Passphrase: titkosjelszo123 %commit EOF
