Оптимизация Free Radius

Технические вопросы по UTM 5.0
Ответить
Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Оптимизация Free Radius

Сообщение Magnum72 »

Собственно как настроить написано в документации а я лишь приведу пример запросов которые решают две проблемы: блокирование пользователей по собственным признакам (эти признаки можно писать в таблицу без хупа ядра, у нас это используется для блокировки вирусоносителей. Визуально это выглядит не как ошибка 691, а как ошибка 734, мы передаем радиусу изначально кривой атрибут, зато техподдержка сразу знает почему пользователя не пускает в интернет), а второй решает проблему с долгим поиском в таблице звонков когда там несколько миллионов записей, тут не используется инсерт при старте сессии, поиск и апдейт завершении , а только инсерт при завершении (начало сессии вычисляется из атрибута {Acct-Session-Time} ):

authorize_check_query="SELECT ip_groups.ip_group_id, ip_groups.uname, 'Password', ip_groups.upass, ':=' FROM UTM5.ip_groups, UTM5.iptraffic_service_links, UTM5.service_links, UTM5.accounts WHERE ip_groups.uname = '%{SQL-User-Name}' AND ip_groups.is_deleted='0' AND iptraffic_service_links.is_deleted='0' AND service_links.is_deleted='0' AND accounts.is_deleted='0' AND accounts.is_blocked='0' AND ip_groups.ip_group_id=iptraffic_service_links.ip_group_id AND iptraffic_service_links.id=service_links.id AND service_links.account_id=accounts.id"

authorize_reply_query="SELECT ip_group_id, uname, 'Framed-IP-Address', inet_ntoa(ip_groups.ip & 0xFFFFFFFF) AS a, ':=' FROM UTM5.ip_groups WHERE uname='%{SQL-User-Name}' AND is_deleted='0' AND av='' UNION SELECT ip_group_id, uname, 'Auth-Type', 'Reject' as a, ':=' FROM ip_groups WHERE uname='%{SQL-User-Name}' AND is_deleted='0' AND av='1'"

accounting_stop_query="INSERT INTO dhs_sessions_log (account_id, recv_date, last_update_date, Framed_IP_Address, NAS_Port, Acct_Delay_Time, Acct_Session_Id, NAS_Port_Type, User_Name, Service_Type, Framed_Protocol, NAS_IP_Address, NAS_Id, Acct_Status_Type, Acct_Input_Packets, Acct_Input_Octets, Acct_Output_Packets, Acct_Output_Octets, Acct_Session_Time, Called_Station_Id, Calling_Station_Id) SELECT basic_account, (%l-%{Acct-Session-Time}), '%l', ((inet_aton('%{Framed-IP-Address}') &0xFFFFFFFF)-4294967296), '%{NAS-Port}', '%{Acct-Delay-Time}', '%{Acct-Session-Id}', '%{NAS-Port-Type}', '%{SQL-User-Name}', '%{Service-Type}', '%{Framed-Protocol}', ((inet_aton('%{NAS-IP-Address}')&0xFFFFFFFF)-4294967296), '%{NAS-IP-Address}', '2', '%{Acct-Input-Packets}', '%{Acct-Input-Octets}', '%{Acct-Input-Octets}', '%{Acct-Output-Octets}', '%{Acct-Session-Time}', '%{Tunnel-Server-Endpoint}', '%{Calling-Station-Id}%{Tunnel-Client-Endpoint}' FROM users WHERE login='%{SQL-User-Name}';"

odvinc
Сообщения: 140
Зарегистрирован: Чт июл 07, 2005 13:58

Сообщение odvinc »

Спасибо!!!

Наверно тоже перейду на фрирадиус.
У нас на нем старый билинг работает, и к радиусу не было никогда нареканий.

ilya
Сообщения: 65
Зарегистрирован: Сб янв 22, 2005 11:40
Контактная информация:

Re: Оптимизация Free Radius

Сообщение ilya »

Magnum72 писал(а):Собственно как настроить написано в документации
Если не секрет, в какой именно документации описано?
--
signed by Citius

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Re: Оптимизация Free Radius

Сообщение Magnum72 »

ilya писал(а):
Magnum72 писал(а):Собственно как настроить написано в документации
Если не секрет, в какой именно документации описано?
У FreeRadius

Аватара пользователя
Chris
Сообщения: 2323
Зарегистрирован: Чт июн 02, 2005 14:08
Откуда: 33 76 77 71 86 37 98

Сообщение Chris »

И работает с netup?

ilya
Сообщения: 65
Зарегистрирован: Сб янв 22, 2005 11:40
Контактная информация:

Re: Оптимизация Free Radius

Сообщение ilya »

Magnum72 писал(а):
ilya писал(а):
Magnum72 писал(а):Собственно как настроить написано в документации
Если не секрет, в какой именно документации описано?
У FreeRadius
В доке на фрирадиус не описаны корректные SQL запросы для работы с UTM.
--
signed by Citius

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Re: Оптимизация Free Radius

