...
Настройка
Устанавливаем FreeRADIUS (из пакетов, или как удобно). Прописываем устройства доступа (NAS) в конфигурации /etc/freeradius/clients.conf - указываем IP-адрес или адреса RADIUS-клиентов (точек доступа или контроллера), пароль.
Прописываем вызов модуля perl для процедуры внутренней авторизации (секция authorization) в EAP-туннеле (inner-tunnel). Убеждаемся, что mschap и eap там тоже есть.
Прописываем вызов модуля perl для процедуры аккаунтинга (секция accounting) в общем конфиге (default).
Прописываем вызов скрипта netams4-freeradius-bridge.pl в настройках модуля PERL-интеграции (modules/perl) вместо базового example.pl.
Поскольку FreeRADIUS при запуске нашего Perl-скрипта использует прекомпиляцию и библиотеку libperl, убеждаемся что библиотека доступна. Например, для Debian Linux необходимо в начало файла /etc/default/freeradius дописать параметр
LD_PRELOAD=/usr/lib/libperl.so.5.10
export LD_PRELOAD
Создаем и включаем источник данных FreeRadiusDataSource
Для того, чтобы DHCP-сервер сообщал биллингу о присвоении IP-адреса, добавляем следующие строки в /etc/dhcp/dhcpd.conf в секцию subnet { ... }
on commit {
set clip = binary-to-ascii(10, 8, ".", leased-address);
set clhw = binary-to-ascii(16, 8, ":", substring(hardware, 1, 6));
execute("/usr/local/netams4/jserver/bin/n4ctl", "setip", "commit", clip, clhw);
}
Запускаем FreeRADIUS с ключом -X, клиентом пробуем подключиться к радиосети, смотрим в netams4/logs/jserver.log :
2013-03-06 10:18:33,535 DEBUG [monitor_responder] com.netams.netams4.datasource.FreeRadiusDatasource - RAD_AUTH: authenticated user 'user' having SE=1
2013-03-06 10:18:33,547 DEBUG [monitor_responder] com.netams.netams4.datasource.FreeRadiusDatasource - RAD_AUTH: authenticated user 'user' having SE=1
2013-03-06 10:18:33,560 DEBUG [monitor_responder] com.netams.netams4.datasource.FreeRadiusDatasource - RAD_AUTH: authenticated user 'user' having SE=1
2013-03-06 10:18:33,587 INFO [monitor_responder] com.netams.netams4.datasource.FreeRadiusDatasource - RAD_ACCT START user='user' AU id=1 Wireless, SET MAC to '98:fe:94:9b:38:58'
2013-03-06 10:18:34,971 INFO [RMI TCP Connection(10)-172.16.130.80] com.netams.netams4.RPCBridgeEngine - CAJO collection_subset [q='mod_name=backup_restore and mod_key=sys and attribute_name=root_url', 1, 1, unidata]
2013-03-06 10:18:34,973 INFO [RMI TCP Connection(10)-172.16.130.80] com.netams.netams4.RPCBridgeEngine - CAJO collection_subset [q='mod_name=backup_restore and mod_key=sys and attribute_name=root_url', unidata] returns=1
2013-03-06 10:18:35,139 INFO [RMI TCP Connection(10)-172.16.130.80] com.netams.netams4.RPCBridgeEngine - CAJO authservice_getinfo [10.1.1.11]
2013-03-06 10:18:36,108 DEBUG [monitor_responder] com.netams.netams4.MonitorResponderEngine - setip: cmd=commit, IP=10.1.1.11, MAC=98:fe:94:9b:38:58
2013-03-06 10:18:36,109 DEBUG [monitor_responder] com.netams.netams4.MonitorResponderEngine - setip: notified au=1, set ip to 10.1.1.11
2013-03-06 10:18:36,109 DEBUG [monitor_responder] com.netams.netams4.BillingEngine - billing_notify_datasource LOGIN, AU=1, ip=10.1.1.11, DS=0, rule=[128kbit]
2013-03-06 10:18:36,192 DEBUG [datasource] com.netams.netams4.datasource.ScriptCallDatasource - DS:2, CMD: 'LOGIN 10.1.1.11 32 1 '128kbit' 1362550716', state=0
2013-03-06 10:26:58,665 INFO [monitor_responder] com.netams.netams4.datasource.FreeRadiusDatasource - RAD_ACCT STOP user='user' AU id=1 Wireless, CLEAR MAC from '98:fe:94:9b:38:58' and IP from 10.1.1.11
2013-03-06 10:26:58,665 DEBUG [monitor_responder] com.netams.netams4.BillingEngine - billing_notify_datasource LOGOUT, AU=1, ip=10.1.1.11, DS=0, rule=[]
2013-03-06 10:26:58,752 DEBUG [datasource] com.netams.netams4.datasource.ScriptCallDatasource - DS:2, CMD: 'LOGOUT 10.1.1.11 32 1 '' 1362551218', state=0
Если все нормально, запускаем FreeRADIUS в нормальном режиме.