Биллинговая система Nodeny
26 Ноября 2024, 02:15:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 ... 3 4 [5] 6
  Печать  
Автор Тема: Nodeny plus + Debain + Accel-ppp  (Прочитано 40184 раз)
fet4
Старожил
****

Карма: 2
Offline Offline

Сообщений: 326


Просмотр профиля Email
« Ответ #60 : 06 Декабря 2016, 20:27:27 »

Сделал так вообщем.
Код:
[ipoe]
password=ipoe

Код:
DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
  SELECT Null, login, 'Cleartext-Password' AS Attribute, 'ipoe' AS Value,':=';
END$$
DELIMITER ;
Записан
sever
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 82


Просмотр профиля
« Ответ #61 : 07 Декабря 2016, 17:44:33 »

Код:
username=ifname
#password=empty
У меня работает так
Записан
sever
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 82


Просмотр профиля
« Ответ #62 : 08 Декабря 2016, 10:57:01 »

+ в радиусе users.conf

Код:
DEFAULT Auth-Type := Accept
Записан
fet4
Старожил
****

Карма: 2
Offline Offline

Сообщений: 326


Просмотр профиля Email
« Ответ #63 : 08 Декабря 2016, 12:14:40 »

+ в радиусе users.conf

Код:
DEFAULT Auth-Type := Accept
Да. То что нужно. Спасибо.
Записан
sever
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 82


Просмотр профиля
« Ответ #64 : 09 Декабря 2016, 15:32:00 »

Почемуто не срабатывает процедура 'radstop', в следствии чего ключик продолжает горет зелёным после того, как на NASe сессии уже нет.

Код:
DROP PROCEDURE IF EXISTS `radstop`;
DELIMITER $$
CREATE PROCEDURE `radstop`(IN login VARCHAR(64))
BEGIN
  DECLARE usr_id INT;
  SELECT id INTO usr_id FROM users WHERE name=login LIMIT 1;
  DELETE FROM auth_now WHERE ip= get_ip(usr_id) LIMIT 1;
END$$
DELIMITER ;

Код:
mysql> select * from auth_now where ip='10.10.44.21';
+-------+--------------+------------+------------+-----------------------------------------------------------------------------+
| id    | ip           | start      | last       | properties                                                                  |
+-------+--------------+------------+------------+-----------------------------------------------------------------------------+
| 11448 | 10.10.44.21 | 1481287197 | 1481288941 | mod=ipoe;user=0025b35c0899;nas=192.168.242.152;ses=6ec228e3b4cdebee;nid=NAS2 |
+-------+--------------+------------+------------+-----------------------------------------------------------------------------+
1 row in set (0.00 sec)

Код:
mysql> CALL radstop('10.10.44.21');
Query OK, 0 rows affected, 3 warnings (0.05 sec)

mysql>

Сессия продолжает жить своей жизнью
Код:
mysql> select * from auth_now where ip='10.10.44.21';
+-------+--------------+------------+------------+-----------------------------------------------------------------------------+
| id    | ip           | start      | last       | properties                                                                  |
+-------+--------------+------------+------------+-----------------------------------------------------------------------------+
| 11448 | 10.10.44.21 | 1481287197 | 1481288941 | mod=ipoe;user=0025b35c0899;nas=192.168.242.152;ses=6ec228e3b4cdebee;nid=NAS2 |
+-------+--------------+------------+------------+-----------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>

А прибивается только так
Код:
mysql> DELETE from auth_now WHERE ip='10.10.44.21';
Query OK, 1 row affected (0.05 sec)

mysql>

Что я делаю не так?
Записан
Pa4ka
Старожил
****

Карма: 4
Offline Offline

Сообщений: 281

591884591
Просмотр профиля Email
« Ответ #65 : 09 Декабря 2016, 16:11:40 »

Почемуто не срабатывает процедура 'radstop', в следствии чего ключик продолжает горет зелёным после того, как на NASe сессии уже нет.

