Назад | Перейти на главную страницу

Радиус sqlcounter ключ

Краткая версия моего вопроса: как ограничить отдельные пользовательские сеансы 24 часами, даже если у каждого сеанса одно и то же имя пользователя.

У меня есть настройка радиуса сервера с CoovaChilli для аутентификации пользователей беспроводной сети для доступа к сети. Все, что нужно сделать пользователям, - это согласиться с «Условиями обслуживания», поэтому у меня есть одна учетная запись, которая бесплатна для всех:

| 22 | freeuser | Одновременное использование | : = | 99 | | 21 | freeuser | Пароль пользователя | : = | freepass |

Я хотел бы ограничить сеанс каждого отдельного пользователя 24 часами. Но счетчик Max-All-Session:

query = "ВЫБРАТЬ СУММ (AcctSessionTime) \ FROM radacct WHERE UserName = '% {% k}'"

Поэтому, если я укажу Max-All-Session, то время входа каждого бесплатного пользователя будет учитываться в этом 24-часовом лимите, и каждый сеанс истечет слишком рано. Можно ли использовать два ключа для этого счетчика sql, чтобы я мог проверить UserName и CalledStationId? Это должно позволить мне ограничить время отдельного сеанса MAC-адресом, а также именем пользователя.

Или есть другой / лучший способ решить эту проблему? Спасибо!

Просто измените ключ в определении на:

called-station-id

и измените запрос на:

SELECT SUM(AcctSessionTime) \ FROM radacct WHERE calledstationid='%{%k}

Однако с этим запросом есть проблема в том, что при первом подключении пользователя ему не будет предоставлено время ожидания, так как этот запрос вернет NULL, а не 0