Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

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

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

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

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

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

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

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

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

export LC_ALL=en_US.UTF-8 

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

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

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

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

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

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

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

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

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

    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):

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

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

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

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

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

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

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

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

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

client 10.10.10.1 {
	secret = secretkey_here
}

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

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

...
# Параметры для связи с 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.

Пример:

...
# Параметры для связи с 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-службу, которая будет использоваться с данным сервером:

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

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

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

user@server:~$ sudo freeradius -X

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

  • No labels