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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
  Начало Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1]
1  Главная категория / Модули NodenyPlus / Re: Заглушка на 443 порту, кто как решает https редирект? : 10 Февраля 2018, 23:37:46
На самом деле в хотспоте микротика ничего военного не делается.
Цитировать
Using Hotspot server without enabled HTTPs login, may result in fail to redirect a client to the Hotspot authentication page if the requested page uses HTTPS protocol.
Там тупо и решительно поднимается SSL виртуальный хост на базе "высокого" порта и туда осуществляется редирект всего с протоколом 6 и портом 443.
Это несколько не то пальто, хотя и чуток облегчает ситуацию. Но только чуток. Т.к. браузер все равно заставляет принимать "левый" да еще самоподписанный сертификат а вовсе не тот, который ожидался. Если на любимых сайтах сохранить всю эту хрень в системе - то действительно будет создаваться впечатление что проблемы нет - но она есть.

Подпишусь под словами выше, https заглушки с нормальной реализацией нет и не будет, скорее всего... такова специфика протокола.
Нужно приучать клиентов добавлять сайт провайдера или биллинга в закладки и тыкать в ярлык, если ничего не работает.
Проблему с https я решил просто, с первого по десятое число заблокированным пользователям даю доступ по https на скорости 128 к в руки, этого хватает и для ликпая и приват24 но мало для остальных сервисов, соответственно разрешается для заблокированных только доступ по https, DNS к NAS и по 80 порту на сайт/биллинг, остальное режется. С 10го числа режу и https.
2  Главная категория / Nodeny Plus / Re: Сбор трафика через Radius : 10 Февраля 2018, 22:44:58
Учитывается трафик только в одну сторону?
Начал разбираться и тоже удивился. А какой смысл в том чтобы только траф_ин учитывать?
Я конечно все понимаю, но не на живых же абонентах экспериментировать с этим делом?

Реально готов тоже упереться в аккаунтинг через радиус, завтра еще раз перечитаю посты, продумаю логику сквозь промежуточные таблици...
Я не силен в перле, но можно было бы в модули коллекторов добавить модуль Radius.
Модуль создает таблицу типа HEAP (в памяти) в которую через радиус аккаунтинг запросы добавляются записи.
Далее раз в таймут конфига происходит парсинг временной таблицы и заполнение X_date таблиц, с очисткой временной таблицы.

Я могу это все реализовать, временную таблицу заполнять из радиуса, не проблема.
Скриптом по крону раз в минуту парсить и складывать в X_date таблицы, но у меня о они игнорятся биллингом, мне нужен точный формат X_date таблиц.
Готов принять участие в создании и тестировании модуля.
3  Главная категория / Nodeny Plus / Re: Сбор трафика по netflow+ipcad+freebsd : 08 Февраля 2018, 12:43:27
При этом таблицы X-дата заполняются, но биллинг упорно не хочет показывать что в них.

Единственное, что я глобально переделал, это то, что у меня все таблицы в базе MyISAM, ушел от InnoDB. Это критично?
4  Главная категория / Nodeny Plus / Re: Сбор трафика по netflow+ipcad+freebsd : 08 Февраля 2018, 12:23:02
Т.е. в доку нужно добавть способ нахождения интерфейса flow-stat -f 17 < /var/db/flows/8888.txt?

Да, именно так я нашел свой интерфейс под номером 6

Цитировать
flow-stat -f 17 < /var/db/flows/8888.txt
#  --- ---- ---- Report Information --- --- ---
#
# Fields:    Total
# Symbols:   Disabled
# Sorting:   None
# Name:      Input interface
#
# Args:      flow-stat -f 17
#
#
# interface flows                 octets                packets
#
152         5417                  8615050               97150               
150         3850                  12827845              131031             
144         6                     912                   12                 
143         408686                1339845394            2211054             
142         15004                 40526170              388730             
6           601619                1914824073            3663866             
5           2151                  1112027               7143               
0           423615                154065214             1236346   

При этом таблицы X-дата заполняются, но биллинг упорно не хочет показывать что в них.
5  Главная категория / Nodeny Plus / Re: Сбор и отображение трафика. : 07 Февраля 2018, 04:22:51
а вы правильно определили номер интерфейса с которого снимать? Данное значение  ext_iface   => '2',

Да, у меня если стоит ext_iface   => '2', каждую минуту добавляются только пустые 4 строки.

Я из потока выдернул, что трафик правильно двигается с номером интерфейса = 6.
Когда я ставлю 6, то счетчики увеличиваются, но внутри биллинга ни информации о трафике, ни графика.
6  Главная категория / Nodeny Plus / Сбор и отображение трафика. : 06 Февраля 2018, 16:39:24
Проблема в следующем, решил собирать трафик с микротика по протоколу netflow.
flowtools связку запустил, интерфейс подобрал, трафик в файл собирается и в базу ложится.

