Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
# Для записей о начале сессии
acct_table1 = "radacct"
# Для записей о конце сессии
acct_table2 = "radacct"
таблица учёта создаётся автоматически при создании структуры базы данных radius (описано выше).
После настройки собственно учёта необходимо продумать политику ограничения доступа. Для этого существуют счётчики. Здесь я приведу пример счётчика sql. Счётчик работает по принципу периодической проверки данных учёта и на основании этого принимается решение о дальнейшей работе пользователя. Для этого счётчик должен быть добавлен в секцию authorize файла radiusd.conf. Конфигурацию счётчика будем хранить в файле sqlcounter.conf, имеющим приблизительно такой формат (взято из документации к серверу freeradius):
# Счётчик общего времени
sqlcounter noresetcounter {
counter-name = Max-All-Session-Time
# Проверка определённого атрибута в таблице radcheck
check-name = Max-All-Session
# Используемый процесс sql
sqlmod-inst = sql
# Поле, по которому происходит расчёт времени
key = User-Name
# Сброс счётчика, в данном случае счётчик не сбрасывается
reset = never
# SQL-запрос, выполняемый счётчиком
query = "SELECT SUM(AcctSessionTime) FROM radacct
WHERE UserName='%{%k}'"
}
# Счетчик сбрасывается ежедневно
sqlcounter dailycounter {
driver = "rlm_sqlcounter"
counter-name = Daily-Session-Time
check-name = Max-Daily-Session
sqlmod-inst = sql
key = User-Name
# Сброс счётчика ежедневно
reset = daily
query = "SELECT SUM(AcctSessionTime - GREATEST
((%b - UNIX_TIMESTAMP(AcctStartTime)), 0))
FROM radacct WHERE UserName='%{%k}' AND
UNIX_TIMESTAMP(AcctStartTime) + AcctSessionTime > '%b'"
}