Doug Sampson
2010-Oct-28 23:34 UTC
[Samba] Kerberos5 ticket renewal & 'net ads join' w/o authentication
Hello, I have two issues with Kerberos administration using Samba and this results from my lack of familiarity with it. I am hoping someone can point me in the right direction. The first issue is with automatically renewing the Kerberos tickets. The second issue deals with my having to authenticate each time I attempt to join an AD domain. The Samba documentation indicates that I should *not* have to authenticate when holding a valid Kerberos ticket. When I join an AD domain using administrator credentials, I can basically administer a Samba server well. 'getent passwd' and 'getent group' works as expected. I'm running FreeBSD 8.1 using Samba 3.4.9 and using the base Heimdal. The AD domain is a W2K3 domain in mixed mode. I basically used the information from this link listed below to build the configuration files listed below: http://wiki.samba.org/index.php/Samba_%26_Active_Directory I also looked at several other sources such as : http://www.freebsd.org/doc/handbook/kerberos5.html The bottom line is that I'd like to receive a Kerberos ticket using proper authentication and use it to execute the 'net ads join' command without authenication and then continue to renew the ticket automatically. Now, what changes do I need to do in order to 1) automatically renew Kerberos tickets and 2) be able to execute the 'net ads join' command without supplying a password? Any pointers/assistance would be greatly appreciated! If I've left out relevant information, please don't hesitate to let me know. ~Doug Here are the configuration files for the various components: =============== /etc/krb5.conf ============== [libdefaults] default_realm = DOMAIN.LOCAL forwardable = true [appdefaults] default_realm = DOMAIN.LOCAL pam = { forwardable = true krb4_convert = false debug = false ticket_lifetime = 36000 renew_lifetime = 36000 } [realms] DOMAIN.LOCAL = { kdc = aquila.domain.local:88 kdc = amd90001.domain.local:88 admin_server = aquila.domain.local:749 kpasswd_server = aquila.domain.local:464 kpasswd_protocol = SET_CHANGE default_domain = domain.local } [domain_realm] domain.local = DOMAIN.LOCAL .domain.local = DOMAIN.LOCAL .DOMAIN.LOCAL = DOMAIN.LOCAL [logging] default = FILE:/var/log/krb5lib.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log =============== /usr/local/etc/smb.conf =============== #======================= Global Settings ====================================[global] security = ads realm = DOMAIN.LOCAL ;workgroup = DOMAIN workgroup = DOMAIN ;password server = aquila.domain.local password server = * server string = TEST netbios name = test encrypt passwords = yes ldap ssl = no client use spnego = yes unix extensions = no name resolve order = hosts dns wins lmhosts bcast wins server = 192.168.xxx.xxx socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE load printers = no disable spoolss = yes # Log settings log level = 1 log file = /var/log/samba/log.%m max log size = 50 syslog = 1 # Browser settings local master = no domain master = no preferred master = no # ACL settings inherit acls = yes acl compatibility = auto acl check permissions = true acl map full control = true dos filemode = yes # Config domain security ;idmap backend = ad ;idmap alloc config: range = 50001 - 60000 idmap uid = 50001 - 60000 idmap gid = 50001 - 60000 ;idmap config MYDOMAIN:default = yes ;idmap config MYDOMAIN:backend = ad ;idmap config MYDOMAIN:range = 10000 - 50000 ;idmap config MYDOMAIN:schema-mode = sfu hosts allow = 192.168.101., 192.168.102., 127., 10.8. # Winbind settings # Enable offline logon support winbind offline logon = yes winbind enum users = yes winbind enum groups = yes winbind nested groups = yes winbind separator = - winbind use default domain = no allow trusted domains = no ;client schannel = no winbind refresh tickets = yes # client settings ;template homedir = /usr/home/%D/%U admin users = @"DOMAIN-domain admins" #============================ Share Definitions ============================= [install-public] comment = /home/install browseable = yes path = /home/install writable = yes create mask = 0774 directory mask = 0774 valid users = @"DOMAIN-domain admins" Samba was installed using the following options: OPTIONS= LDAP "With LDAP support" off \ ADS "With Active Directory support" on \ CUPS "With CUPS printing support" on \ WINBIND "With WinBIND support" on \ SWAT "With SWAT WebGUI" off \ ACL_SUPPORT "With ACL support" on \ AIO_SUPPORT "With Asyncronous IO support" on \ FAM_SUPPORT "With File Alteration Monitor" off \ SYSLOG "With Syslog support" off \ QUOTAS "With Disk quota support" off \ UTMP "With UTMP accounting support" off \ PAM_SMBPASS "With PAM authentication vs passdb backends" off \ DNSUPDATE "With dynamic DNS update(require ADS)" off \ AVAHI "With Bonjour service discovery support" off \ EXP_MODULES "With experimental modules" off \ POPT "With system-wide POPT library" on \ MAX_DEBUG "With maximum debugging" off \ SMBTORTURE "With smbtorture" off =============== /etc/nsswitch.conf =============== # # nsswitch.conf(5) - name service switch configuration file # $FreeBSD: src/etc/nsswitch.conf,v 1.1.10.1 2009/08/03 08:13:06 kensmith Exp $ # #group: compat group: files winbind group_compat: nis #hosts: files dns wins hosts: files dns networks: files #passwd: compat passwd: files winbind passwd_compat: nis shells: files services: compat services_compat: nis protocols: files rpc: files
Philipoff, Andrew
2010-Oct-28 23:58 UTC
[Samba] Kerberos5 ticket renewal & 'net ads join' w/o authentication
> Hello, > > I have two issues with Kerberos administration using Samba and this results > from my lack of familiarity with it. I am hoping someone can point me in the > right direction. > > The first issue is with automatically renewing the Kerberos tickets. The > second issue deals with my having to authenticate each time I attempt to join > an AD domain. The Samba documentation indicates that I should *not* have > to authenticate when holding a valid Kerberos ticket. When I join an AD > domain using administrator credentials, I can basically administer a Samba > server well. 'getent passwd' and 'getent group' works as expected. > > I'm running FreeBSD 8.1 using Samba 3.4.9 and using the base Heimdal. > The AD domain is a W2K3 domain in mixed mode. > > I basically used the information from this link listed below to build the > configuration files listed below: > > http://wiki.samba.org/index.php/Samba_%26_Active_Directory > > I also looked at several other sources such as : > > http://www.freebsd.org/doc/handbook/kerberos5.html > > The bottom line is that I'd like to receive a Kerberos ticket using proper > authentication and use it to execute the 'net ads join' command without > authenication and then continue to renew the ticket automatically. > > Now, what changes do I need to do in order to 1) automatically renew > Kerberos tickets and 2) be able to execute the 'net ads join' command > without supplying a password? > > Any pointers/assistance would be greatly appreciated! If I've left out > relevant information, please don't hesitate to let me know. > > ~DougDoug, To address the Kerberos ticket issue, on my RHEL 5.5 servers, I enabled "use Kerberos keytab" in my smb.conf: 1. Edit your smb.conf, add "use kerberos keytab = YES" Run testparm Restart Samba 2. Create a kerberos keytab in the location is defined in your krb5.conf file. Mine has "default_keytab_name = FILE:/etc/krb5.keytab" in the [libdefaults] section : net ads keytab create 3. Verify the contents of the Kerberos keytab file: klist -ke Keytab name: FILE:/etc/krb5.keytab KVNO Principal ---- -------------------------------------------------------------------------- 3 host/server1.domain.forest.org @ DOMAIN.FOREST.ORG (DES cbc mode with CRC-32) 3 host/server1.domain.forest.org@ DOMAIN.FOREST.ORG (DES cbc mode with RSA-MD5) 3 host/server1.domain.forest.org@ DOMAIN.FOREST.ORG (ArcFour with HMAC/md5) 3 host/SERVER1 at DOMAIN.FOREST.ORG (DES cbc mode with CRC-32) 3 host/SERVER1 at DOMAIN.FOREST.ORG (DES cbc mode with RSA-MD5) 3 host/SERVER1 at DOMAIN.FOREST.ORG (ArcFour with HMAC/md5) 3 SERVER1$@DOMAIN.FOREST.ORG (DES cbc mode with CRC-32) 3 SERVER1$@DOMAIN.FOREST.ORG (DES cbc mode with RSA-MD5) 3 SERVER1$@DOMAIN.FOREST.ORG (ArcFour with HMAC/md5) 4 host/server1.domain.forest.org at DOMAIN.FOREST.ORG (DES cbc mode with CRC-32) 4 host/server1.domain.forest.org at DOMAIN.FOREST.ORG (DES cbc mode with RSA-MD5) 4 host/server1.domain.forest.org at DOMAIN.FOREST.ORG (ArcFour with HMAC/md5) 4 host/SERVER1 at DOMAIN.FOREST.ORG (DES cbc mode with CRC-32) 4 host/SERVER1 at DOMAIN.FOREST.ORG (DES cbc mode with RSA-MD5) 4 host/SERVER1 at DOMAIN.FOREST.ORG (ArcFour with HMAC/md5) 4 SERVER1$@DOMAIN.FOREST.ORG (DES cbc mode with CRC-32) 4 SERVER1$@DOMAIN.FOREST.ORG (DES cbc mode with RSA-MD5) 4 SERVER1$@DOMAIN.FOREST.ORG (ArcFour with HMAC/md5) However I do not know how to enable the execution the 'net ads join' command without supplying a password. Regards, Andrew Philipoff Infrastructure Coordinator UCSF Department of Medicine - IT Services