Перейти до

MPD5 + FreeRadius


Рекомендованные сообщения

Значит опробовал связку mpd5 + freeradius.

Нашел ошибку.

В /usr/local/etc/raddb/sql/mysql/dialup.conf нужно поправить строку.

Было (в /usr/local/www/apache22/data/billing/docs/freeradius/raddb/sql/mysql/dialup.conf)
nas_query = "SELECT id, nasname, shortname, type, secret, server FROM ${nas_table}"
Должно быть
nas_query = "SELECT nasname, shortname, type, secret, server FROM ${nas_table}"

То бишь нужно убрать id из запроса ибо в БД его нету и радиус из-за этого не хочет стартовать.

Ссылка на сообщение
Поделиться на других сайтах

Нашел ошибку.

В /usr/local/etc/raddb/sql/mysql/dialup.conf нужно поправить строку.

Спасибо за репорт, зафиксил в таком варианте:

nas_query = "SELECT (@cnt := @cnt + 1) AS `id`, `nasname`, `shortname`, `type`, `secret`, `server` \
    FROM `${nas_table}` \
    CROSS JOIN (SELECT @cnt := 0) AS `dummy` \
    ORDER BY `id`"

Как сделать таймаут сессии на фрирадиусе?

Session-Timeout := 86400 (время в секундах)

Відредаговано jcomm
Ссылка на сообщение
Поделиться на других сайтах
  • 2 months later...

Щоб ще одну тему не створювати, напишу тут.

Треба прикрутити перевірку по calling station id у pppoe.

Мені досить добавити атрибут для мережі pppoe виду?

Атрибут: Calling-Station-Id

Оператор: =

Значення: {MAC}

 

Чи треба ще щось змінити?

Ссылка на сообщение
Поделиться на других сайтах

 

 

Атрибут: Calling-Station-Id Оператор: = Значення: {MAC} Чи треба ще щось змінити?

Мало би працювати. Макрос {MAC} присутній в дефолтній вьюшці radius_reply.

 

P.S. якщо ви насправді вирішили використовувати поточну реалізацію роботи freeradius, думаю варто оновитись до CURRENT збірки - там хоча б нормально параметри NAS-ів показуються тепер.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

В мене нічого не зламається? :)

 

Здається вже зламалось.

 

Notice: Undefined index: COLORIZE_PROFILE_CASH in /usr/local/www/apache22/data/billing/api/libs/api.userprofile.php on line 446

 

Таке світиться коли відркиваю профіль користувача.

Відредаговано L1ght
Ссылка на сообщение
Поделиться на других сайтах

 

 

В мене нічого не зламається? :)

Нині, від третьої ночі сижу сам на CURRENT 0.5.8 rev 3741 - поки що живий.

 

 

 

Notice: Undefined index: COLORIZE_PROFILE_CASH in /usr/local/www/apache22/data/billing/api/libs/api.userprofile.php on line 446 Таке світиться коли відркиваю профіль користувача.

Ну а шо ви  чекали?

 

http://wiki.ubilling.net.ua/doku.php?id=relnotes#section058

Ссылка на сообщение
Поделиться на других сайтах

 

В мене нічого не зламається? :)

Нині, від третьої ночі сижу сам на CURRENT 0.5.8 rev 3741 - поки що живий.

 

 

 

Notice: Undefined index: COLORIZE_PROFILE_CASH in /usr/local/www/apache22/data/billing/api/libs/api.userprofile.php on line 446 Таке світиться коли відркиваю профіль користувача.

Ну а шо ви  чекали?

 

http://wiki.ubilling.net.ua/doku.php?id=relnotes#section058

 

Ох, не бачив цього.

А давно воно там? :)

Ссылка на сообщение
Поделиться на других сайтах
Ох, не бачив цього. А давно воно там? :)

+- 5-10 хвилин від написання коду і вкомічування в репозитарій. Якщо бути точним, то COLORIZE_PROFILE_CASH там матеріалізувався 2014/09/15 23:10

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах

Недивно, що не бачив.

Я заходжу десь раз у неділю, листаю доку, може чого цікавого буде.

Ще питання, а буде підтримка accel-ppp IPoE?

Надто цікаво цей акцель описують.

