NewUse Posted December 16, 2011 Posted December 16, 2011 (edited) Собственно сабж: имеется: FreeRADIUS2 MySQL в MySQL -- таблица соответствия логин--пароль--IP При передачи запроса на авторизацию в Access-Request передаётся помимо имени пользователя/пароль передаётся Calling-Station-ID, содержащие MAC-адрес клиента Нужно при успешном прохождении аутентификации запомнить МАК в таблицу Затем по приходу DHCP-запроса с клиента через модуль SQL выполнить что то типа DHCP-Client-IP-Address:=SELECT ip FROM athtbl WHERE MAC='%{DHCP-Client-Identifier}'; при этом если запрос вернёт отсутствие совпадений, то надо выделить произвольный IP из диапазона 192.168.0.1/24, не занятый и пометить его занятие и соответствующие ему маски и шлюз; и отправить в ответ необходимые параметры: DHCP-Client-IP-Address; DHCP-Router-Address:=192.168.1.1; DHCP-Domain-Name-Server:=8.8.8.8, 8.8.4.4; DHCP-Subnet-Mask:=255.255.255.0; как я понимаю, rlm_sql уже это поддерживает?: http://freeradius.1045715.n5.nabble.com/dhcp-integrated-in-rlm-sql-td4726284.html#a4726880 или это не то и я не въехал, или патч не включён в релиз? С конфигом упорно ничего хорошего не получается :( Помогите составить конфиг, плз, я явно торможу.... Edited December 16, 2011 by NewUse Вставить ник Quote
Ivan_83 Posted December 16, 2011 Posted December 16, 2011 Забейте на модули и сделайте что вам нужно на анленге. ДХЦП сервер лучше не фрирадиусный юзать, а взять мой перловый или на сях, тоже на этом форуме обсуждается. Вставить ник Quote
NewUse Posted December 16, 2011 Author Posted December 16, 2011 а можно простенький примерчик аналогичного конфига (как на un-lang-е вызывать SQL в присвоении параметра? и как быть с iopool? ) Вставить ник Quote
Ivan_83 Posted December 17, 2011 Posted December 17, 2011 В радиус конф: modules { sql acc_sw_sql { # # Set the database to one of: # # mysql, mssql, oracle, postgresql # database = "mysql" ... instantiate { ... acc_sw_sql ... } В отдельном файле, который в сайтес енаблед: # Process the request update control { Tmp-Integer-0 = "%{acc_sw_sql: SELECT level FROM device_admins WHERE login = '%{request:User-Name}' AND passwd = '%{request:User-Password}'}" } if ("%{control:Tmp-Integer-0}" != 0) { .... Устанавливать не пробовал (или забыл чем кончилось). На крайний случай есть перловый модуль, в котором что угодно можно вытворять. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.