Samba server jako člen Active Directory domény

Máme AD doménu např. nasead.local a jméno našeho linux stroje se jmenuje sambasrv

Nejprve nainstalujte samba-common libpam-krb5 krb5-config krb5-user

V /etc/resolv.conf' ověříme nastavení DNS. Jako nameserver použijeme stroj, na kterém běží DNS naší AD sítě <code> domain nasead.local search nasead.local nameserver 172.16.7.10 nameserver 172.16.7.9 </code> Do /etc/hosts přidáme IP adresu interface, na které bude probíhat spojení na DC server a pojmenujeme ji plným DNS jménem. tj <code> 127.0.0.1 localhost 172.16.7.73 sambasrv.nasead.local sambasrv </code> Nyní nastavíme Kerberos <file /etc/krb5.conf> [libdefaults] default_realm = NASEAD.LOCAL dns_lookup_realm = false dns_lookup_kdc = true ticket_lifetime = 24h # renew_lifetime = 7d [realms] NASEAD.LOCAL = { kdc = dc01.nasead.local kdc = dc02.nasead.local admin_server = dc01.nasead.local } </file> POZOR: zde musí být jako default_realm uvedena doména VELKÝMA PÍSMENAMA Jako kdc se uvednou fqdn jména doménových řadičů v naší síti, jako admin_server uvádím primární řadič Nyní přichází na řadu konfigurace smb.conf <file /etc/samba/smb.conf> #======================= Global Settings ======================= [global] server role = MEMBER SERVER security = ads realm = nasead.local workgroup = nasead netbios name = SAMBASRV client signing = yes client use spnego = yes kerberos method = secrets and keytab server string = Komentar #### Debugging/Accounting #### # This tells Samba to use a separate log file for each machine # that connects log file = /var/log/samba/log.%m log level = 5 # Cap the size of the individual log files (in KiB). max log size = 1000 encrypt passwords = yes winbind nss info = rfc2307 winbind trusted domains only = no winbind use default domain = yes winbind enum users = yes winbind enum groups = yes winbind refresh tickets = yes # Default ID mapping configuration for local BUILTIN accounts # and groups on a domain member. The default (*) domain: # - must not overlap with any domain ID mapping configuration! # - must use a read-write-enabled back end, such as tdb. idmap config * : backend = tdb idmap config * : range = 3000-7999 # - You must set a DOMAIN backend configuration idmap config nasead : backend = rid idmap config nasead : range = 10000-999999 vfs objects = acl_xattr map acl inherit = yes store dos attributes = yes winbind refresh tickets = yes domain master = no local master = no [share] comment = sdileny disk path = /home/SHARE valid users = @nejakaskupina, @administrators browseable = yes read only = no inherit acls = yes inherit permissions = yes </file> Následujícím krokem ověříme, že se dokážeme autentizovat k DC serveru <code> # kinit Administrator Password for Administrator@NASEAD.LOCAL: # klist </code> Pokud je vše OK, po zadání příkazu klist uvidíte vystavený kerberos ticket <code> Ticket cache: FILE:/tmp/krb5cc_0 Default principal: Administrator@NASEAD.LOCAL Valid starting Expires Service principal 06/05/2019 18:25:13 06/06/2019 04:25:13 krbtgt/NASEAD.LOCAL@NASEAD.LOCAL renew until 06/12/2019 18:24:56 </code> Pokud jste se dostal až sem, můžeme přistoupit k připojení samba serveru do domény. <code> # net ads join -U Administrator Enter administrator's password: Using short domain name – NASEAD Joined 'SAMBASRV' to dns domain 'nasead.local' </code> Pokud se nepovede, přidejte parametr -d 1 pro zobrazení debug hlášek. Stav připojení do domény mužete ověřit příkazem net ads status -U Administrator <code> Enter Administrator's password: objectClass: top objectClass: person objectClass: organizationalPerson objectClass: user objectClass: computer cn: sambasrv distinguishedName: CN=sambasrv,OU=Servers,DC=nasead,DC=local instanceType: 4 whenCreated: 20190607131211.0Z whenChanged: 20190617143204.0Z uSNCreated: 11206462 uSNChanged: 11255367 name: lih-zpsx001 objectGUID: 8fe38593-36b4-41e3-993a-77c506e589d userAccountControl: 69632 badPwdCount: 0 codePage: 0 countryCode: 0 badPasswordTime: 132052716929628168 lastLogoff: 0 lastLogon: 132052783714159406 localPolicyFlags: 0 pwdLastSet: 132043867314721394 primaryGroupID: 515 objectSid: S-1-5-21-2395078511-4245873061-2388994840-17615 accountExpires: 9223372036854775807 logonCount: 66 sAMAccountName: sambasrv$ sAMAccountType: 805306369 dNSHostName: sambasrv.nasead.local servicePrincipalName: HOST/sambasrv.nasead.local servicePrincipalName: HOST/SAMBASRV objectCategory: CN=Computer,CN=Schema,CN=Configuration,DC=nasead,DC=local isCriticalSystemObject: FALSE dSCorePropagationData: 20190607150627.0Z dSCorePropagationData: 16010101000001.0Z mS-DS-CreatorSID: S-1-5-21-2395078511-4245873061-2388994840-17613 lastLogonTimestamp: 132052555244011908 msDS-SupportedEncryptionTypes: 31 </code> Nyní nainstalujte samba attr winbind libpam-winbind libnss-winbind a nastartuje sambu. Pokud je naše samba členem domény, nastal čas pro nastartování démona winbind Potom do souboru /etc/nsswitch.conf přidáme možnost načtění uživatelů a skupin z ad. Přidejte winbind na konec řádku passwd a group <file /etc/nsswitch.conf> passwd: compat winbind group: compat winbind shadow: compat gshadow: files </file> Nyní můžeme otestovat wbinfo --ping-dc - musí zobrazit checking the NETLOGON for domain[NASEAD] dc connection to "dc01.nasead.local" succeeded
wbinfo -g - vypíše skupiny v AD
wbinfo -u - vypíše uživatele v AD
getent passwd - načte všechny uživatele - pokud uvidíte uživatele z AD ve tvaru linuxového passwd tak máte vyhráno.
getent group'' - načte všechny skupiny (stejné jméno pak použijeme ve valid user pro ověření práv ke sdílené složce)

# getent group | grep nejaka
nejakaskupina:x:31166:

Nyní lze používat klasicky nastavení práv přes chown atd. Ještě ověření funkční samby -

# smbclient -L sambasrv.nasead.local -U NASEAD\\Administrator
WARNING: The "syslog" option is deprecated
Enter NASEAD\Administrators's password:
Domain=[NASEAD] OS=[Windows 6.1] Server=[Samba 4.5.16-Debian]
Sharename Type Comment
--------- ---- -------
share Disk sdileny disk
IPC$ IPC IPC Service (Komentar)
Domain=[NASEAD] OS=[Windows 6.1] Server=[Samba 4.5.16-Debian]
Server Comment
--------- -------
SAMBASRV Komentar
Workgroup Master
--------- -------
NASEAD