Код:
DROP PROCEDURE IF EXISTS `radstop`;
DELIMITER $$
CREATE PROCEDURE `radstop`(IN login VARCHAR(64))
BEGIN
  DECLARE usr_id INT;
  SELECT id INTO usr_id FROM users WHERE name=login LIMIT 1;
  DELETE FROM auth_now WHERE ip= get_ip(usr_id) LIMIT 1;
END$$
DELIMITER ;

Код:
mysql> select * from auth_now where ip='10.10.44.21';
+-------+--------------+------------+------------+-----------------------------------------------------------------------------+
| id    | ip           | start      | last       | properties                                                                  |
+-------+--------------+------------+------------+-----------------------------------------------------------------------------+
| 11448 | 10.10.44.21 | 1481287197 | 1481288941 | mod=ipoe;user=0025b35c0899;nas=192.168.242.152;ses=6ec228e3b4cdebee;nid=NAS2 |
+-------+--------------+------------+------------+-----------------------------------------------------------------------------+
1 row in set (0.00 sec)

Код:
mysql> CALL radstop('10.10.44.21');
Query OK, 0 rows affected, 3 warnings (0.05 sec)

mysql>

Сессия продолжает жить своей жизнью
Код:
mysql> select * from auth_now where ip='10.10.44.21';
+-------+--------------+------------+------------+-----------------------------------------------------------------------------+
| id    | ip           | start      | last       | properties                                                                  |
+-------+--------------+------------+------------+-----------------------------------------------------------------------------+
| 11448 | 10.10.44.21 | 1481287197 | 1481288941 | mod=ipoe;user=0025b35c0899;nas=192.168.242.152;ses=6ec228e3b4cdebee;nid=NAS2 |
+-------+--------------+------------+------------+-----------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>

А прибивается только так
Код:
mysql> DELETE from auth_now WHERE ip='10.10.44.21';
Query OK, 1 row affected (0.05 sec)

mysql>

Что я делаю не так?
у Вас наверно модуль dhcp тоже запущен на сервере с радиус и биллингом?
если да то я так как у вас изменил название модуля авторизации заместо dhcp у вас ipoe
а в модуле dhcp файлик create.kernel.dhcp.pm изменил у меня 45-я строчка
Цитировать
Db->do("CALL set_auth(?,?)", $p{ipa}, '');
на
Цитировать
Db->do("CALL set_auth(?,?)", $p{ipa}, 'mod=dhcp');
Записан
sever
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 82


Просмотр профиля
« Ответ #66 : 09 Декабря 2016, 17:07:33 »


Цитировать
у Вас наверно модуль dhcp тоже запущен на сервере с радиус и биллингом?
если да то я так как у вас изменил название модуля авторизации заместо dhcp у вас ipoe
а в модуле dhcp файлик create.kernel.dhcp.pm изменил у меня 45-я строчка
Цитировать
Db->do("CALL set_auth(?,?)", $p{ipa}, '');
на
Цитировать
Db->do("CALL set_auth(?,?)", $p{ipa}, 'mod=dhcp');

Да помогло, спасибо

А вопрос относительно входа клиента в билинг без непосредственного ввода логина/пароля как организован?
Если username  и password для каждого
клиент1 /login stat.3001.3849 /pass stat.3001.3849
клиент2 /login stat.3001.3850 /pass stat.3001.3850

Радиус авторизация также проходит по username=ifname, password=username
Записан
fet4
Старожил
****

Карма: 2
Offline Offline

Сообщений: 326


Просмотр профиля Email
« Ответ #67 : 09 Декабря 2016, 20:56:59 »

Цитировать
у Вас наверно модуль dhcp тоже запущен на сервере с радиус и биллингом?
если да то я так как у вас изменил название модуля авторизации заместо dhcp у вас ipoe
а в модуле dhcp файлик create.kernel.dhcp.pm изменил у меня 45-я строчка
Цитировать
Db->do("CALL set_auth(?,?)", $p{ipa}, '');
на
Цитировать
Db->do("CALL set_auth(?,?)", $p{ipa}, 'mod=dhcp');

