Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Порядок действий

  1. Подготовка конфигурации
  2. Подготовка инициализационного скрипта
  3. Настройка logrotate
  4. Настройка автоматического запуска
  5. Запуск

Примечание: в данном руководстве <name> — имя создаваемого экземпляра (например test).

Подготовка конфигурации

За основу можно взять конфигурацию имеющегося экземпляра сервера FreeRADIUS. Также нужно создать директорию для логов нового экземпляра.

Code Block
languagebash
titleroot@server:~#
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.

Code Block
languagenone
title/etc/freeradius-<name>/radiusd.conf
...

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 (если используется) также нужно указать новый порт:

Code Block
languagenone
title/etc/freeradius-<name>/sites-enabled/inner-tunnel
...

listen {
       ipaddr = 127.0.0.1
       port = <free_port_number + 2>
       type = auth
}

...

Подготовка инициализационного скрипта

За основу берётся инициализационный скрипт имеющегося экземпляра сервера FreeRADIUS:

Code Block
languagebash
titleroot@server:~#
cp -p /etc/init.d/freeradius /etc/init.d/freeradius-<name>

В скрипт следует внести следующие коррективы:

Code Block
languagebash
title/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 следует добавить для нового экземпляра секцию следующего вида:

Code Block
languagenone
title/etc/logrotate.d/freeradius
/var/log/freeradius-<name>/*.log {
        weekly
        rotate 52
        compress
        delaycompress
        notifempty
        missingok
        postrotate
                /etc/init.d/freeradius-<name> reload > /dev/null
        endscript
}

Настройка автоматического запуска

Code Block
languagebash
titleroot@server:~#
update-rc.d freeradius-<name> defaults

Запуск

Code Block
languagebash
titleroot@server:~#
/etc/init.d/freeradius-<name> start