Alla tukku hyödyllisiä komentoja Samban debuggaukseen. Oletus on, että Samba AD DC ja Domain Member-palvelinten konfiguraatiot ovat pääosin kunnossa. Tähän pisteeseen päästään helpohkosti Puppet-Finland -projektin samba4-moduulilla. Täysin hands off -asennus on varsin haastava, joten debuggaustyökaluille tulee väistämättä tarvetta.
Tarkistetaan, onko member-nimisellä koneella jo machine account Samban LDAP:ssa, eli onko se jo liitetty domainiin:
$ net ads dn 'CN=member,CN=Computers,DC=smb,DC=domain,dc=com' cn -U administrator%password Got 1 replies cn: member
Tässä eräs toinen tapa selvittää, onko member-kone liitetty domainiin. Tähän vaaditaan Debianissa ldb-tools -paketin asentaminen ja komento on ajettava DC-koneella:
ldbsearch -H /var/lib/samba/private/sam.ldb.d/DC=SMB,DC=DOMAIN,DC=COM.ldb 'servicePrincipalName=HOST/Member'
Member-koneen liittäminen (Samba) Active Directory Domain Controlleriin:
$ net ads join -U administrator%password Using short domain name -- SMB Joined 'MEMBER' to dns domain 'smb.domain.com'
Member-koneen poistaminen domainista:
$ net ads leave -U administrator%password Deleted account for 'MEMBER' in realm 'SMB.DOMAIN.COM
Levyjaon (testshare) toimivuuden varmistaminen:
$ smbclient //member.smb.domain.com/testshare -UAdministrator%password -c 'ls' Domain=[SMB] OS=[Windows 6.1] Server=[Samba 4.2.14-Debian] . D 0 Tue Dec 20 18:40:13 2016 .. D 0 Wed Dec 21 10:44:14 2016 9717280 blocks of size 1024. 8038660 blocks available
Debian 8:ssa samba-ad-dc -palvelun käynnistys ei aina näyttäisi käynnistävän Samban Kerberos-palvelua, joka kuuntelee TCP-portissa 88. Ilman Kerberosta AD DC ei tietenkään toimi, joten sen toimivuuden voi tarkistaa esim. seuraavasti:
$ netstat -plnt|grep :88 tcp 0 0 0.0.0.0:88 0.0.0.0:* LISTEN 668/samba tcp6 0 0 :::88 :::* LISTEN 668/samba
Tätä lähestymistapaa käytetään myös samba4-puppet-moduulin samba-ad-dc.monit.erb -tiedostossa.
Toinen, vielä varmempi tapa varmistua Kerberoksen toiminnasta on pyytää siltä tiketti:
$ kinit administrator Password for [email protected]: Warning: Your password will expire in 41 days on Tue 31 Jan 2017 05:31:40 PM EET
Jos Kerberos ei ole käynnissä, on syytä käynnistää koko samba-ad-dc -palvelu uudelleen:
$ systemctl restart samba-ad-dc
Member-koneilla, joille halutaan kirjautua AD-käyttäjinä, tarvitaan winbind-palvelu, joka on integroitava Linuxin PAM-järjestelmään (pluggable authentication modules). Winbindin toiminnan voi varmistaa getent -komennolla:
$ getent passwd|grep krbtgt krbtgt:*:10502:10513:krbtgt:/home/SMB/krbtgt:/bin/bash
Jos winbind ei toimi oikein, yllä oleva komento ei tulosta mitään.
Yleensä halutaan myös sallia sshd:n autentikoida käyttäjät Kerberoksella. Tähän riittää pieni lisäys /etc/ssh/sshd_config -tiedostoon:
KerberosAuthentication yes
AD-käyttäjien oikeudet voi selvittää seuraavasti:
$ net rpc rights list accounts -U administrator%password -I dc1.smb.domain.com BUILTINPrint Operators SeLoadDriverPrivilege SeShutdownPrivilege SeInteractiveLogonRight BUILTINAccount Operators SeInteractiveLogonRight --- snip --- BUILTINPre-Windows 2000 Compatible Access SeRemoteInteractiveLogonRight SeChangeNotifyPrivilege
Oikeuksia voidaan lisätä seuraavasti:
$ net rpc rights grant 'SMBDomain Admins' SeDiskOperatorPrivilege -U administrator%password -I dc1.smb.domain.com
Ei pidä myöskään unohtaa systemctl-komentoja kuten
$ systemctl status samba-ad-dc $ journalctl -n 0 -f --unit=samba-ad-dc $ journalctl -n 50 /usr/sbin/winbind
Lopuksi vielä tukku hyödyllisiä linkkejä debuggauksen avuksi:
- Samba Wiki: Setting up Samba as an Active Directory Domain Controller
- Samba Wiki: Samba AD DC Troubleshooting
- Samba Wiki: Setting up Samba as a Domain Member
- Samba Wiki: Shares with Windows ACLs
- Samba Wiki: Shares with POSIX ACLs
- MIT Kerberos Documentation: krb5.conf
- man smb.conf