Я не могу посмотреть трафик и график. В меню справа нет календаря.
По центру надпись "Нет данных по текущему фильтру"



Как ложится трафик:
Таблица x2018_2_6 и z2018_2_6 создались.
Я подробный лог не включал, потому таблица z2018_2_6 пуста.
А вот в таблицу x2018_2_6 трафик ложится странно.
Каждые 61 секунду добавляется 7 записей, у меня онлайн 3 абонента.
первые 4 записи
uid iface time class in out
Идут с нулевыми значениями всех полей, кроме времени, время актуальное. различия лишь в том, что 4 строки имеют разный class от 1 до 4
следующие 3 строки идут с тремя абонентами
у них верно указан uid интерфейс у всех равен нулую, время правильно, указанн class=1 и соответственно объем трафика in и out за минуту.
Тут роде как правильно все, кроме каждых 60 секунд 4 пустых строки с 0 uid.

Дальше:
В представлении v_auth_now в полях in1 и out1 трафик увеличивается каждую минуту.
В представлении fullusers так же в полях in1, out1, traf1, traff, traff_out, traff_in счетчики увеличиваются.
В таблице users_trf у активных пользователей каждую минуту увеличивается счетчик трафика в полях in1, out1, traf1. Все остальные поля равны у всех нулю.

Куда рыть, в какую сторону? График авторизаций показывается на аяксе без проблем.
7  Главная категория / Модули NodenyPlus / Re: Модуль TurboSMS : 13 Сентября 2017, 10:46:15
Попробуй вручную с помощью консольного клиента mysql соединиться

Попробовал, та же чепуха, заходит с вероятностью 50/50.

Проблему решил явным указанием в файрволе разрешающим правилом на доступ к данному серверу на порт 3306 и соответственно вторым обратный трафик.
Таймаут вернул на место, там реально 3х секунд достаточно.
8  Главная категория / Модули NodenyPlus / Re: Модуль TurboSMS : 12 Сентября 2017, 22:04:56
В файле /usr/local/nodeny/nod/sms.pm строка:
timeout => 3

Увеличил, увы не помогает.

Код:
No DB connection, DBI:mysql:database=users;host=94.249.146.189;port=3306;mysql_connect_timeout=30 : Can't connect to MySQL server on '94.249.146.189' (13)

В скобках код "(13)" о чем говорит?
9  Главная категория / Модули NodenyPlus / Re: Модуль TurboSMS : 12 Сентября 2017, 14:29:13
Доброго дня всем.
У меня проблема с подключением к базе данных TurboSMS вылетает 3 раза из 10 запросов.
В дебаг режиме пишет следующую ошибку.

Код:
No DB connection, DBI:mysql:database=users;host=94.249.146.189;port=3306;mysql_connect_timeout=3 : Can't connect to MySQL server on '94.249.146.189' (13)

В топике  
Код:
forum.nodeny.com.ua/index.php?topic=2163.30
много лет назад обсуждалось подобное.
И там люди рекомендовали увеличить таймаут для подключения с 3х секунд до 20-30.
В указанных файлах и других файлах я не нашел явного параметра для задания таймаута.
Видать его нужно вписать явно в строку подключения к базе, но я не силен в синтаксисе перла.

Подскажите, как его правильно изменить и в каких файлах?
10  Главная категория / Nodeny Plus / Re: Хранение и отображение MAC адресов. : 31 Августа 2017, 12:58:14
Скорее всего мне поможет эта строка в radupdate нужно сделать замену.
Код:
CALL set_auth(usr_ip, CONCAT('mod=pppoe;',REPLACE(properties,':','')));

Да, именно это и помогло. Старую базу скопировал  в новую sql запросом

Код:
insert into `auth_log_test` (`id`,`uid`,`start`,`end`,`properties`) SELECT `id`,`uid`,`start`,`end`,REPLACE(`properties`,':','') as `properties` FROM `auth_log`

После этого старую грохнул а новую переименовал. Теперь даже прошлые маки отображаются корректно.

Вопрос решен. Тему можно закрывать.
11  Главная категория / Nodeny Plus / Re: Хранение и отображение MAC адресов. : 30 Августа 2017, 19:05:53
Скорее всего мне поможет эта строка в radupdate нужно сделать замену.
Код:
CALL set_auth(usr_ip, CONCAT('mod=pppoe;',REPLACE(properties,':','')));

ну и в radstop внести что-то подобное.
12  Главная категория / Nodeny Plus / Re: Хранение и отображение MAC адресов. : 30 Августа 2017, 18:49:56
У меня процедуры для PPPoE и они отличаются. Сейчас приведу свои.
Radreply ничего не пишет в базу.

