MySQL + Freeradius: sqlcounter expire_on_login
sqlcounter expire_on_login mysql freeradius rlm_sqlcounter
Я пытаюсь установить время доступа при первом входе клиента в систему. sqlcounter
модуль в папке включения режима Версия ОС: Ubuntu 18.04 и версия Freeradius: 3.0.16
Файл sqlcounter содержит следующее:
#/etc/freeradius/3.0/mods-enabled/sqlcounter
sqlcounter expire_on_login {
sql_module_instance = sql
dialect = mysql
counter_name = Expire-After-Initial-Login
check_name = Expire-After
key = User-Name
reset = never
query = "\
SELECT IFNULL( MAX(TIME_TO_SEC(TIMEDIFF(NOW(), acctstarttime))),0) \
FROM radacct \
WHERE UserName='%{${key}}' \
ORDER BY acctstarttime \
LIMIT 1;"
}
В /etc/freeradius/3.0/sites-available/default
файл, я добавляю следующее под
authorize {
expire_on_login
После того, как я добавлю ограничение в radchceck
стол в phpmyadmin
по следующему коду:
INSERT INTO radcheck ( id , UserName , Attribute , op , Value ) VALUES (NULL , 'zaib', 'Expire-After', '=', '3600');
И, наконец, проверьте доступ пользователя с помощью следующей команды: radtest zaib zaib localhost 1812 testing123
,
Результат:
User-Name = "zaib"
User-Password = "zaib"
NAS-IP-Address = 192.168.22.101
NAS-Port = 1812
Message-Authenticator = 0x00
Cleartext-Password = "zaib"
Received Access-Reject Id 167 from 127.0.0.1:1812 to 0.0.0.0:0 length 20
(0) -: Expected Access-Accept got Access-Reject
В freeradius -xxX
выходной журнал я вижу:
Пт 10 мая 18:56:30 2019: ВНИМАНИЕ: (0) expire_on_login: Не удалось найти атрибут проверки, элемент управления:Expire-After, ничего не делать...
А также:
Пт 10 мая 18:56:30 2019: ОШИБКА: (0) Тип аутентификации не найден: отклонение пользователя через Post-Auth-Type = Отклонить
Я пытался изменить op
вариант в sql от =
в :=
и после этого я получаю следующие результаты:
Sent Access-Request Id 72 from 0.0.0.0:42845 to 127.0.0.1:1812 length 74
User-Name = "zaib"
User-Password = "zaib"
NAS-IP-Address = 192.168.22.101
NAS-Port = 1812
Message-Authenticator = 0x00
Cleartext-Password = "zaib"
Received Access-Accept Id 72 from 127.0.0.1:1812 to 0.0.0.0:0 length 39
Mikrotik-Rate-Limit = "1024k/1024k"
Вроде бы нормально, но ограничение не работает совсем, пользователь может получить доступ после окончания периода.
В логе свободного радиуса вижу:
Пт 10 мая 18:56:30 2019: ВНИМАНИЕ: (0) expire_on_login: Не удалось найти атрибут проверки, элемент управления:Expire-After, ничего не делать...
А также в MySQL radacct
таблица, когда пользователь вошел в систему, я вижу acctstarttime
значение это так: 2019-05-10 15:20:46
Есть идеи как это исправить? Пожалуйста, помогите мне, спасибо.