Ссылка на сообщение
Поделиться на других сайтах
Ще питання, а буде підтримка accel-ppp IPoE?

Оцетіпасього? http://wiki.ubilling.net.ua/doku.php?id=accelppp Та аби я руками ше раз туди добровільно поліз... нєєєєє, дякую :D

 

 

Надто цікаво цей акцель описують.

Хз, комбайн як комбайн. Нічо особливо цікавого не побачив.

Можливо його так люблять, бо для цих їхніх лінуксів то один з небагатьох варіантів, хоч якось працювати, не зламавши мозок об хворий tc та всі інші обвіси.

 

Імха Linux ISG і той концептуальніший - до нього таки буду дивитись, якщо видасться якийсь період, коли "взагалі нема чим зайнятись".

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

Зрозумів :) Дякую!

І ще одне зауваження.

Чомусь думаю, що пошук по маку робиться тільки серед активних користувачів, тобто баланс =>0.

Э користувачі в котрих мак-адрес дефолтно-згенерований, тобто починається на 14:88.

По пошуку мені видає тілько одного такого користувача, котрий активний. Знайшов ще одного такого (тобто с дефолтним маком), він неактивний (баланс <0) і в результатах пошуку його нема.

Відредаговано L1ght
Ссылка на сообщение
Поделиться на других сайтах
Чомусь думаю, що пошук по маку робиться тільки серед активних користувачів, тобто баланс =>0.

ні

 

 

 

По пошуку мені видає тілько одного такого користувача, котрий активний. Знайшов ще одного такого (тобто с дефолтним маком), він неактивний (баланс <0) і в результатах пошуку його нема.

Воно взагалі шукає тільки одного користувача. Бай дефолт там мав би бути строгий пошук тільки по цілому маку і діставання тільки одного юзера, за його маком, росте ногами з примусової унікальності його в рамках всього nethosts. Короче кажучи то "історична" фіча :)

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах

 

 

Воно взагалі шукає тільки одного користувача. Бай дефолт там мав би бути строгий пошук тільки по цілому маку і діставання тільки одного юзера, за його маком, росте ногами з примусової унікальності його в рамках всього nethosts. Короче кажучи то "історична" фіча
 

Зрозумів, буду переберати.

Ссылка на сообщение
Поделиться на других сайтах

Для всяких таких речей, типу "пошукати всіх юзерів з маками аля 14:88" є майстер звітів. Він власне і спрямований на формування різних нестандартних виборок.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

Для всяких таких речей, типу "пошукати всіх юзерів з маками аля 14:88" є майстер звітів. Він власне і спрямований на формування різних нестандартних виборок.

Дякую за наводку.

Ну вийшло в мене наступне:

SQL: SELECT `login`,`ip` FROM `users` WHERE `ip` IN (SELECT `ip` from `nethosts` where `mac` LIKE '14:88%')

Поля виборки: login,ip,mac

Поля вибірки що буде відображене: login,ip

Знаходити повну адресу за колонкою `login` : ТАК

Знаходити ПІБ за колонкою `login`                  : ТАК

Показувати кількість рядків вибірки                : ТАК

 

І воно красиво виводить з логінами, айпішками, адресами.

Якшо є зауваження щодо SQL запиту - вислухаю з радістю, бо не надто з ним "дружу".

Відредаговано L1ght
Ссылка на сообщение
Поделиться на других сайтах

 

 

Якшо є зауваження щодо SQL запиту - вислухаю з радістю, бо не надто з ним "дружу".

Робить - і пох. Так кажете ніби я з ним дружу :D

 

P.S. головне в jcomm нічо про кверізи не питати - від його SQL-я коні дохнуть. :P

Ссылка на сообщение
Поделиться на других сайтах

 

 

nas_query = "SELECT (@cnt := @cnt + 1) AS `id`, `nasname`, `shortname`, `type`, `secret`, `server` \ FROM `${nas_table}` \ CROSS JOIN (SELECT @cnt := 0) AS `dummy` \ ORDER BY `id`"
 

 

 

P.S. головне в jcomm нічо про кверізи не питати - від його SQL-я коні дохнуть.

Для мене був неочікуваним такий фікс, але працює :)

