Chase Whitener
2011-Sep-13 17:50 UTC
[Samba] Domain Member keytabs invalid after Password Change
We have a 2008r2 AD domain. We join Linux machines as domain members using
Samba with Winbind (I'll show all of my config files below). This portion
of our setup works without failures of any kind. However, some of these
machines are web servers for Intranet stuff and we'd like to have SSO
working. For this, we use Apache (HTTPD) plus mod_auth_kerb (requires a
keytab file). So, since we're already joining the machines to the domain
with Samba, we thought it would be smart to just generate the keytab files
with net ads.
export KRB5_KTNAME=FILE:/etc/www.keytab
net ads keytab create -Udomain-admin (requires a password, so this can't be
scripted and run in cron)
net ads keytab add HTTP -Udomain-admin (requires a password, so this can't
be scripted and run in cron)
unset KRB5_KTNAME
chown apache /etc/www.keytab
service httpd restart
However, when Samba changes the machine account's password (seemingly
randomly), those keytab files are no longer valid and have to be
regenerated. Is there some way for those keytab files to be updated
automatically when Samba updates the machine account, or some setting to
stop Samba from updating that password? And alternatively, are we doing
things in a completely wrong way? I apologize for writing a book here, but
without all of the background info, you may not be able to help. Here's my
config files for a machine:
----------------------------------
AD 2008 R2 domain controllers. (ad.foo.com for example purposes)
CentOS 6 domain member:
[root at wolf ~]# yum list installed | grep samba
samba.x86_64 3.5.4-68.el6_0.2 @updates
samba-client.x86_64 3.5.4-68.el6_0.2 @updates
samba-common.x86_64 3.5.4-68.el6_0.2 @updates
samba-winbind.x86_64 3.5.4-68.el6_0.2 @updates
samba-winbind-clients.x86_64
krb5.conf
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = AD.FOO.COM
dns_lookup_realm = true
dns_lookup_kdc = true
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
clock_skew = 300
default_tgs_enctypes = RC4-HMAC DES-CBC-CRC DES-CBC-MD5
default_tkt_enctypes = RC4-HMAC DES-CBC-CRC DES-CBC-MD5
default_tks_enctypes = RC4-HMAC DES-CBC-CRC DES-CBC-MD5
preferred_enctypes = RC4-HMAC DES-CBC-CRC DES-CBC-MD5
[realms]
EXAMPLE.COM = {
kdc = kerberos.example.com
admin_server = kerberos.example.com
}
[domain_realm]
.infotechfl.com = AD.FOO.COM
infotechfl.com = AD.FOO.COM
.ad.infotechfl.com = AD.FOO.COM
ad.infotechfl.com = AD.FOO.COM
smb.conf
[global]
workgroup = AD
netbios name = Wolf
server string = Wolf
security = ADS
realm = AD.FOO.COM
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
allow trusted domains = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = no
obey pam restrictions = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = no
idmap uid = 1000-50000000
idmap gid = 1000-50000000
winbind separator = +
winbind use default domain = yes
winbind enum users = No
winbind enum groups = No
winbind nested groups = Yes
template shell = /bin/bash
template homedir = /home/%U
winbind cache time = 3600
winbind refresh tickets = yes
winbind offline logon = false
winbind refresh tickets = yes
client NTLMv2 auth = yes
restrict anonymous = 2
disable netbios = no
#handle charsets
dos charset = ASCII
unix charset = UTF8
display charset = UTF8
#kill printers
load printers = no
show add printer wizard = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
[homes]
comment = Home Directories
read only = No
browseable = no
writable = yes
nsswitch.conf is pointing to winbind in the proper places and
/etc/pam.d/pertinent_files are looking at pam_winbind and are therefore not
affected.
Thanks,
Chase
Dirk Gouders
2011-Sep-19 07:10 UTC
[Samba] Domain Member keytabs invalid after Password Change
Chase Whitener <chase.whitener at infotechfl.com> writes:> We have a 2008r2 AD domain. We join Linux machines as domain members using > Samba with Winbind (I'll show all of my config files below). This portion > of our setup works without failures of any kind. However, some of these > machines are web servers for Intranet stuff and we'd like to have SSO > working. For this, we use Apache (HTTPD) plus mod_auth_kerb (requires a > keytab file). So, since we're already joining the machines to the domain > with Samba, we thought it would be smart to just generate the keytab files > with net ads. > > export KRB5_KTNAME=FILE:/etc/www.keytab > net ads keytab create -Udomain-admin (requires a password, so this can't be > scripted and run in cron) > net ads keytab add HTTP -Udomain-admin (requires a password, so this can't > be scripted and run in cron) > unset KRB5_KTNAME > chown apache /etc/www.keytab > service httpd restart > > However, when Samba changes the machine account's password (seemingly > randomly), those keytab files are no longer valid and have to be > regenerated. Is there some way for those keytab files to be updated > automatically when Samba updates the machine account, or some setting to > stop Samba from updating that password? And alternatively, are we doing > things in a completely wrong way? I apologize for writing a book here, but > without all of the background info, you may not be able to help. Here's my > config files for a machine:Hi Chase, I did not see an answer to your question and would like to ask if you received any help with your problem or solved it some other way. Regards, Dirk