Сообщение Magnum72 »

ilya писал(а):
Magnum72 писал(а):
ilya писал(а):
Magnum72 писал(а):Собственно как настроить написано в документации
Если не секрет, в какой именно документации описано?
У FreeRadius
В доке на фрирадиус не описаны корректные SQL запросы для работы с UTM.
Вот поэтому я их и отписал... :)

ilya
Сообщения: 65
Зарегистрирован: Сб янв 22, 2005 11:40
Контактная информация:

Re: Оптимизация Free Radius

Сообщение ilya »

Magnum72 писал(а):
ilya писал(а):
Magnum72 писал(а):
ilya писал(а):
Magnum72 писал(а):Собственно как настроить написано в документации
Если не секрет, в какой именно документации описано?
У FreeRadius
В доке на фрирадиус не описаны корректные SQL запросы для работы с UTM.
Вот поэтому я их и отписал... :)
hmm. Accounting-Start query я не увидел в твоих, он не нужен?
Колбек фрирад отдавать не будет судя по всему?
--
signed by Citius

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Re: Оптимизация Free Radius

Сообщение Magnum72 »

Вот поэтому я их и отписал... :)[/quote]
hmm. Accounting-Start query я не увидел в твоих, он не нужен?
Колбек фрирад отдавать не будет судя по всему?[/quote]

Прикрутить по аналогии просто, мне просто калбек не нужен :)

ilya
Сообщения: 65
Зарегистрирован: Сб янв 22, 2005 11:40
Контактная информация:

Re: Оптимизация Free Radius

Сообщение ilya »

Magnum72 писал(а):
Magnum72 писал(а): Вот поэтому я их и отписал... :)
ilya писал(а): hmm. Accounting-Start query я не увидел в твоих, он не нужен?
Колбек фрирад отдавать не будет судя по всему?
Прикрутить по аналогии просто, мне просто калбек не нужен :)
Мне бы для дайлапа нормальные запросы поиметь. :)
А еще если бы с поддержкой Interim-Updates ... :)
А то твои запросы даже Session-Timeout не могут выдать, это чисто авторизация...
--
signed by Citius

Аватара пользователя
Magnum72
Сообщения: 1947
Зарегистрирован: Чт сен 22, 2005 06:54
Контактная информация:

Re: Оптимизация Free Radius

Сообщение Magnum72 »

ilya писал(а):

Прикрутить по аналогии просто, мне просто калбек не нужен :)
Мне бы для дайлапа нормальные запросы поиметь. :)
А еще если бы с поддержкой Interim-Updates ... :)
А то твои запросы даже Session-Timeout не могут выдать, это чисто авторизация...[/quote]

Вообще то длительность сессии и начало сессии у меня вычисляется и складывается в базу при завершении сессии. Специально так сделано чтобы избежать лишнего SELECT и UPDATE в таблицу из 2 миллионов записей.

ilya
Сообщения: 65
Зарегистрирован: Сб янв 22, 2005 11:40
Контактная информация:

Re: Оптимизация Free Radius

Сообщение ilya »

Magnum72 писал(а):
ilya писал(а):

Прикрутить по аналогии просто, мне просто калбек не нужен :)
Мне бы для дайлапа нормальные запросы поиметь. :)
А еще если бы с поддержкой Interim-Updates ... :)
А то твои запросы даже Session-Timeout не могут выдать, это чисто авторизация...
Вообще то длительность сессии и начало сессии у меня вычисляется и складывается в базу при завершении сессии. Специально так сделано чтобы избежать лишнего SELECT и UPDATE в таблицу из 2 миллионов записей.[/quote]
Ну вот я и говорю, что неприменимо у меня. :(
--
signed by Citius

y(x)
Сообщения: 85
Зарегистрирован: Чт апр 26, 2007 12:03

Сообщение y(x) »

Код: Выделить всё

authorize_reply_query="SELECT ip_group_id, uname, 'Framed-IP-Address', inet_ntoa(ip_groups.ip & 0xFFFFFFFF) AS a, ':=' FROM UTM5.ip_groups WHERE uname='%{SQL-User-Name}' AND is_deleted='0' AND av='' UNION SELECT ip_group_id, uname, 'Auth-Type', 'Reject' as a, ':=' FROM ip_groups WHERE uname='%{SQL-User-Name}' AND is_deleted='0' AND av='1'" 
этот запрос маленько неверный т.к. поля av нету в ip_groups но смысл понятен. к сожалению после authorize_check_query, freeradius игнорирует
Auth-Type := Reject т.к. Access-Accept уже отослан так что отпадает необходимость писать

Код: Выделить всё

UNION SELECT ip_group_id, uname, 'Auth-Type', 'Reject' as a, ':=' FROM ip_groups WHERE uname='%{SQL-User-Name}' AND is_deleted='0' AND av='1'"

Ответить