Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

sqlcounter monthlycounter {

           counter-name = Monthly-Session-Time

           check-name = Max-Monthly-Session

           sqlmod-inst = sql

           key = User-Name

           reset = monthly

          

    query = "SELECT SUM(AcctSessionTime - GREATEST

    ((%b - UNIX_TIMESTAMP(AcctStartTime)), 0))

    FROM radacct WHERE UserName='%{%k}' AND

    UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime > '%b'"

}

После этого в radiusd.conf включаем файл sqlcounter.conf в секции modules:

modules {

    $INCLUDE  ${confdir}/sqlcounter.conf

и включаем счётчик в секцию авторизации:

authorize {

...

noresetcounter

dailycounter

monthlycounter

}

После этого счётчик не будет давать проходить авторизацию пользователям, исчерпавшим свой лимит времени. Для установления граничных значений счётчиков используется таблица radcheck. Приведу некоторые примеры применения этой таблицы:

Пользователь test1 может работать 15 часов (54000 секунд), тогда запись проверки данного пользователя должны выглядеть примерно так:

test1  Max-All-Session := 54000, User-Password == "<cut>"

          Service-Type = Framed-User,

          Framed-Protocol = PPP

Вносим AV-пару Max-All-Session для пользователя:

> INSERT into radcheck VALUES ('','test1', 'Max-All-Session',':=','54000');

Отметьте использование оператора :=. Таким образом атрибут Max-All-Session будет приобретать значение по умолчанию 54000. Можно также устанавливать пороги счетчика не для одного пользователя, а для группы – для этого используется таблица radgroupcheck. В общем, основной смысл записей в таблицах – установка значения атрибута, заданного в параметре счётчика check-name. Ещё учтите, что модуль sqlcounter работает, только если данные аккаунтинга направляются в sql.

Кроме sqlcounter есть ещё обыкновенный счётчик – counter. Его использование очень похоже на sqlcounter, за исключением того, что обыкновенный счётчик выполняет функции модуля аккаунтинга и авторизации одновременно. Я не буду подробно останавливаться на этой теме по ряду причин. Желающие могут прочитать в конфигурационном файле radiusd.conf подробные комментарии к этому модулю.

Очень важным недостатком вышеописанных счётчиков является отсутствие возможности отключить пользователя во время сессии при исчерпании его активов. Как было отмечено, счётчики работают на этапе авторизации, но никто не помешает пользователю, допустим, начать сессию и просидеть в день 24 часа из положенных 3-х. На следующий день счётчик может сброситься, и пользователь будет работать дальше. Не думаю, что это хорошо. Для решения этой проблемы используются различные биллинговые системы, основанные на управлении NAS при помощи SNMP. Одним из решений является использование отдельного сервера аккаунтинга (а затем настроить соответствующим образом перенаправление пакетов аккаунтинга в файле proxy.conf с помощью директивы accthost). Одним из таких серверов является radacct (http://soft.risp.ru/index.html). Отличительной особенностью является возможность работы с любым radius-сервером (учтите, что radacct не должен использовать тот же порт, что и radius-сервер) и замечательная документация на русском языке (http://soft.risp.ru/radacct/docs.shtml). Сервер действительно рабочий и компилируется без проблем после ручной правки Makefile (нужно раскомментировать строки, касающиеся вашей системы). Так как radacct написан нашими программистами и имеет русскую документацию, то описывать его в данной статье я не буду.

На этом можно было бы и завершить, но... Некоторые зададут совершенно закономерный вопрос: «А что нам с этого, у меня маршрутизатор в коробке лежит, а как его заставить с radius работать?» Но это как раз одна из самых тривиальных частей настройки. Для начала добавляем запись в clients.conf, соответствующую IP-адресу данного маршрутизатора и на последнем указываем параметры radius-сервера (учтите, что ключ симметрического шифрования aka secret должен совпадать на маршрутизаторе и в файле clients.conf):


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100