Порядок действий
- Подготовка конфигурации
- Подготовка инициализационного скрипта
- Настройка logrotate
- Настройка автоматического запуска
- Запуск
Примечание: в данном руководстве <name> — имя создаваемого экземпляра (например test).
Подготовка конфигурации
За основу можно взять конфигурацию имеющегося экземпляра сервера FreeRADIUS. Также нужно создать директорию для логов нового экземпляра.
Code Block |
---|
language | bash |
---|
title | root@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 |
---|
language | none |
---|
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 |
---|
language | none |
---|
title | /etc/freeradius-<name>/sites-enabled/inner-tunnel |
---|
|
...
listen {
ipaddr = 127.0.0.1
port = <free_port_number + 2>
type = auth
}
... |
Подготовка инициализационного скрипта
За основу берётся инициализационный скрипт имеющегося экземпляра сервера FreeRADIUS:
Code Block |
---|
language | bash |
---|
title | root@server:~# |
---|
|
cp -p /etc/init.d/freeradius /etc/init.d/freeradius-<name> |
В скрипт следует внести следующие коррективы:
Code Block |
---|
language | bash |
---|
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 |
---|
language | none |
---|
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 |
---|
language | bash |
---|
title | root@server:~# |
---|
|
update-rc.d freeradius-<name> defaults |
Запуск
Code Block |
---|
language | bash |
---|
title | root@server:~# |
---|
|
/etc/init.d/freeradius-<name> start |