Page tree

Versions Compared

Key

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

Данное руководство предназначено для настройки FreeRADIUS, установленного не из репозитория компании Латера.

Info

В данном руководстве предполагается, что агент HARD установлен в директорию /opt/hydra/hard, а конфигурационные файлы FreeRADIUS находятся в каталоге /etc/freeradius. В зависимости от способа установки FreeRADIUS, его конфигурационные файлы могут находиться в других каталогах: в директории /etc/raddb или в /usr/local/etc/raddb.

Включение логирования

Необходимо отредактировать секцию log конфигурационного файла /etc/freeradius/radiusd.conf, установив следующие параметры:

Code Block
log {
...
	auth = yes
...
	auth_badpass = yes
...
	auth_goodpass = yes
...
}

Для корректной работы FreeRADIUS-сервера с АСР необходимо подключить дополнительный словарь. Подключение нового словаря осуществляется путем редактирования файла /etc/freeradius/dictionary. Сами словари, как правило, находятся в папке /usr/share/freeradius. Поместите файл словаря dictionary.hydra в эту папку и добавьте в файл /etc/freeradius/dictionary строку:

Code Block
$INCLUDE	/usr/share/freeradius/dictionary.hydra

Также необходимо дополнить инициализационный скрипт FreeRADIUS — /etc/init.d/freeradius.

Code Block
export LC_ALL=en_US.UTF-8 

Данный код необходимо дописать в районе 42 строки, перед вызовом start-stop-daemon.

Настройка модуля perl

Необходимо скопировать файл модуля hard.pm в директорию с конфигурацией FreeRADIUS:

Code Block
languagebash
user@server:~$ sudo cp /opt/hydra/hard/opt/freeradius/hard.pm /etc/freeradius/hard.pm

В файле /etc/freeradius/modules/perl следует изменить значение параметра module, указав в нём путь к файлу модуля:

Code Block
perl {
...
	module = ${confdir}/hard.pm			
...
} 

В файл /etc/freeradius/sites-available/default нужно внести следующие изменения:

  • В секции authorize после вызова модуля files добавить вызов модуля perl:

    Code Block
    authorize {
    ...
    	#  Read the 'users' file
    	files
    
    	# HARD
    	perl
    ...
    }
  • В секции authenticate добавить вызов модуля perl перед стандартными модулями следующим образом:

    Code Block
    authenticate {
    ...
    	Auth-Type PAP {
    		# HARD
    		perl
    
    		pap
    	}
    ...
    	Auth-Type CHAP {
    		# HARD
    		perl
    
    		chap
    	}
    ...
    	Auth-Type MS-CHAP {
    		# HARD
    		perl
    
    		mschap
    	}
    ...
    	Auth-Type Perl {
    		# HARD
    		perl
    
    		pap
    	}
    ...
    }
  • В секции preacct отключить использование модуля rlm_acct_unique, если необходимо разрывать абонентские сессии по команде из биллинга, а используемые модели BRAS делают это только по ID сессии (Ericsson SmartEdge, Juniper E-series, Cisco 73xx):

    Code Block
    preacct {
    ...
    	# HARD
    	# acct_unique
    ...
    }
  • В секции accounting отключить использование модуля radutmp и добавить модуль perl для проверки активных сессий абонента в биллинге:

    Code Block
    accounting {
    ...
    	# HARD
    	# radutmp
    ...
    	# HARD
    	perl
    }
    
  • В секции session отключить использование модуля radutmp и добавить модуль perl для проверки активных сессий абонента в биллинге:

    Code Block
    session {
    	# HARD
    	# radutmp
    ...
    	# HARD
    	perl
    }
  • В секции post-auth -> Post-Auth-Type REJECT добавить модуль perl для логгирования попыток неправильного ввода пароля:

    Code Block
    post-auth {
    	Post-Auth-Type REJECT {
    ...
    		# HARD
    		perl
    ...
    	}
    }

В файл /etc/freeradius/sites-available/inner-tunnel, в секцию authenticate нужно добавить вызов модуля perl:

Code Block
authenticate {
...
	Auth-Type Perl {
		# HARD
		perl
	}
...
}

В начало файла /etc/freeradius/users нужно добавить следующее:

Code Block
# HARD
DEFAULT Auth-Type = Perl
	Fall-Through = 1

В конец файла /etc/freeradius/clients.conf необходимо добавить IP-адреса и RADIUS-secret серверов доступа, которые будут клиентами данного RADIUS-сервера:

Code Block
client 10.10.10.1 {
	secret = secretkey_here
}

Настройка параметров подключения к агенту HARD

Параметры подключения к агенту HARD необходимо указать в файле /etc/freeradius/hard.pm следующим образом:

Code Block
...
# Параметры для связи с HARD
use constant HARD_API_URL       => "http://<hard_ip_addr>:<hard_port>/<plugin_name>/<plugin_object>";
use constant HARD_AUTH_USER     => "<hard_login>";
use constant HARD_AUTH_PASSWORD => "<hard_password>";
...
  • <hard_ip_addr> — IP-адрес, на котором агент HARD принимает запросы;

  • <hard_port> — номер порта, на котором агент HARD принимает запросы;

  • <plugin_name> — название используемого плагина агента HARD;
  • <plugin_object> — название объекта указанного плагина, которому будут передаваться запросы;
  • <hard_login> — логин для подключения к агенту HARD;
  • <hard_pasword> — пароль для подключения к агенту HARD.

Пример:

Code Block
...
# Параметры для связи с HARD
use constant HARD_API_URL       => "http://127.0.0.1:11080/base/main"; # API URL
use constant HARD_AUTH_USER     => "hydra";                            # Логин
use constant HARD_AUTH_PASSWORD => "q123";                             # Пароль
...

Настройка RADIUS-службы

В файле /etc/freeradius/hard.pm также необходимо указать сетевую RADIUS-службу, которая будет использоваться с данным сервером:

Code Block
# Код сетевой службы RADIUS в АСР
use constant HYDRA_AAA_SERV     => "RADIUS-VPN";

Тестирование

Проверьте корректность настройки FreeRADIUS путём его запуска в отладочном режиме:

Code Block
user@server:~$ sudo freeradius -X

Можно приступать к тестированию RADIUS-взаимодействия. Это можно делать двумя способами: либо с помощью утилит radclient и radtest, входящих в поставку FreeRADIUS, либо с использованием настоящего оборудования.