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

Есть идеи как это исправить? Пожалуйста, помогите мне, спасибо.

0 ответов

Другие вопросы по тегам