Sekalaisia komentoja Samban debuggaukseen

December 21, 2016 – Samuli Seppänen

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:

Did you like the article? Share it with others!
Categories
#aad #Access #acl #alertmanager #ansible #ansible module development #Apache #API #augeas #authentication #authorization #automation #automatization #aws #azure #backup #bash #bitbucket #buildbot #cache #centos #cloud #cloud-init #cloudflare #cloudfront #cluster #connectionsJpa #control repo #custom fact #database #debian #devops #digital sovereignty #DNS #docker #domain mode #duplo #edenred #ejabberd #email #encryption #erb #europe #eyaml #fabric #facter #facts #fargate #fedora #file #finnish #foreman #freeipa #git #github #gitlab #gnome #google #grafana #hammer #hiera #IAM #import #infinispan #Infrastructure as Code #ipmi #irc #jboss #jdk #jenkins #JMESPath #json #kanban #keycloak #letsencrypt #librarian-puppet #librenms #linkedin #Linux #Location #loop #marketing #mautic #Mellon #mfa #microsoft #monitoring #mysql #nagios #network-manager #oauth #oauth2 #office365 #oidc #openshift #open source #openvpn #oxygen #packer #paranormal #pdk #people #php #pkcs7 #pomodoro #Powershell #preseed #presentation #profiles #prometheus #provisioning #puppet #puppet-bolt #puppet-litmus #puppetboard #puppetdb #Puppetfile #puppetserver #puppet types and providers #pxeboot #qemu #quality #r10k #rds #recruitment #redirect #Restrict #Reverse Proxy #robotframework #roles #rspec #ruby #SAML #selinux #sem #shell #showsql #snmp #snmpd #software developement #spam #ssh #sso #standardization #systemd #systemd-resolved #teams #terraform #twilio #ubuntu #user-data #vagrant #vanity awards #variable #vim #virtualbox #visualstudio #webdevelopment #wildfly #Windows #wireguard #wordpress #workflow #x11 #xmpp #zimbra
We are
 Puppeteers
menucross-circle