Биллинговая система Nodeny

Главная категория => Nodeny Plus => Тема начата: boomer666 от 20 Мая 2013, 15:05:57



Название: Привязка мак-адреса по pppoe
Отправлено: boomer666 от 20 Мая 2013, 15:05:57
Добрый день.
Помогите изменить процедуру чтобы проверялся мак-адрес.
DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
  SELECT id,name,'Password' AS Attribute,AES_DECRYPT(passwd,'hardpass') AS Value,'=='
    FROM users WHERE name=login;
END$$
DELIMITER ;


чтобы проверялся мак, а если мас-адрес не записан - привязка для того логина нету


Название: Re: Привязка мак-адреса по pppoe
Отправлено: Efendy от 20 Мая 2013, 15:53:16
Процедура проверяющая связку логин-пароль-мак такая:

Код:
DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64), IN umac VARCHAR(64))
BEGIN
  SELECT LOWER(REPLACE(umac, ':', '')) INTO umac;
  SELECT u.id, u.name, 'Password' AS Attribute, AES_DECRYPT(u.passwd,'hardpass') AS Value,'=='
    FROM users u JOIN mac_uid m ON u.id=m.uid WHERE u.name=login AND m.mac=umac;
END$$
DELIMITER ;


Код:
ee /usr/local/etc/raddb/sql.conf
В конце файла находим строку authorize_check_query = ... и меняем ее на:

Код:
authorize_check_query = "call radcheck('%{User-Name}', '%{Calling-Station-Id}')"


Название: Re: Привязка мак-адреса по pppoe
Отправлено: elite от 21 Мая 2013, 08:31:12
По-хорошему, надо немного не так делать. PPPoE соединение поднимать в любом случае, но в зависимости от того, какой мак адрес у клиента, пускать его в инет или посылать в пешее эротическое путешествие.


Название: Re: Привязка мак-адреса по pppoe
Отправлено: YuSHa от 19 Июня 2013, 14:07:21
По-хорошему, надо немного не так делать. PPPoE соединение поднимать в любом случае, но в зависимости от того, какой мак адрес у клиента, пускать его в инет или посылать в пешее эротическое путешествие.
и как сделать эту проверку на валидность мака?


Название: Re: Привязка мак-адреса по pppoe
Отправлено: boomer666 от 11 Сентября 2013, 14:17:12
может кому пригодится.
Код:
DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
  SELECT u.id, u.name, 'Password' AS Attribute, AES_DECRYPT(passwd,'hardpass3') AS Value,'=='
AS Op FROM users u WHERE u.name=login ;
IF ((SELECT m.uid FROM users u JOIN mac_uid m WHERE uid=u.id ORDER BY m.uid DESC LIMIT 1) <> '')
THEN
  SELECT users.id,users.name,'Calling-Station-Id' AS Attribute,mac_uid.mac AS Value,'==' AS Op FROM users,mac_uid WHERE mac_uid.uid=users.id AND users.name=login ORDER BY mac_uid.uid DESC LIMIT 1;
END IF;   
END$$
DELIMITER ;

может что то нет так но она работает)


Название: Re: Привязка мак-адреса по pppoe
Отправлено: Efendy от 28 Октября 2013, 18:57:29
Если мак приходит с двоеточиями или тире, то в mpd5:

Код:
set pppoe mac-format unformatted

http://sourceforge.net/p/mpd/discussion/44693/thread/72d9d137/#41c5


Название: Re: Привязка мак-адреса по pppoe
Отправлено: 0xbad0c0d3 от 28 Октября 2013, 19:23:21
Дык в радиусе есть модуль rewrite oO меняй какие хочешь атрибуты
man rlm_attr_rewrite


Название: Re: Привязка мак-адреса по pppoe
Отправлено: Efendy от 28 Октября 2013, 19:26:35
Дык в радиусе есть модуль rewrite oO меняй какие хочешь атрибуты
man rlm_attr_rewrite
мой вариант короче, не каждый из "админов" осилит rewrite


Название: Re: Привязка мак-адреса по pppoe
Отправлено: Groov от 28 Октября 2013, 19:38:07
Такова проблема существует у кого mpd5.7

Решение:
качаем исходники от суда http://mpd.cvs.sourceforge.net/viewvc/mpd/

добавляем параметр в конфиг mpd  set pppoe mac-format unformatted

И всё  работает )))

было

Calling-Station-Id = "00:25:22:e8:7e:a5"

стало

Calling-Station-Id = "002522e87ea5"


Название: Re: Привязка мак-адреса по pppoe
Отправлено: Groov от 28 Октября 2013, 21:18:17
Такова проблема существует у кого mpd5.7

Решение:
качаем исходники от суда http://mpd.cvs.sourceforge.net/viewvc/mpd/

добавляем параметр в конфиг mpd  set pppoe mac-format unformatted

И всё  работает )))

было

Calling-Station-Id = "00:25:22:e8:7e:a5"

стало

Calling-Station-Id = "002522e87ea5"

проверил без  set pppoe mac-format unformatted после того как перекомпилил ! всё ок ! можно и не добавлять .