kdc-setup.sh 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/bin/bash
  2. REALM=TEST.GOKRB5
  3. DOMAIN=test.gokrb5
  4. SERVER_HOST=kdc.test.gokrb5
  5. ADMIN_USERNAME=adminuser
  6. HOST_PRINCIPALS="kdc.test.gokrb5 host.test.gokrb5"
  7. cp /vagrant/krb5.conf /etc/krb5.conf
  8. cp /var/kerberos/krb5kdc/kdc.conf /var/kerberos/krb5kdc/kdc.conf-old
  9. cp /vagrant/kdc.conf /var/kerberos/krb5kdc/kdc.conf
  10. cp /vagrant/kadm5.acl /var/kerberos/krb5kdc/kadm5.acl
  11. sed -i "s/__ADMIN_USER__/${ADMIN_USERNAME}/g" /var/kerberos/krb5kdc/kadm5.acl
  12. sed -i "s/__REALM__/${REALM}/g" /var/kerberos/krb5kdc/kadm5.acl
  13. sed -i "s/__REALM__/${REALM}/g" /var/kerberos/krb5kdc/kdc.conf
  14. sed -i "s/__REALM__/${REALM}/g" /etc/krb5.conf
  15. sed -i "s/__DOMAIN__/${DOMAIN}/g" /etc/krb5.conf
  16. sed -i "s/__SERVER_HOST__/${SERVER_HOST}/g" /etc/krb5.conf
  17. create_entropy() {
  18. while true
  19. do
  20. sleep $(( ( RANDOM % 10 ) + 1 ))
  21. echo "Generating Entropy... $RANDOM"
  22. done
  23. }
  24. create_entropy &
  25. echo "Kerberos initialisation required. Creating database for ${REALM} ..."
  26. echo "This can take a long time if there is little entropy. A process has been started to create some."
  27. MASTER_PASSWORD=$(echo $RANDOM$RANDOM$RANDOM | md5sum | awk '{print $1}')
  28. /usr/sbin/kdb5_util create -r ${REALM} -s -P ${MASTER_PASSWORD}
  29. echo "Kerberos database created."
  30. /usr/sbin/kadmin.local -q "add_principal -randkey ${ADMIN_USERNAME}/admin"
  31. echo "Kerberos admin user created: ${ADMIN_USERNAME} To update password: sudo /usr/sbin/kadmin.local -q \"change_password ${ADMIN_USERNAME}/admin\""
  32. KEYTAB_DIR="/keytabs"
  33. mkdir -p $KEYTAB_DIR
  34. if [ ! -z "${HOST_PRINCIPALS}" ]; then
  35. for host in ${HOST_PRINCIPALS}
  36. do
  37. /usr/sbin/kadmin.local -q "add_principal -pw hostpasswordvalue -kvno 1 host/$host"
  38. echo "Created host principal host/$host"
  39. done
  40. fi
  41. /usr/sbin/kadmin.local -q "add_principal -pw spnpasswordvalue -kvno 1 HTTP/host.test.gokrb5"
  42. /usr/sbin/kadmin.local -q "add_principal -pw passwordvalue -kvno 1 testuser1"
  43. /usr/sbin/kadmin.local -q "add_principal +requires_preauth -pw passwordvalue -kvno 1 testuser2"
  44. /usr/sbin/kadmin.local -q "add_principal -pw passwordvalue -kvno 1 testuser3"
  45. echo "Kerberos initialisation complete"
  46. systemctl restart krb5kdc
  47. systemctl start kadmin
  48. systemctl enable krb5kdc kadmin