- # handle static configs
- restore_file /etc/freeradius/clients.conf
- restore_file /etc/freeradius/hints
- restore_file /etc/freeradius/ldap.attrmap
-
- # handle template based configs
- basedn=$(sed -n '/^[[:space:]]*suffix[[:space:]]*/ {
- s///; s/"//g; p; q }' /etc/ldap/slapd.conf)
- hostname=$(hostname -f)
- config_new=$(copy_template /etc/freeradius/radiusd.conf)
- sed -i "s/#HOSTNAME#/$hostname/" $config_new
- sed -i "s/#BASEDN#/$basedn/" $config_new
- restore_file /etc/freeradius/radiusd.conf $config_new
- rm -f $config_new
-
- password=$(grep -s '^[[:space:]]*private_key_password[[:space:]]*=' \
- /etc/freeradius/eap.conf)
- config_new=$(copy_template /etc/freeradius/eap.conf)
- sed -i "s/.*#PASSWORD#.*/$password/" $config_new
- restore_file /etc/freeradius/eap.conf $config_new
- rm -f $config_new
-
- realm=$(sed -n '/^[[:space:]]*suffix[[:space:]]*/ {
- s///; s/"//g; s/,dc=/./g; s/dc=//; s/.hr$//; p; q }' /etc/ldap/slapd.conf)
- config_new=$(copy_template /etc/freeradius/proxy.conf)
- sed -i "s/#REALM#/$realm/" $config_new
- restore_file /etc/freeradius/proxy.conf $config_new
- rm -f $config_new
-
- # install the new packages
- if ! apt-get -y install freeradius; then
- # freeradius upgrade fails here, try to fix it by creating certificates
- [ -x /etc/freeradius/certs/bootstrap ] && /etc/freeradius/certs/bootstrap
-
- dpkg --configure -a
- apt-get -y -f install
- fi
-
- # finally try to cleanup this mess