I was about to enable persistent storage of sessions with FreeRADIUS 3.2.6 on RHEL 9.4 (installed from the NetworkRADIUS repo). The eap module states the following: The default directory is ${logdir}, for historical reasons. You should ${db_dir} instead. And check the value of db_dir in the main radiusd.conf file. It should not point to ${raddb}. I checked the value of db_dir in the radiusd.conf file as mentioned, and it is set to: ${raddbdir} which evaluates to /etc/raddb. The comment immediately above the line setting the value mentions that it should likely be set to ${localstatedir}/lib/radiusd. I haven't changed these settings from defaults. Should the radiusd.conf settings be updated in the default package, and/or should the guidance be made clearer? File excerpts below. Cheers --------------------------------------------------------------------------------
From eap:
# Simple directory-based storage of sessions. # Two files per session will be written, the SSL # state and the cached VPs. This will persist session # across server restarts. # # The default directory is ${logdir}, for historical # reasons. You should ${db_dir} instead. And check # the value of db_dir in the main radiusd.conf file. # It should not point to ${raddb} # # The server will need write perms, and the directory # should be secured from anyone else. You might want # a script to remove old files from here periodically: # # find ${logdir}/tlscache -mtime +2 -exec rm -f {} \; # # This feature REQUIRES "name" option be set above. # # persist_dir = "${logdir}/tlscache" -----------------------------------------------------------------------------
From radiusd.conf:
prefix = /usr exec_prefix = /usr sysconfdir = /etc localstatedir = /var sbindir = /usr/sbin logdir = ${localstatedir}/log/radius raddbdir = ${sysconfdir}/raddb radacctdir = ${logdir}/radacct # # name of the running server. See also the "-n" command-line option. name = radiusd # Location of config and logfiles. confdir = ${raddbdir} modconfdir = ${confdir}/mods-config certdir = ${confdir}/certs cadir = ${confdir}/certs run_dir = ${localstatedir}/run/${name} # Should likely be ${localstatedir}/lib/radiusd db_dir = ${raddbdir}