Код:
BEGIN
  DECLARE usr_id INT;
  DECLARE usr_on INT;
  DECLARE usr_ip VARCHAR(15) DEFAULT NULL;
  DECLARE shape INT;
  DECLARE shapein INT;
  SELECT id, IF(state='on',1,0) INTO usr_id, usr_on FROM users WHERE name=login LIMIT 1;

 
    SELECT get_ip(usr_id) INTO usr_ip;
    SELECT substr(tags,locate(',shape=',tags)+7)+0 INTO shape FROM users_services WHERE tags LIKE '%,shape=%' AND uid=usr_id;
    IF ( shape > 6 ) THEN SET shapein=shape; ELSE SET shapein=shape; END IF;
    SELECT NULL,login,'Mikrotik-Rate-Limit',CONCAT(shapein,'M/',shape,'M'),'=';
    SELECT NULL,login,'Framed-IP-Address',usr_ip,'=';
    SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','=';


  SELECT NULL,login,'Framed-Protocol','PPP','=';
END

Этим занимается set_auth

Код:
BEGIN
  DECLARE usr_id INT;
  SELECT uid INTO usr_id FROM ip_pool WHERE INET_ATON(usr_ip) = ip LIMIT 1;

  IF( usr_id > 0 ) THEN

    INSERT INTO auth_now SET
        ip = usr_ip,
        properties = auth_properties,
        start = UNIX_TIMESTAMP(),
        last = UNIX_TIMESTAMP()
    ON DUPLICATE KEY UPDATE
        properties = IF(auth_properties!='',auth_properties,properties),
        last = UNIX_TIMESTAMP();

    UPDATE ip_pool SET `release` = UNIX_TIMESTAMP() + 300
        WHERE ip = INET_ATON(usr_ip) AND type = 'dynamic' LIMIT 1;
  END IF;
END

И по окончании сессии отрабатывается radstop

Код:
BEGIN
  DECLARE usr_id INT;
  DECLARE startses INT;
  DECLARE usr_ip VARCHAR(16);
  DECLARE usr_proper VARCHAR(255) DEFAULT NULL;
  SELECT id INTO usr_id FROM users WHERE name=login LIMIT 1;
  SELECT ip,start,properties INTO usr_ip,startses,usr_proper FROM auth_now WHERE ip = get_ip(usr_id) LIMIT 1;
  INSERT INTO auth_log (`uid`,`ip`,`start`,`end`,`properties`) VALUES (usr_id,INET_ATON(usr_ip),startses,UNIX_TIMESTAMP(),usr_proper);
  DELETE FROM auth_now WHERE ip = get_ip(usr_id) LIMIT 1;
END

Насколько я понял, все упирается в этот sql запрос

Код:
 INSERT INTO auth_log (`uid`,`ip`,`start`,`end`,`properties`) VALUES (usr_id,INET_ATON(usr_ip),startses,UNIX_TIMESTAMP(),usr_proper);

насколько я понял, эта строка
Код:
mod=pppoe;user=F4:EC:38:F2:40:0F;nas=10.20.0.2
Находится в переменной usr_proper, как правильно в код дописать замену?
13  Главная категория / Nodeny Plus / Re: Хранение и отображение MAC адресов. : 30 Августа 2017, 18:21:09
Если я правильно понял, мак должен быть без разделителей?
Ок, попробую конвертануть базу.
14  Главная категория / Nodeny Plus / Хранение и отображение MAC адресов. : 30 Августа 2017, 17:20:55
Доброго дня всем, есть проблема с отображением мак адресов.
Авторизация Mikrotik+Radius.
В таблицу auth_log в поле properties radius кладет инфу в таком виде
Код:
mod=pppoe;user=F4:EC:38:F2:40:0F;nas=10.20.0.2

В таблице маков по урлу /cgi-bin/stat.pl?a=auth_mac
все отображается приблизительно так
Код:
:0:B::D4::5:9::95
:A:3::4D::1:5::15
:0:F::A6::B:C::93



При заходе в карточку клиента и попытке просмотреть список последних авторизаций вывод такой

Код:
30.08.2017 16:33		1 час 41 мин	172.50.2.164	pppoe	:6:B::3F::6:2::57	nas=10.20.0.2,vlan=EC:08

При нажатии на ссылку мака, формируется урл следующего содержания.
Код:
/cgi-bin/stat.pl?a=mac_info&mac=%3A6%3AB%3A%3A3F%3A%3A6%3A2%3A%3A57
После этого биллинг пишет
Код:
Информация по мак-адресу 00:06:0b:00:3f:00:06:02:00:57
Естественно инфы опять ноль.
Мало того, руками подменял урлы и правильной длины и правильный мак, который есть в базе. Не ищет Грустный
Куда рыть?
Страниц: [1]
Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!