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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 2 [3] 4
  Печать  
Автор Тема: Вытаскивание маков юзеров из радиус запросов.  (Прочитано 16952 раз)
Maks
NoDeny
Ветеран
*

Карма: 13
Offline Offline

Сообщений: 575


Скажи спасибо - подними карму.

https://t.me/smv https://t.me/smv_wz
Просмотр профиля Email
« Ответ #30 : 28 Августа 2010, 13:37:58 »

А подробнее что куда добавить...

Я не сильно жадный..

А то вирусовые абоны которые ип получают по DHCP ( У меня PPPoE+DHCP) уже кумарят, а вычислить их нет возможности.(кроме как ходить по свичам)
Записан

Nodeny общение
https://t.me/nodeny_chat
Elisium
NoDeny
Старожил
*

Карма: 19
Offline Offline

Сообщений: 360


На форумах "спасибом" называется плюс к карме.


Просмотр профиля
« Ответ #31 : 28 Августа 2010, 22:53:21 »

...
А то вирусовые абоны которые ип получают по DHCP ( У меня PPPoE+DHCP) уже кумарят, а вычислить их нет возможности.(кроме как ходить по свичам)

Не хочется показаться рекламой или чемто подобным - UserSide довольно неплохо разруливает разные ситуации с МАКами и со свичами ...
Главное, что бы ваше железо было в списке поддерживаемых. ТП там довольно адекватная.
Я бы даже сказал, ДАЖЕ адекватнее Длинковской... И исправить ЧТОТО под ваше железо могу довольно быстро ...
п.с. ДА, мне их ТП понравилось. Столь быстрой и, главное, АДЕКВАТНОЙ, реакции я не видел вообще.
п.п.с. Правда, система стоит денех и наполовину сырая. НО - в плане обородования (ваш случай) есть ОЧЕНЬ серьезные сдвиги.
Два соответствующих модуля  для Нодени стоят БОЛЬШЕ денег, чем весь Юзерсайд.
Записан
Maks
NoDeny
Ветеран
*

Карма: 13
Offline Offline

Сообщений: 575


Скажи спасибо - подними карму.

https://t.me/smv https://t.me/smv_wz
Просмотр профиля Email
« Ответ #32 : 29 Августа 2010, 11:36:35 »

У меня нет умных железок! , точнее есть 3, но это мелочь.

Мне нужно только чтоб маки записывались в доп данные.. все, что тут сложного то?
Записан

Nodeny общение
https://t.me/nodeny_chat
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #33 : 29 Августа 2010, 12:25:41 »

труднее все это прикрутить к интерфейсу ноденай )
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #34 : 29 Августа 2010, 12:38:16 »

создай таблицу в бд bill с именем mac_log
сделай 2 поля (id и mac)
тип varchar, размеры полей на свое усмотрение, для мака хватит 18 символов
сравнение cp1251_general_ci
поле id - primary key

в raddb/sql.conf добавляешь строку
Код:
accounting_start_query = "insert into mac_log (id,mac) values ('%{SQL-User-Name}', ('%{Calling-Station-Id}'))"

в результате чего, в бд будут писаться:
Код:
testerlogin	00:40:F4:AE:DF:5F
можно добавить туда еще поле времени
правильней заносить бы туда id биллинга, а не логин, но в радиус запросе мы не можем этим оперировать, т.к. нет этих данных еще.

для продолжения дальше, нужно знать, тебе нужно чтобы туда писались все запросы или только прошедшие сверку паролей?
иначе продолжать нужно в postauth_query
« Последнее редактирование: 29 Августа 2010, 12:43:07 от stimels » Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #35 : 29 Августа 2010, 12:59:50 »

а можно писать в уже готовую таблицу с допданными, тогда сразу ничего создавать не надо, а добавить условие where
и будет автоматом писаться в доп таблицы нужному юзеру.

единственное НО, это если злоумышленний заюзает чей-то логин, то его логин запишется в доп данные тому юзеру.
посему логически не верно писать сразу в доп данные юзеру этот мак
Записан
Maks
NoDeny
Ветеран
*

