Биллинговая система Nodeny
19 Апреля 2024, 21:23:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: Ядро, таймаут авторизации  (Прочитано 7905 раз)
Stronglan
Постоялец
***

Карма: -3
Offline Offline

Сообщений: 185


Просмотр профиля Email
« : 20 Апреля 2018, 18:46:25 »

Подскажите где в старых версиях нодени настраивается этот параметр?

Через какое время в секундах учетная запись переводится в состояние «не авторизована». Зависит от настроек системы авторизации. Рекомендуется брать чуть больше двух периодов ре-авторизаций (например, период аккаунтинга). Для стандартной настройки по умолчанию 150 секунд

Нужно увеличить значение по умолчанию
Записан
Stronglan
Постоялец
***

Карма: -3
Offline Offline

Сообщений: 185


Просмотр профиля Email
« Ответ #1 : 20 Апреля 2018, 20:24:22 »

Частично отвечу на свой вопрос:

/usr/local/nodeny/kernel/auth.cfg

timeout => 150,

увеличил значение до 300, но вылезла проблема что по завершении сеанса сессия не отображается в логах
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #2 : 21 Апреля 2018, 06:08:23 »

т.е. при 150 она есть в логах, а при 300 нет?)
Записан
Stronglan
Постоялец
***

Карма: -3
Offline Offline

Сообщений: 185


Просмотр профиля Email
« Ответ #3 : 21 Апреля 2018, 06:50:44 »

Да,  так и есть, при чем по истечении 300 секунд в карточке абонента сразу освобождается его айпи. В случае со 150 секундами сначала пропадал зеленый ключ авторизации и писалось "IP  будет освобожден через хх секунд".
Записан
Stronglan
Постоялец
***

Карма: -3
Offline Offline

Сообщений: 185


Просмотр профиля Email
« Ответ #4 : 21 Апреля 2018, 11:12:21 »

Также если поставить значение timeout больше 300 секунд, например 360 то авторизация все равно слетит после 300 секунд
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #5 : 21 Апреля 2018, 22:21:09 »

радиус используется? процедура radstop в конфиге радиуса раскомментирована?
Записан
Stronglan
Постоялец
***

Карма: -3
Offline Offline

Сообщений: 185


Просмотр профиля Email
« Ответ #6 : 22 Апреля 2018, 09:02:26 »

Нет, радиус не используется. В версии биллинга где параметр timeout задается в веб интерфейсе такая же ситуация...
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #7 : 23 Апреля 2018, 06:39:05 »

Попробуй остановить минут на 10 этот модуль чтобы проверить он или не он удаляет авторизации
Записан
Stronglan
Постоялец
***

Карма: -3
Offline Offline

Сообщений: 185


Просмотр профиля Email
« Ответ #8 : 23 Апреля 2018, 07:46:25 »

Остановил модуль, айпи и и зеленый ключ авторизации продолжают висеть продолжительное время, т.е. далеко за пределами 150 и 300 секунд, значит все таки этот модуль убивает авторизацию.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #9 : 23 Апреля 2018, 09:52:03 »

Тогда запусти его без ключа -d, но с ключом -v, прерви через несколько минут и прикрепи в форум вывод на экран как файл
Записан
Stronglan
Постоялец
***

Карма: -3
Offline Offline

Сообщений: 185


Просмотр профиля Email
« Ответ #10 : 23 Апреля 2018, 12:57:00 »

Описываю что делал:

1. В настройка веб интерфейса биллинга Ядро-Авторизация выставил параметры:

Код:
Нет- Запускать модуль при запуске ядра NoDeny.
5- Период проверки. Рекомендуется 5-10 секунд.
хх (тут меняю разные значения) - Через какое время в секундах учетная запись переводится в состояние «не авторизована». Зависит от настроек системы авторизации. Рекомендуется брать чуть больше двух периодов ре-авторизаций (например, период аккаунтинга). Для стандартной настройки по умолчанию 150 секунд

2. Вызываю искусственную авторизацию командами:

Код:
UPDATE `ip_pool` SET `uid` = '1857', `release` = (UNIX_TIMESTAMP () + 150) WHERE `ip` = INET_ATON('192.168.175.254');

CALL set_auth ('192.168.175.254','mod=dhcp;user=c025e946f06b;');

3. Запускаю модуль

Код:
/usr/bin/perl /usr/local/nodeny/nokernel.pl -m=auth -v

4. При значении:

150 секунд - по истечении времени ключ авторизации исчезает айпи в карточке абонента остается висеть, при нажатии на него пишется будет освобожден через 150, 149, 148..... секунд. В логах сохраняется инфа об авторизации

300 секунд - по истечении времени ключ авторизации исчезает вместе с выданным айпи. В логах сохраняется инфа об авторизации.

420 секунд - по истечении времени ключ авторизации исчезает вместе с выданным айпи. В логах не сохраняется инфа об авторизации

Файлы с выводом на экран прилагаю по каждому заданному параметру переменной
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #11 : 23 Апреля 2018, 15:07:34 »

Это самое лучшее описание проблемы за все время. В общем, проблема в том, что ip освобождается раньше времени окончания авторизации по таймауту. release +150 секунд (или release +300, точно не помню) я некоторое время назад исправил и сделал час (3600 секунд) - так повысится надежность системы и в иных случаях. Тебе нужно из bill.sql взять функцию get_ip и процедуру set_auth, затем пересоздать их (удалить старую и создать новую) - ты ж используешь какую-то из последних ревизий биллинга? В этой функции должно встречаться 3600
Записан
Stronglan
Постоялец
***

Карма: -3
Offline Offline

Сообщений: 185


Просмотр профиля Email
« Ответ #12 : 23 Апреля 2018, 17:03:15 »

Сделал, все как описано выше, все работает спасибо огромное, но теперь очень долго освобождается выданный абону айпи. То есть когда зеленый ключ пропадает айпи остается висеть и пишется будет освобожден через 3300, 3299.... секунд, в процедуре set_auth пробовал менять значение UNIX_TIMESTAMP() + 3300 заменил этим UNIX_TIMESTAMP() + 210 но без изменений, правильно ли изменил? Или вообще не стоит это трогать?

Код:
    UPDATE ip_pool SET `release` = UNIX_TIMESTAMP() + 3600
        WHERE ip = INET_ATON(usr_ip)
          AND type = 'dynamic'
          AND `release` < (UNIX_TIMESTAMP() + 210)
        LIMIT 1;
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #13 : 23 Апреля 2018, 21:34:50 »

пусть висит час, так и задумано. Просто думай об этом как будто ip зарезервирован для данного абона на час. А для абонов оно даже лучше - чем реже смена ip, тем больше инет сервисов с привязкой к ip будет работать без переавторизации
Записан
Stronglan
Постоялец
***

Карма: -3
Offline Offline

Сообщений: 185


Просмотр профиля Email
« Ответ #14 : 23 Апреля 2018, 21:45:15 »

Понял, спасибо огромное за помощь.
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!