This is part of a guide to setting up an Ubuntu server for a small/medium business. The server will provide DHCP, DNS, LDAP, Kerberos and NFS services such that users can login to any machine on the network and all their files and settings will be the same across the entire network.
It’s time to install and configure Kerberos.
sudo apt-get install krb5-kdc krb5-admin-server
The packages will automatically configure Kerberos for the correct realm from the information provided by Dnsmasq earlier in this guide. All we have to do is create the database for the realm using the following tool:
You will be asked to enter a master key for Kerberos, make sure you use something secure and memorable.
To configure Kerberos for NFS later, we’ll need to create an admin user.
The following output should be observed:
Authenticating as principal root/admin@DANBISHOP.ORG with password. kadmin.local:
Enter the following:
Enter a password when prompted, then quit:
WARNING: no policy specified for dan/admin@DANBISHOP.ORG; defaulting to no policy Enter password for principal "dan/admin@DANBISHOP.ORG": Re-enter password for principal "dan/admin@DANBISHOP.ORG": Principal "dan/admin@DANBISHOP.ORG" created. kadmin.local: quit
We need to give dan/admin admin privileges by editing the access control list for Kerberos (/etc/krb5kdc/kadm5.acl) this file should contain the following:
# This file Is the access control list for krb5 administration. # When this file is edited run /etc/init.d/krb5-admin-server restart to activate # One common way to set up Kerberos administration is to allow any principal # ending in /admin is given full administrative rights. # To enable this, uncomment the following line: */admin *
Note that the last line has been uncommented so that all /admin principals have admin rights. To get Kerberos to use the new ACL we need to restart it:
sudo service krb5-admin-server restart
Now we can test everything has worked with:
Enter the password you set when requested then run klist:
klist Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: dan/admin@DANBISHOP.ORG Valid starting Expires Service principal 02/05/11 19:57:24 02/06/11 05:57:24 krbtgt/DANBISHOP.ORG@DANBISHOP.ORG renew until 02/06/11 19:57:21
If you get output something like the above then congratulations, you have a fully functioning Kerberos Realm 🙂
Now, we’ll configure /etc/krb5.conf on the server so that we can use the admin account in the same way on both the server and clients:
sudo dpkg-reconfigure krb5-config
It will ask what to set the default Kerberos realm to, it should have detected the correct value already so just press enter and you’re done 🙂
Finally, we can enable kerberos authentication to login to the server.
sudo apt-get install libpam-krb5 sudo pam-auth-update
Check that Kerberos is selected as an authentication method to allow users to login/ssh into the server.