Ссылка на сообщение
Поделиться на других сайтах

P.S. головне в jcomm нічо про кверізи не питати - від його SQL-я коні дохнуть.  :P

:D

 

Щоб ще одну тему не створювати, напишу тут.

Треба прикрутити перевірку по calling station id у pppoe.

Мені досить добавити атрибут для мережі pppoe виду?

Атрибут: Calling-Station-Id

Оператор: =

Значення: {MAC}

 

Чи треба ще щось змінити?

вот почему я запланировал переписать работу с радиусом: нельзя просто так взять и установить кастомные атрибуты для радиуса... обязательно с бубном надо плясать...

Відредаговано jcomm
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

 

P.S. головне в jcomm нічо про кверізи не питати - від його SQL-я коні дохнуть.  :P

:D

 

Щоб ще одну тему не створювати, напишу тут.

Треба прикрутити перевірку по calling station id у pppoe.

Мені досить добавити атрибут для мережі pppoe виду?

Атрибут: Calling-Station-Id

Оператор: =

Значення: {MAC}

 

Чи треба ще щось змінити?

вот почему я запланировал переписать работу с радиусом: нельзя просто так взять и установить кастомные атрибуты для радиуса... обязательно с бубном надо плясать...

 

То мені тепер стрьомно включати таке на працюючій мережі.

Коли плануєте переробити роботу з радіусом?  :rolleyes:

Я звичайно на віртуалці потренуюсь, але хотілось би одразу по "людськи" в мережу вводити.

Відредаговано L1ght
Ссылка на сообщение
Поделиться на других сайтах

 

 

Атрибут: Calling-Station-Id Оператор: = Значення: {MAC}
 

Ось так нічого не дає. Пропускає усе одно з іншим маком, а не тим що є у біллінгу.

Гадаю треба редагувати відповідь радіуса на перевірку Calling-Station-Id, але я не знаю, як правильно зробити...

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

Ковиряюсь у радіусі і зовсім не розумію деяких речей.

Наприклад: .

/usr/local/etc/raddb/sql/mysql/dialup.conf

authorize_check_query = "SELECT (@cnt := @cnt + 1) AS `id`, `UserName`, `Attribute`, `Value`, `op` \
          FROM `${authcheck_table}` \
          CROSS JOIN (SELECT @cnt := 0) AS `dummy` \
          WHERE `UserName` = '%{SQL-User-Name}' \
          ORDER BY `id`"
Чому не ось так наприклад
authorize_check_query = "SELECT (@cnt :=  1) AS `id`, `UserName`, `Attribute`, `Value`, `op` \
          FROM `${authcheck_table}`  WHERE `UserName` = '%{SQL-User-Name}' "
В упор не розумію нафіга там автоінкремент два рази, якщо всеодно повертаємо айді 1.
Відредаговано L1ght
Ссылка на сообщение
Поделиться на других сайтах

Ось так нічого не дає. Пропускає усе одно з іншим маком, а не тим що є у біллінгу.

Гадаю треба редагувати відповідь радіуса на перевірку Calling-Station-Id, але я не знаю, як правильно зробити...

Все атрибуты, которые ставите - идут в *reply таблицы... 

 

 

Ковиряюсь у радіусі і зовсім не розумію деяких речей.

Наприклад: .

/usr/local/etc/raddb/sql/mysql/dialup.conf

authorize_check_query = "SELECT (@cnt := @cnt + 1) AS `id`, `UserName`, `Attribute`, `Value`, `op` \
          FROM `${authcheck_table}` \
          CROSS JOIN (SELECT @cnt := 0) AS `dummy` \
          WHERE `UserName` = '%{SQL-User-Name}' \
          ORDER BY `id`"
Чому не ось так наприклад
authorize_check_query = "SELECT (@cnt :=  1) AS `id`, `UserName`, `Attribute`, `Value`, `op` \
          FROM `${authcheck_table}`  WHERE `UserName` = '%{SQL-User-Name}' "
В упор не розумію нафіга там автоінкремент два рази, якщо всеодно повертаємо айді 1.

 

По вашему варианту все ваши id будут = 1. Вообще он не испольуется радиусом, но: 

 

#######################################################################

