Привет, Всем!Маршрутизатор 2921 поднят VPN авторизация локальная ааа база на циске.
Каждому пользователя сопоставлен конкретный IP и прописан ACL для доступа к конкретному оборудованию.
aaa new-model
aaa authentication ppp default local
aaa authorization network default localusername PetrIvanov password 7 ХХХХХХХХХХХ
username PertIvanov aaa attribute list VPN1aaa attribute list VPN1
attribute type addr 192.168.3.9 service ppp protocol ippermit ip 192.168.3.64 0.0.0.31 host 192.168.3.9 time-range VPN1 log-input
Задача: разграничить доступ пользователей по времени то есть: Петя Иванов имеет доступ к своему оборудованию начиная с текущего понедельника с 08:00 до 19:00 по пятницу сроком две недели.
Что сейчас сделано временное решение
time-range VPN1
periodic daily 08:00 to 19:00
Естественно срок окончания и начала разрешения делается вручную - ФУ!Вопрос как организовать и на чем с минимальными затратами времени и средств.
Пробовал связки:
1. freeradius(Centos)+daloradius+mysql - не нашел задание расписания пользователю.
2. freeradius(Centos)+dialup_admin+mysql - тоже
3. Описана данная функциональность в Cisco Secure ACS 5.0 for VMWare ESX но цена 265709 руб 8-0.
>[оверквотинг удален]
> Что сейчас сделано временное решение
> time-range VPN1
> periodic daily 08:00 to 19:00
> Естественно срок окончания и начала разрешения делается вручную - ФУ!
> Вопрос как организовать и на чем с минимальными затратами времени и средств.
> Пробовал связки:
> 1. freeradius(Centos)+daloradius+mysql - не нашел задание расписания пользователю.
> 2. freeradius(Centos)+dialup_admin+mysql - тоже
> 3. Описана данная функциональность в Cisco Secure ACS 5.0 for VMWare ESX
> но цена 265709 руб 8-0.т.к. в радиусе можно выдать атрибут с заданеим параметра продолжительности сессии если вход разрешен или запретить вход - остается только задать правила и собственно все :)
или вы хотите менюшку с галочкой - пускать с-по с учетом праздников, переносов выходных, пятен на солнце и лунных фаз?
> т.к. в радиусе можно выдать атрибут с заданеим параметра продолжительности сессии если
> вход разрешен или запретить вход - остается только задать правила и
> собственно все :)А можно примерчик кратенький
> или вы хотите менюшку с галочкой - пускать с-по с учетом
> праздников, переносов выходных, пятен на солнце и лунных фаз?Ну за менюшку я только за! потому как хочу возложить данную функцию на персонал отдаленный от администрирования - будут сами включать отключать на основании бумаг.
>> т.к. в радиусе можно выдать атрибут с заданеим параметра продолжительности сессии если
>> вход разрешен или запретить вход - остается только задать правила и
>> собственно все :)
> А можно примерчик кратенькийАтрибут Session-Timeout - устанавливает максимальную продолжительность сессии,
например если подключаются в 9:00, а работать можно только до 11:00 - выдаете Session-Timeout = 7200, и через 2 часа сессия разорвется сервером, а если уже 11:01 - абонента попросту не пустит.
Остается наваять соответствующее правило выдачи радиусу из базы данных нужных параметров.>> или вы хотите менюшку с галочкой - пускать с-по с учетом
>> праздников, переносов выходных, пятен на солнце и лунных фаз?
> Ну за менюшку я только за! потому как хочу возложить данную
> функцию на персонал отдаленный от администрирования - будут сами включать отключать
> на основании бумаг.
> Атрибут Session-Timeout - устанавливает максимальную продолжительность сессии,
> например если подключаются в 9:00, а работать можно только до 11:00 -
> выдаете Session-Timeout = 7200, и через 2 часа сессия разорвется сервером,
> а если уже 11:01 - абонента попросту не пустит.
> Остается наваять соответствующее правило выдачи радиусу из базы данных нужных параметров.Если разрешено работать с 09 до 11 и с 18 до 19
То как рассчитать Session-Timeout он же ведь будет разным? или по Вашему если подключится не в 9:00 а в 10:50 то с лимитом 7200 он будет работать дольше положенного.Можно пример конфига. ПЛИЗ.
>> Атрибут Session-Timeout - устанавливает максимальную продолжительность сессии,
>> например если подключаются в 9:00, а работать можно только до 11:00 -
>> выдаете Session-Timeout = 7200, и через 2 часа сессия разорвется сервером,
>> а если уже 11:01 - абонента попросту не пустит.
>> Остается наваять соответствующее правило выдачи радиусу из базы данных нужных параметров.
> Если разрешено работать с 09 до 11 и с 18 до 19
> То как рассчитать Session-Timeout он же ведь будет разным? или по Вашему
> если подключится не в 9:00 а в 10:50 то с лимитом
> 7200 он будет работать дольше положенного.
> Можно пример конфига. ПЛИЗ.ример если подключаются в 9:00, а работать можно только до 11:00 - выдаете Session-Timeout = 7200, и через 2 часа сессия разорвется сервером, а если уже 11:01
Я думаю, что через два часа сесия отвалиться, а в 11:01, уже можно будет опять зайти на 2 часа.
Возможно ошибаюсь
>[оверквотинг удален]
>> То как рассчитать Session-Timeout он же ведь будет разным? или по Вашему
>> если подключится не в 9:00 а в 10:50 то с лимитом
>> 7200 он будет работать дольше положенного.
>> Можно пример конфига. ПЛИЗ.
> ример если подключаются в 9:00, а работать можно только до 11:00 -
> выдаете Session-Timeout = 7200, и через 2 часа сессия разорвется сервером,
> а если уже 11:01
> Я думаю, что через два часа сесия отвалиться, а в 11:01, уже
> можно будет опять зайти на 2 часа.
> Возможно ошибаюсьОшибаетесь вы или нет - определяет только логика выдачи параметров радиусу для передачи радиус сервером этих параметров уже далее серверу доступа.
Кто мешает Session-Timeout прежде чем передавать - расчитывать? и в условиях расчета применять любые условия вплоть до времени суток, фаз лунного цикла или плотности тумана за окном :)Как вы думаете биллинги диалаповские как работали?
Если у вас оставалось денег на 30 минут то биллинг радиусу выдавал 1800 сек, это значение подставлялось в параметр Session-Timeout и по истечении этого времени модемный пул сбрасывал вас с линии, соответсвенно если денег оставалось на 0 минут вас не пускало вообще и т.д. и т.п..
Все вами перечисленное было реализовано в диалапных биллинговых системах еще (баробанная дробь) 15 лет назад!
> Все вами перечисленное было реализовано в диалапных биллинговых системах еще (баробанная
> дробь) 15 лет назад!Ну дайте мне кусок конфига для примера чтобы я проверил и убедился. Пока только доводы.
Мне бы совет реального админа от провайдеров - они то уж точно это делали и знают что нужно.
>> Все вами перечисленное было реализовано в диалапных биллинговых системах еще (баробанная
>> дробь) 15 лет назад!
> Ну дайте мне кусок конфига для примера чтобы я проверил и убедился.
> Пока только доводы.
> Мне бы совет реального админа от провайдеров - они то уж точно
> это делали и знают что нужно.Ёпрст....
Откуда и как вы берете параметры для freeradius-а? судя по фразеfreeradius(Centos)+daloradius+mysql - таки запросом из mysql базы...
http://www.hilik.org.ua/freeradius/
Кусок radius.confauthorize_reply_query = "SELECT id, UserName, Attribute, Value, op \
FROM ${authreply_table} \
WHERE Username = '%{SQL-User-Name}' \
ORDER BY id"пишите туда что-то типа:
authorize_reply_query = "SELECT my_attrib_funk(<параметры для функции>)"В базе создаете функцию my_attrib_funk, которая будет выплевывать что вам нужно.
Уже в фукции можете воротить все, что угодно.