====== 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ě domain nasead.local search nasead.local nameserver 172.16.7.10 nameserver 172.16.7.9 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 127.0.0.1 localhost 172.16.7.73 sambasrv.nasead.local sambasrv Nyní nastavíme Kerberos - /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 } **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 #======================= 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 Následujícím krokem ověříme, že se dokážeme autentizovat k DC serveru # kinit Administrator Password for Administrator@NASEAD.LOCAL: # klist Pokud je vše OK, po zadání příkazu **klist** uvidíte vystavený kerberos ticket 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 Pokud jste se dostal až sem, můžeme přistoupit k připojení samba serveru do domény. # net ads join -U Administrator Enter administrator's password: Using short domain name -- NASEAD Joined 'SAMBASRV' to dns domain 'nasead.local' 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%%'' 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 **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 passwd: compat winbind group: compat winbind shadow: compat gshadow: files 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