#  Authorization Queries
#######################################################################
#  These queries compare the check items for the user
#  in ${authcheck_table} and setup the reply items in
#  ${authreply_table}.  You can use any query/tables
#  you want, but the return data for each row MUST
#  be in the  following order:
#
#  0. Row ID (currently unused)
#  1. UserName/GroupName
#  2. Item Attr Name
#  3. Item Attr Value
#  4. Item Attr Operation
#######################################################################

Поэтому и используется этот самописный инкремент...

 

якщо всеодно повертаємо айді 1

Обратите внимание, что разница между @cnt := 1 и (@cnt := @cnt + 1 как-бы существенная, не?

Відредаговано jcomm
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

Так різниця є, але далі все одно ми робимо @cnt=0 і воно стає =1.

Я так розумію треба правити radius_check?

 

Про інкремент зрозумів, більше не буде таких питаннь :)

 

Жахливо змучився, так і не зміг зрозуміти, як привчити радіус перевіряти і логін, і пароль, і calling-station-id.

Є в когось думки з цього приводу?

Відредаговано L1ght
Ссылка на сообщение
Поделиться на других сайтах

Жахливо змучився, так і не зміг зрозуміти, як привчити радіус перевіряти і логін, і пароль, і calling-station-id.

Є в когось думки з цього приводу?

простота роботи білінгу з радіусом вражає.... видно що писався для того щоб можна було легко інтегрувати з будь-яким софтом або желізом будь-якого виробника

хоча і нічого дивного судячи з того що радіус напряму через модуль sql в бд лазить. з іншого боку - простота - частина успіху..