Карма: 13
Offline Offline

Сообщений: 575


Скажи спасибо - подними карму.

https://t.me/smv https://t.me/smv_wz
Просмотр профиля Email
« Ответ #36 : 29 Августа 2010, 13:04:10 »


для продолжения дальше, нужно знать, тебе нужно чтобы туда писались все запросы или только прошедшие сверку паролей?
иначе продолжать нужно в postauth_query

Записывать нужно тех кто прошел проверку.
А в доп данных ка сделать чтоб маки записывались все а не перезаписывались новыми.
Записан

Nodeny общение
https://t.me/nodeny_chat
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #37 : 29 Августа 2010, 13:49:41 »

заткнулся на том, чтобы передать в процедуру radpostauth переменную Calling-Station-Id
какие то затыки идут при объявлении процедуры и входящих переменных   Строит глазки
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #38 : 29 Августа 2010, 14:00:23 »

такс, исправил

так будет выглядеть в sql.conf
Код:
postauth_query = "call radpostauth('%{SQL-User-Name}','%{Calling-Station-Id}')"

а процедура так
Код:
CREATE PROCEDURE `radpostauth` (IN login VARCHAR(64), IN mac VARCHAR(20))

остается только сделать грамотно insert в нужную табличку и дело шляпе
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #39 : 29 Августа 2010, 15:03:17 »

если я создал доп.поле _mac

и сделал в процедуре такой вот sql update
Код:
update dopdata set field_value=mac WHERE parent_id=(SELECT id FROM users WHERE name=login) AND field_alias='_mac';

то все вроде бы классно, в доп данные будут заноситься данные о маках, но!
если там раньше ничего небыло раньше, то этого значения нет и update делать некуда.

Efendy или кто-нибудь еще может подскажет как правильно логически решить условие?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4783



Просмотр профиля
« Ответ #40 : 30 Августа 2010, 11:51:44 »

ну делай upadte, если вернул 0 рядов - делай Insert
Записан
PBNM
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 20


Просмотр профиля
« Ответ #41 : 30 Августа 2010, 12:42:11 »

Реализовал немного иначе - создал таблицу login1 аналогичную login + поле call_from .
и

CREATE PROCEDURE `radreply1` (IN login VARCHAR(64),IN call_fr VARCHAR(64))
BEGIN
 ...
INSERT into login1 (mid,act,time,call_from) VALUES (usr_id,47,unix_timestamp(),call_fr);
...
END;

и в sql.conf тогда
authorize_reply_query = "call radreply1('%{SQL-User-Name}','%{Calling-Station-Id}%{Tunnel-Client-Endpoint}')"
« Последнее редактирование: 30 Августа 2010, 12:44:11 от PBNM » Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #42 : 30 Августа 2010, 13:59:36 »

ну делай upadte, если вернул 0 рядов - делай Insert
действительно, может даже сделаю проще через   UPDATE OR INSERT INTO
Записан
PBNM
NoDeny
Пользователь
*

Карма: 0
Offline Offline

Сообщений: 20


Просмотр профиля
« Ответ #43 : 30 Августа 2010, 15:43:47 »

 Если через radreply то через insert - в таблице login1 получаем и сеансы работы клиентов - вдруг кто-то с разных mac / local_ip работает ...
Записан
stix
NoDeny
Спец
*

Карма: 72
Offline Offline

Сообщений: 1872


Nodeny Support Team

205539
Просмотр профиля
« Ответ #44 : 30 Августа 2010, 16:04:51 »

Если через radreply то через insert - в таблице login1 получаем и сеансы работы клиентов - вдруг кто-то с разных mac / local_ip работает ...
можно тогда добавить в процедуру и вывод в биллинге, там где клиентсткая статистика > сеансы работы вклажка, добавить столбец еще один и привязать к этой таблице выборку.
если по vpn, то будет виден с какого подконектился ip, если mac - то с какого мака
ну и брать эти данные с Calling-Station-Id.
думаю эта фича полезна будет многим работающим с ppp
Записан
Страниц: 1 2 [3] 4
  Печать  
 
Перейти в:  

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