Freeradius sqlcounter не работает

Я использую freeradius с mysql и choovachilli для реализации адаптивного портала. В настоящее время я пытаюсь реализовать ежедневные учетные записи с помощью rlm_sqlcounter, но безуспешно. Вот мой файл конфигурации, который я включаю в глобальную конфигурацию:

sqlcounter dailycounter {
    counter-name = 'Daily-Session-Time'
    check-name = 'Max-Daily-Session'
    sql_module_instance = 'sql'
    key = 'User-Name'
    reset = daily
    query = "SELECT SUM(acctsessiontime - GREATEST((%b - UNIX_TIMESTAMP(acctstarttime)), 0)) FROM radacct WHERE username='%{${key}}' AND UNIX_TIMESTAMP(acctstarttime) + acctsessiontime > '%b'"
}

authorize {
    sql
    dailycounter
}

accounting {
    sql
}

В журнале freeradius есть только этот вывод, относящийся к счетчику:

Tue Oct  6 13:02:22 2015 : Debug:  Module: Linked to module rlm_expr
Tue Oct  6 13:02:22 2015 : Debug:  Module: Instantiating module "expr" from file /etc/freeradius/modules/expr
Tue Oct  6 13:02:22 2015 : Debug:     (Loaded rlm_counter, checking if it's valid)
Tue Oct  6 13:02:22 2015 : Debug:  Module: Linked to module rlm_counter
Tue Oct  6 13:02:22 2015 : Debug:  Module: Instantiating module "daily" from file /etc/freeradius/modules/counter
Tue Oct  6 13:02:22 2015 : Debug:   counter daily {
Tue Oct  6 13:02:22 2015 : Debug:   filename = "/etc/freeradius/db.daily"
Tue Oct  6 13:02:22 2015 : Debug:   key = "User-Name"
Tue Oct  6 13:02:22 2015 : Debug:   reset = "daily"
Tue Oct  6 13:02:22 2015 : Debug:   count-attribute = "Acct-Session-Time"
Tue Oct  6 13:02:22 2015 : Debug:   counter-name = "Daily-Session-Time"
Tue Oct  6 13:02:22 2015 : Debug:   check-name = "Max-Daily-Session"
Tue Oct  6 13:02:22 2015 : Debug:   reply-name = "Session-Timeout"
Tue Oct  6 13:02:22 2015 : Debug:   allowed-servicetype = "Framed-User"
Tue Oct  6 13:02:22 2015 : Debug:   cache-size = 5000
Tue Oct  6 13:02:22 2015 : Debug:   }
Tue Oct  6 13:02:22 2015 : Debug: rlm_counter: Counter attribute Daily-Session-Time is number 3000
Tue Oct  6 13:02:22 2015 : Debug: rlm_counter: Current Time: 1444129342 [2015-10-06 13:02:22], Next reset 1444168800 [2015-10-07 00:00:00]

Я был бы очень признателен, если бы кто-нибудь мог объяснить мне, как на самом деле работает этот счетчик. Мне удалось понять суть проверки имени и сброса, но вариант запроса меня смущает. Я понимаю синтаксис запроса и какое будет возвращаемое значение, но не понимаю, когда вызывается этот запрос и кто будет использовать его возвращаемое значение и как?


person instancedName    schedule 06.10.2015    source источник


Ответы (1)


Объяснение ежедневного времени сеанса.

  1. пользователь может войти в систему и онлайн 3000 с в день
  2. с Max-Daily-Session. вы добавляете ценность к 3000. Это означает 3000s.
  3. Radius ответит атрибутом Session-Timeout на nas 3000s. это означает, что nas должен отключить пользователя через 3000 секунд
  4. если пользователь входит в систему и находится в сети в течение 1000 секунд, он выходит из системы. Затем он снова войдет в систему, radius ответит Session-Timeout на nas 2000s.
  5. после того, как пользователь использует все 3000, он не может войти в систему. Ему нужно подождать до завтра.
person Chuan EasyZone Mikrotik Billin    schedule 05.04.2016