Т.е. теперь модуль dhcp будет продлевать только тем у кого mod=dhcp? Если например для accel я сделаю mod=ipoe, то ключик будет правильно отрабатывать?
Записан
sever
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 82


Просмотр профиля
« Ответ #68 : 12 Декабря 2016, 08:38:21 »

Цитировать
у Вас наверно модуль dhcp тоже запущен на сервере с радиус и биллингом?
если да то я так как у вас изменил название модуля авторизации заместо dhcp у вас ipoe
а в модуле dhcp файлик create.kernel.dhcp.pm изменил у меня 45-я строчка
Цитировать
Db->do("CALL set_auth(?,?)", $p{ipa}, '');
на
Цитировать
Db->do("CALL set_auth(?,?)", $p{ipa}, 'mod=dhcp');

Т.е. теперь модуль dhcp будет продлевать только тем у кого mod=dhcp? Если например для accel я сделаю mod=ipoe, то ключик будет правильно отрабатывать?

Нужно ещё процедуры поменять.
Код:
DROP PROCEDURE IF EXISTS `radupdate`;
DELIMITER $$
CREATE PROCEDURE `radupdate`(IN login VARCHAR(64), IN ip VARCHAR(16), IN properties VARCHAR(255))
BEGIN
  DECLARE usr_id INT;
  DECLARE usr_ip VARCHAR(15) DEFAULT NULL;
  SELECT id INTO usr_id FROM users WHERE name=login LIMIT 1;
  SELECT get_ip(usr_id) INTO usr_ip;
  CALL set_auth(usr_ip, CONCAT('mod=ipoe;',REPLACE(properties,':','')));
END$$
DELIMITER ;

Работает нормально.
Может повлиять на то, что рррое сессии останутся без ключика.
Записан
Pa4ka
Старожил
****

Карма: 4
Offline Offline

Сообщений: 281

591884591
Просмотр профиля Email
« Ответ #69 : 12 Декабря 2016, 10:32:04 »

Цитировать
у Вас наверно модуль dhcp тоже запущен на сервере с радиус и биллингом?
если да то я так как у вас изменил название модуля авторизации заместо dhcp у вас ipoe
а в модуле dhcp файлик create.kernel.dhcp.pm изменил у меня 45-я строчка
Цитировать
Db->do("CALL set_auth(?,?)", $p{ipa}, '');
на
Цитировать
Db->do("CALL set_auth(?,?)", $p{ipa}, 'mod=dhcp');

Т.е. теперь модуль dhcp будет продлевать только тем у кого mod=dhcp? Если например для accel я сделаю mod=ipoe, то ключик будет правильно отрабатывать?

Нужно ещё процедуры поменять.
Код:
DROP PROCEDURE IF EXISTS `radupdate`;
DELIMITER $$
CREATE PROCEDURE `radupdate`(IN login VARCHAR(64), IN ip VARCHAR(16), IN properties VARCHAR(255))
BEGIN
  DECLARE usr_id INT;
  DECLARE usr_ip VARCHAR(15) DEFAULT NULL;
  SELECT id INTO usr_id FROM users WHERE name=login LIMIT 1;
  SELECT get_ip(usr_id) INTO usr_ip;
  CALL set_auth(usr_ip, CONCAT('mod=ipoe;',REPLACE(properties,':','')));
END$$
DELIMITER ;

Работает нормально.
Может повлиять на то, что рррое сессии останутся без ключика.
если Вы лично мне то спасибо но я не использую эти процедуры, только функции get_ip_w_net и set_auth
Записан
fet4
Старожил
****

Карма: 2
Offline Offline

Сообщений: 326


Просмотр профиля Email
« Ответ #70 : 12 Декабря 2016, 11:57:09 »

