Порядок действий
- Подготовка конфигурации
- Подготовка инициализационного скрипта
- Настройка logrotate
- Настройка автоматического запуска
- Запуск
Примечание: в данном руководстве <name> — имя создаваемого экземпляра (например test).
Подготовка конфигурации
За основу можно взять конфигурацию имеющегося экземпляра сервера FreeRADIUS. Также нужно создать директорию для логов нового экземпляра.
cp -pr /etc/freeradius /etc/freeradius-<name> mkdir /var/log/freeradius-<name> chown freerad:freerad /var/log/freeradius-<name>
Здесь /etc/freeradius — это директория с конфигурацией действующего экземпляра.
Конфигурационные файлы необходимо отредактировать, добавив имя экземпляра к параметрам logdir, raddbdir и name. Также нужно указать порты для авторицации и аккаунтинга в параметрах port секций listen.
... logdir = /var/log/freeradius-<name> raddbdir = /etc/freeradius-<name> ... name = freeradius-<name> ... pidfile = ${run_dir}/${name}.pid ... listen { ... type = auth ... port = <free_port_number> ... } ... listen { ... type = acct ... port = <free_port_number + 1> ... } ...
Для inner-tunnel (если используется) также нужно указать новый порт:
... listen { ipaddr = 127.0.0.1 port = <free_port_number + 2> type = auth } ...
Подготовка инициализационного скрипта
За основу берётся инициализационный скрипт имеющегося экземпляра сервера FreeRADIUS:
cp -p /etc/init.d/freeradius /etc/init.d/freeradius-<name>
В скрипт следует внести следующие коррективы:
... # Provides: freeradius-<name> ... PIDFILE="/var/run/freeradius-<name>/freeradius-<name>.pid" ... PARAMS="-d /etc/freeradius-<name>" ... test_freeradius_config() { ... out=`$PROGRAM -Cxl stdout $FREERADIUS_OPTIONS $PARAMS`; ret=$? ... # /var/run may be a tmpfs if [ ! -d /var/run/freeradius-<name> ]; then mkdir -p /var/run/freeradius-<name> chown freerad:freerad /var/run/freeradius-<name> fi ... case "$1" in start) log_daemon_msg "Starting $DESCR" "$PROG" export LC_ALL=en_US.UTF-8 start_daemon -p "$PIDFILE" "$PROGRAM" $FREERADIUS_OPTIONS $PARAMS || ret=$? ... debug) $PROGRAM -X $FREERADIUS_OPTIONS $PARAMS ...
Настройка logrotate
В конфигурацию для freeradius следует добавить для нового экземпляра секцию следующего вида:
/var/log/freeradius-<name>/*.log { weekly rotate 52 compress delaycompress notifempty missingok postrotate /etc/init.d/freeradius-<name> reload > /dev/null endscript }
Настройка автоматического запуска
update-rc.d freeradius-<name> defaults
Запуск
/etc/init.d/freeradius-<name> start