Відредаговано Lynx100
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від sanyadnepr
      Приветствую всех.
      Подскажите пожалуйста где копнуть и нет ли проблемы со стороны протокола взаимодействия сити24 или возможно не учтена необходимая проверка в модуле сити24 в Ubilling, пока писал понял что похоже в проверке payID, но это не точно.  
      Недавно обнаружилось с сити24 начали прилетать дубликаты платежей, в целом платежей мало, два одинаковых запроса Pay с одинаковым transactionID и payID в одну секунду одному платежному ID при этом биллинг "думает" примерно чуть больше минуты и отвечает одним ответом <result>0</result>, сити24 утверждает что ответ они не получили и по протоколу дальше повторяет запросы дублем, биллинг ответ и так по кругу, сити24 спрашивает каким образом с одинаковым payID от сити24 билл продолжает обрабатывать запросы и пополнять абоненту счет раз в 5 минут примерно, на одну и туже сумму, ведь этот payID уже был обработан предполагают сити24 согласно протоколу.
      Конечно есть вопрос к сити24 зачем они дублем присылают два запроса, но они отвечают что эта ситуация учтена в протоколе и проблема на стороне биллинга, потому что он пополняет счет по уже обработанному одинаковому payID.
      При этом transactionID в дублях одинаковый, но с каждым новым дублем разный.
      Если зафаерволить запросы от сити24, но оставить возможность отвечать то после блокировки билл отправляет 2-3 минуты 6 ответов <account>0001</account>  <result>0</result>.
      После снятия блокировки, дубли и платежи нескольких проблемных абонентов прилетают так же по кругу, при этом и с некоторыми новыми пополнениями происходит аналогичная ситуация.
      В openpayz в платежах transactionID и не видно payID.
    • Від nightfly
      Ubilling 1.4.3 rev 9058 The Bladewood Grove
       
      Зміни в структурі БД. alter.ini: нові опції OPHANIMFLOW_ENABLED та OPHANIMFLOW_URLS котрі вмикають та керують інтеграцією з OphanimFlow. alter:ini: нова опція PHOTOSTORAGE_POSTPROCESSING, що вмикає післяобробку зображень при завантаженні в Сховище зображень. alter:ini: нова опція PHOTOSTORAGE_WATERMARK, що вмикає розміщення вотермарки на всіх зображеннях, що завантажуються. alter:ini: нова опція PHOTOSTORAGE_RECOMPRESS, що вмикає зміну компрессії завантажених зображень. alter:ini: нова опція PHOTOSTORAGE_AUTORESIZE, що вмикає автоматичне та лагідне масштабування зображень конячих розмірів. alter:ini: нова опція PHOTOSTORAGE_DRAWIMGINFO, що вмикає вдруковування в зображення відлагоджувальної інформації. alter.ini: нова опція ONDEMAND_CHARTS, що вмикає відкладене завантаження графіків завантаження користувацької смуги. userstats.ini: нова опція OPHANIM_ENABLED, що вмикає інтеграцію OphanimFlow в кабінеті користувача. Модуль Заздрість: тепер авторизаційні дані пристроїв, не відображаються в списку пристроїв. Модуль “Заздрість”: при створенні та редагуванні пристроїв, для полів “пароль” та “enable пароль” тепер використовуються інпути паролів. Модуль “Заздрість”: заздрісним пристроям додано нове поле “Порт”. Тепер в скриптах можна використовувати, відповідний макрос {PORT}. Модуль “Статистика трафіку користувача”: проведено радикальний рефакторинг. Модуль “Статистика трафіку користувача”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Статистика трафіку користувача”: виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Модуль “Статистика трафіку користувача”: додано можливість відображення графіків за останню годину з OphanimFlow. Модуль “Користувачі”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Сховище зображень”: тепер додатково перевіряє завантажувані зображення на тему їх валідності. Модуль “Фінансові операції”: виправлено відображення суми платежів користувача. Remote API: новий виклик ophanimtraff, який просто бере і синхронізує локальну БД з віддаленими джерелами OphanimFlow. Remote API: виклик userbynum тепер також опційно містить поле з “Платіжним ID” користувача. Глобально: у всіх полях вводу паролів, окрім форми входу, тепер відображається елемент керування “показати/приховати” пароль. Кабінет користувача: в модулі “Трафік” додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Кабінет користувача: в модулі “Трафік” виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Кабінет користувача: в модулі “Відеоспостереження” для NVR WolfRecorder замінено розділювач попередньо заповнених даних авторизації. OpenPayz: додано frontend portmonemulti, для отримання платежів від різних контрагентів. Інформацію по контрагентам бере з біллінгу, також використовую розширену інформацію контрагента. Платіжна система в контрагенті мусить бути створена, як PORTMONE 1984tech: додано функціонал генерації RPZ для isc-bind, спасибі @misterromanbush  
      Повний чейнджлог
      Оновлена демка
       

    • Від mac
      Здається, після оновлення PHP 7.4 до PHP 8.2 feesharvester припинив працювати:
       
      /usr/local/bin/curl "http://127.0.0.1/billing/?module=remoteapi&key={SERIAL}&action=feesharvester" <br /> <b>Fatal error</b>: Uncaught TypeError: Unsupported operand types: string - string in {UBPATH}/billing/api/libs/api.fundsflow.php:570 Stack trace: #0 {UBPATH}/billing/modules/remoteapi/feesharvester.php(22): FundsFlow-&gt;harvestFees('2024-01') ...  
      Невеличке розслідування врешті з'ясувало, що це через наявність пробілу у деяких логінах абонентів. Як так сталося? Тому що інколи був неуважно додан трейлінг пробіл до номеру будинка і цей пробіл потрапив до логіну абоненту. Логін абоненту неможливо змінити ніяким чином штатними засобами. Я не розглядаю створення нового абонента для усунення помілки.

      Був обран такий шлях вирішення проблеми. Заміну функції php explode() знайшов у мережі. Мабуть це станеться в нагоді:

       
      diff api.fundsflow.php.bak api.fundsflow.php.new 559c559 < $eachfee = explode(' ', $eachline); --- > $eachfee = preg_split("~(?<!\\\\)(?:\\\\{2})*'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(*SKIP)(*F)|\s+~s" , $eachline);  
    • Від Dilan
      Собственно ищу кто сделает такую связку с нуля под ключ. Тз высылаю в личку. Заранее спасибо.
    • Від ukrtelekom
      Доброго часу!
      Шукається адміністратор віддалений для разової роботи по коригуванню працюючого Ubilling з мікротами. Якщо стосунки зклєяться- то до постійної додаткової копійки. 
      Всім заздалегідь дякую. Хейти, бажано не писати. Контакти в приватні повідомлення або O73283344O
×
×
  • Створити нове...