Нет это мне Смеющийся

У  меня вообще так сейчас pppoe + isc_dhcp + accel-ppp-ipoe+radius. Так вот у клиентов accel-ppp-ipoe+radius неправильно отрабатывает ключик, видимо от модуля dhcp или забить пока не переведу с isc_dhcp на accel и выключу модуль dhcp или подправить как-то это дело. Так все-таки нужен ли запущенный модуль если связка dhcp+radius ?

Цитировать
Может повлиять на то, что рррое сессии останутся без ключика.
Ну это если одна процедура на то и другое? у меня разные.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #71 : 12 Декабря 2016, 13:02:10 »

Если речь идет о модуле ядра dhcp, то все, что делает этот модуль - периодически запускает CALL set_auth(?,?). Нужен он вам или нет - думайте исходя из логики того, что вы соорудили. Если то, что вы сконструировали, периодически посылает "сигнал" на радиус, то он вам не нужен. Он нужен только в том случае: клиент авторизовался, проходит несколько минут и модуль auth удаляет по таймауту авторизацию у абона. Модуль dhcp просто "поддерживает" эту авторизацию.
Записан
sever
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 82


Просмотр профиля
« Ответ #72 : 12 Декабря 2016, 15:27:11 »



А вопрос относительно входа клиента в билинг без непосредственного ввода логина/пароля как организован?
Если username  и password для каждого
клиент1 /login stat.3001.3849 /pass stat.3001.3849
клиент2 /login stat.3001.3850 /pass stat.3001.3850

Радиус авторизация также проходит по username=ifname, password=username


Сам ответил на свой вопрос.
в файле ip.pl
замена строки
Код:
my %p = Db->line("SELECT uid FROM v_ips WHERE auth=1 AND type='static' AND ip=?", $ses::ip);
на
Код:
my %p = Db->line("SELECT uid FROM v_ips WHERE auth=1 AND type='dynamic' AND ip=?", $ses::ip);
Записан
fet4
Старожил
****

Карма: 2
Offline Offline

Сообщений: 326


Просмотр профиля Email
« Ответ #73 : 12 Декабря 2016, 19:29:13 »

Если речь идет о модуле ядра dhcp, то все, что делает этот модуль - периодически запускает CALL set_auth(?,?). Нужен он вам или нет - думайте исходя из логики того, что вы соорудили. Если то, что вы сконструировали, периодически посылает "сигнал" на радиус, то он вам не нужен. Он нужен только в том случае: клиент авторизовался, проходит несколько минут и модуль auth удаляет по таймауту авторизацию у абона. Модуль dhcp просто "поддерживает" эту авторизацию.

Просто в данным момент авторизация по dhcp происходит двумя способами с радиусом и без. Так вот те кто с радиусом, у них после окончания сессии не пропадает ключ.
Записан
sever
Пользователь
**

Карма: 1
Offline Offline

Сообщений: 82


Просмотр профиля
« Ответ #74 : 08 Февраля 2017, 16:08:30 »


Выявился глюк взаимодейтсвия nodeny - accel-ppp в режиме рррое
Абонент прошедший авторизацию получил из динамического пула адрес
Так вот адрес, выделенный абоненту в билинге, не соответствует адресу, выданным accel

к примеру  в билинге вижу, login_A динамически выделен адрес 1.х.х.27,   mac fc:f5:28:48:b5:61

# accel-cmd show sessions | grep "1.x.x.27"
 ppp465 | login_D   | 14:d6:4d:2d:c5:6b | 1.x.x.27  |            | pppoe |      | active | 1.19:25:05

# accel-cmd show sessions | grep "fc:f5:28:48:b5:61"
 ppp441 | login_A   | fc:f5:28:48:b5:61 | 1.x.x.4   |            | pppoe |      | active | 2.03:17:25
Записан
Страниц: 1 ... 3 4 [5] 6
  Печать  
 
Перейти в:  

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