Update Kerberos on our Servers
The kerberos servers were installed long ago when DES was the primary encryption. We need to change to using newer more secure algorithms.
See
http://web.mit.edu/kerberos/krb5-devel/doc/admin/advanced/retiring-des.html for details.
On linat03 issued:
enctypes=aes256-cts-hmac-sha1-96:normal,aes128-cts-hmac-sha1-96:normal,des3-hmac-sha1:normal,arcfour-hmac-md5:normal,des-cbc-crc:normal
kadmin.local -r ATLAS.UMICH.EDU -q "cpw -e ${enctypes} -randkey -keepold krbtgt/ATLAS.UMICH.EDU"
Then make sure the updated keys are propagated to the slaves:
[linat03:etc]# bash /etc/cron.hourly/kprop
Database propagation to linat04.grid.umich.edu: SUCCEEDED
Database propagation to linat02.grid.umich.edu: SUCCEEDED
Now let's get the updated kdc.conf in place on the slaves:
[linat03:etc]# scp /var/kerberos/krb5kdc/kdc.conf linat02:/var/kerberos/krb5kdc/kdc.conf
Scientific Linux SL release 5.4 (Boron)
kdc.conf 100% 725 0.7KB/s 00:00
[linat03:etc]# scp /var/kerberos/krb5kdc/kdc.conf linat04:/var/kerberos/krb5kdc/kdc.conf
Scientific Linux SL release 5.4 (Boron)
kdc.conf 100% 725 0.7KB/s 00:00
[linat03:etc]# ssh linat02 "service krb5kdc restart"
Scientific Linux SL release 5.4 (Boron)
Stopping Kerberos 5 KDC: [ OK ]
Starting Kerberos 5 KDC: [ OK ]
[linat03:etc]# ssh linat04 "service krb5kdc restart"
Scientific Linux SL release 5.4 (Boron)
Stopping Kerberos 5 KDC: [ OK ]
Starting Kerberos 5 KDC: [ OK ]
Currently have the kdc.conf using:
[kdcdefaults]
kdc_ports = 88,750
v4_mode = nopreauth
[realms]
ATLAS.UMICH.EDU = {
database_name = /var/kerberos/krb5kdc/principal
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /var/kerberos/krb5kdc/kadm5.dict
key_stash_file = /var/kerberos/krb5kdc/.k5.ATLAS.UMICH.EDU
kadmind_port = 749
max_life = 720h 0m 0s
max_renewable_life = 62d 12h 0m 0s
master_key_type = des-cbc-crc
supported_enctypes = aes256-cts-hmac-sha1-96:normal aes128-cts-hmac-sha1-96:normal des3-hmac-sha1:normal arcfour-hmac-md5:normal
kdc_supported_enctypes = aes256-cts-hmac-sha1-96:normal aes128-cts-hmac-sha1-96:normal des3-hmac-sha1:normal arcfour-hmac-md5:normal
}
New requests should use secure (no single DES) encryption types.
Next I updated the
kadmin/admin and
kadmin/changepw similarly to the above:
enctypes=aes256-cts-hmac-sha1-96:normal,aes128-cts-hmac-sha1-96:normal,des3-hmac-sha1:normal,arcfour-hmac-md5:normal
kadmin.local -r ATLAS.UMICH.EDU -q "cpw -e ${enctypes} -randkey kadmin/admin"
kadmin.local -r ATLAS.UMICH.EDU -q "cpw -e ${enctypes} -randkey kadmin/changepw"
It is not necessary to retain a single-DES key for these services, since password changes are not part of normal daily workflow, and disruption from a client failure is likely to be minimal. Furthermore, if a kerberos client experiences failure changing a user password or keytab key, this indicates that that client will become inoperative once services are rekeyed to non-DES enctypes. Such problems can be detected early at this stage, giving more time for corrective action.
Once
Kerberos is strengthened we can worry about updating
OpenAFS. There are instructions on implementing rxkad-k5 at
http://openafs.org/pages/security/install-rxkad-k5-1.6.txt and specific details on the
re-keying at
http://openafs.org/pages/security/how-to-rekey.txt
Basically we need to create a new keytab for
OpenAFS 1.6.5+ to allow it to use better encryption.
We can use the
kadmin.local or
kadmin -p admin@ATLAS.UMICH.EDU programs to generate the new keytab file for our
OpenAFS servers.
ktadd -k /tmp/rxkad.keytab afs/atlas.umich.edu
This command should list the new AES encryption types we add in Kerberos
Next
scp it to all the AFS servers:
linat02, linat03, linat04, linat06, linat07, linat08 and
atback1 like:
scp /tmp/rxkad.keytab linat02:/usr/afs/etc/
Similarly for all the other AFS servers. Once it is there do a restart of AFS
service openafs-server restart
-- or --
service afs-server restart
Verify you can 'kinit admin' and do 'bos status linat0x' on to each AFS server.
--Main.ShawnMcKee - 28 Jul 2013