Jump to content

MPD5 + FreeRadius


Recommended Posts

Значит опробовал связку 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 из запроса ибо в БД его нету и радиус из-за этого не хочет стартовать.

Link to post
Share on other sites

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

В /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 (время в секундах)

Edited by jcomm
Link to post
Share on other sites
  • 2 months later...

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

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

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

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

Оператор: =

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

 

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

Link to post
Share on other sites

 

 

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

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

 

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

Link to post
Share on other sites

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

 

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

 

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

 

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

Edited by L1ght
Link to post
Share on other sites

 

 

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

Нині, від третьої ночі сижу сам на 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

Link to post
Share on other sites

 

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

Нині, від третьої ночі сижу сам на 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

 

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

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

Link to post
Share on other sites
Ох, не бачив цього. А давно воно там? :)

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

Edited by nightfly
Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites
Ще питання, а буде підтримка accel-ppp IPoE?

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

 

 

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

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

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

 

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

Edited by nightfly
Link to post
Share on other sites

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

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

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

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

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

Edited by L1ght
Link to post
Share on other sites
Чомусь думаю, що пошук по маку робиться тільки серед активних користувачів, тобто баланс =>0.

ні

 

 

 

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

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

Edited by nightfly
Link to post
Share on other sites

 

 

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

Для всяких таких речей, типу "пошукати всіх юзерів з маками аля 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 запиту - вислухаю з радістю, бо не надто з ним "дружу".

Edited by L1ght
Link to post
Share on other sites

 

 

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

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

 

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

Link to post
Share on other sites

 

 

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-я коні дохнуть.

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

Link to post
Share on other sites

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

:D

 

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

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

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

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

Оператор: =

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

 

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

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

Edited by jcomm
Link to post
Share on other sites

 

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

:D

 

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

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

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

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

Оператор: =

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

 

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

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

 

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

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

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

Edited by L1ght
Link to post
Share on other sites

 

 

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

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

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

Link to post
Share on other sites

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

Наприклад: .

/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.
Edited by L1ght
Link to post
Share on other sites

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

Гадаю треба редагувати відповідь радіуса на перевірку 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 как-бы существенная, не?

Edited by jcomm
Link to post
Share on other sites

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

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

 

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

 

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

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

Edited by L1ght
Link to post
Share on other sites

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

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

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

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

Edited by Lynx100
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By maxkorn
      Доброго дня!
      На Mikrotik NAS, створив нову підмережу для клієнтів, все наче порядок, тільки помітив, що не створюються шейпери в Queues для клієнтів цієї підмережі.
      В логах Stargazer наступне:
      2025-12-29 09:05:57 - [Ubilling] - OnConnect started for user `xxasdb5rzm`:
      2025-12-29 09:05:57 - [Executer] - Success: Firewall entry was updated/created
      2025-12-29 09:05:57 - [Executer] - Error: Queue entry can't be updated, missing
      2025-12-29 09:05:57 - [Executer] - Success: Queue_tree entry was updated/created
      2025-12-29 09:05:57 - [Executer] - Success: DHCP entry was updated/created
      2025-12-29 09:05:57 - [Executer] - Success: ARP entry was updated/created
      2025-12-29 09:05:57 - [Ubilling] - QC: 6, elapsed time: 0.064 sec.
       
      При чому, на тому ж мікротіку є ще кілька підмереж, в яких все проходить нормально:
       
      2025-12-29 08:30:17 - [Ubilling] - OnConnect started for user `22zxp7u58x`:
      2025-12-29 08:30:17 - [Executer] - Success: Firewall entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: Queue entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: Queue_tree entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: DHCP entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: ARP entry was updated/created
      2025-12-29 08:30:17 - [Ubilling] - QC: 6, elapsed time: 0.602 sec.
       
      Налаштування аналогічні, в чому може бути причина?
    • By ProstoName
      Змінювали мережеву карту. Здається все поправив. Працює. Але є невелика проблема - після внесення коштів (коли абонент був відключений), інет в нього не з'являється. Тільки після заміни тарифу на інший (і потім вернувши тариф) в абонента з'являється інет. 
    • By ppv
      Собака-посилака перестала відправляти повідомлення. Підкажіть де шукати.
      Можливо таке після пропадання світла, сервер ребутнувся, але я не впевнений. Візуально все працює, крон працює, а повідомлення висять в черзі, смс така ж картина.

    • By camchatix
      Привіт!
       
      Є багато запитів, щоб інтернет не виключався у північ, а скажімо в день (сигналізації, камери під охороною і тд)
      При щоденній абонплаті - як знімати гроші не у 12:00 у північ, а наприклад у 11 годин дня ?
    • By camchatix
      Добрий день,
      створили запасний NAS із зайвою хромосомою, все працює але коли треба вбити сесію користувача - то у списку NAS серверів лише один (той що основний)
      переназначити швидкість теж не можу
      я так розумію пакети CoA Disconnect, CoA connect, PoD - ідуть на IP адресу старого NAS ?
×
×
  • Create New...