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

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 [2] 3
  Печать  
Автор Тема: Привязка ip к login  (Прочитано 25305 раз)
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #15 : 24 Октября 2019, 22:55:57 »

Я вставил, смотри лог в первом посте.
Код:
delete_stale_sessions = yes
        sql_user_name = ""
        default_user_profile = ""
        client_query = "SELECT id,nasname,shortname,type,secret FROM nas"
        authorize_check_query = "call radcheck('%{User-Name}', 0)"
        authorize_reply_query = "call radreply('%{User-Name}', '%{User-Password}')"
        safe_characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /"
        auto_escape = no
   accounting {
        reference = "%{tolower:type.%{Acct-Status-Type}.query}"
    type {
     accounting-on {
     }
     accounting-off {
     }
     start {
        query = "call radupdate('%{User-Name}','%{Framed-IP-Address}',                        'user=%{Calling-Station-Id};nas=%{NAS-IP-Address};ses=%{Acct-Session-Id}')"
     }
     interim-update {
        query = "call radupdate('%{User-Name}','%{Framed-IP-Address}',                        'user=%{Calling-Station-Id};nas=%{NAS-IP-Address};ses=%{Acct-Session-Id}')"
     }
     stop {
        query = "call radstop('%{User-Name}', '%{Framed-IP-Address}')"
     }
    }
   }
   post-auth {
        reference = ".query"
        query = "call radupdate('%{User-Name}','%{reply:Framed-IP-Address}',                'user=%{Calling-Station-Id};nas=%{NAS-IP-Address};ses=%{Acct-Session-Id}')"
   }
  }
rlm_sql (sql): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and linked
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #16 : 25 Октября 2019, 08:14:48 »

Плюсика не вижу
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #17 : 25 Октября 2019, 09:16:55 »

sql {
        driver = "rlm_sql_mysql"
        mysql {
                warnings = auto
        }
        server = "localhost"
        port = 3306
        login = "root"
        password = "hardpass"
        radius_db = "nodeny"
     authorize_check_query = "call radcheck('%{User-Name}')"
        authorize_reply_query = "call radreply('%{User-Name}')"
        accounting {
safe-characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.+-_: /"
            query = "call radupdate('%{User-Name}','%{Framed-IP-Address}',\
                    'user=%{Calling-Station-Id};nas=%{NAS-IP-Address}')"
            type {
                start {
                    query = "call radupdate('%{User-Name}','%{Framed-IP-Address}',\
                            'user=%{Calling-Station-Id};nas=%{NAS-IP-Address}')"
                }
            }
        }
        post-auth {
            query = "call radupdate('%{User-Name}','%{reply:Framed-IP-Address}',\
                'user=%{Calling-Station-Id};nas=%{NAS-IP-Address}')"
        }
}
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #18 : 25 Октября 2019, 10:22:44 »

Зачем ты добавил в секцию accounting? И видно, что не подхватился параметр радиусом. Ты теряешь время на переписку по таким мелочам. У тебя есть и радиус и тестовая машина и главное ГУГЛ
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #19 : 25 Октября 2019, 14:34:13 »

Я где только его не ставил, не работает...
Последний вариант прикрепил может потому в accounting.
А сказать где точно должен быть что так сложно? Подмигивающий....
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #20 : 25 Октября 2019, 14:59:12 »

Ну тогда попробуй использовать в качестве разделителя не плюс, а минус
Записан
Redmen
NoDeny
Ветеран
*

Карма: 62
Offline Offline

Сообщений: 546


Подяку в КАРМУ


Просмотр профиля WWW
« Ответ #21 : 25 Октября 2019, 15:30:50 »

не помню с каким насом была такая проблема, но он вместо '+' подставлял '=2B'
посмотри здесь: http://forum.nodeny.com.ua/index.php?topic=2310.msg30763#msg30763
Записан

Приймаю подяку у вигляді карми... та/або грошей Подмигивающий
t.me/MrMethod
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #22 : 26 Октября 2019, 09:12:01 »

Ну тогда попробуй использовать в качестве разделителя не плюс, а минус

Сейчас с минусом такая ситуация:

конфигурация Radius

Файл nodeny
Код:
server default {
    listen {
        type = auth
        ipaddr = *
        port = 1812
    }
    listen {
        type = acct
        ipaddr = *
        port = 0
    }
    authorize {
        sql
        pap
        chap
        mschap
    }
    authenticate {
        Auth-Type PAP {
            pap
        }
        Auth-Type CHAP {
            chap
        }
        Auth-Type MSCHAP {
            mschap
        }
    }
    preacct {
        acct_unique
        preprocess
    }
    accounting {
        sql
        exec
        if("%{sql:SELECT IF((SELECT 1 FROM v_ips i JOIN users u ON i.uid=u.id WHERE u.name='%{User-Name}' AND i.ip='%{Framed-IP-Address}'),1,0)}" < 1){
            update reply {
                mpd-drop-user = 1
            }
        }
    }
    session {
        radutmp
        sql
    }
    post-auth {
        sql
    }
    Post-Auth-Type REJECT {
        sql
    }
}

sql
Код:
authorize_check_query = "call radcheck('%{User-Name}')"
        authorize_reply_query = "call radreply('%{User-Name}')"
        accounting {
            query = "call radupdate('%{User-Name}','%{Framed-IP-Address}',\
                    'user=%{Calling-Station-Id};nas=%{NAS-IP-Address}')"
            type {
                start {
                    query = "call radupdate('%{User-Name}','%{Framed-IP-Address}',\
                            'user=%{Calling-Station-Id};nas=%{NAS-IP-Address}')"
                }
            }
        }
        post-auth {
            query = "call radupdate('%{User-Name}','%{reply:Framed-IP-Address}',\
                'user=%{Calling-Station-Id};nas=%{NAS-IP-Address}')"
        }
}

radcheck
Код:
DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
  DECLARE real_login VARCHAR(64) DEFAULT NULL;
  SELECT SUBSTRING_INDEX(login, '-', 1) INTO real_login;
  SELECT id, name, 'Password' AS Attribute, AES_DECRYPT(passwd,'xxxxx') AS Value,'=='
    FROM users WHERE name=real_login;
END$$
DELIMITER ;

такой лог Radius
Код:
(0) # Executing section authorize from file /usr/local/etc/raddb/sites-enabled/nodeny
(0)   authorize {
rlm_sql (sql): Reserved connection (0)
(0) sql: EXPAND call radcheck('%{User-Name}')
(0) sql:    --> call radcheck('vano-1')
(0) sql: Executing select query: call radcheck('vano-1')
(0) sql: ERROR: Failed to create the pair: Invalid vendor name in attribute name "Password"
(0) sql: ERROR: Error parsing user data from database result
(0) sql: ERROR: Error getting check attributes
rlm_sql (sql): Released connection (0)
(0)     [sql] = fail
(0)   } # authorize = fail
(0) Invalid user (sql: Failed to create the pair: Invalid vendor name in attribute name "Password"): [vano-1] (from client irsh port 15728764 cli B0:5A:D0:3D:E7:50)
(0) Using Post-Auth-Type Reject
(0) Post-Auth-Type sub-section not found.  Ignoring.
(0) # Executing group from file /usr/local/etc/raddb/sites-enabled/nodeny
(0) Delaying response for 1.000000 seconds

Если radcheck такой
Код:
DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
  DECLARE real_login VARCHAR(64) DEFAULT NULL;
  SELECT SUBSTRING_INDEX(login, '-', 1) INTO real_login;
  SELECT id, name, 'Cleartext-Password' AS Attribute, AES_DECRYPT(passwd,'xxxxxxx') AS Value,'=='
    FROM users WHERE name=real_login;
END$$
DELIMITER ;

тогда лог такой
Код:
(0) # Executing section authorize from file /usr/local/etc/raddb/sites-enabled/nodeny
(0)   authorize {
rlm_sql (sql): Reserved connection (0)
(0) sql: EXPAND call radcheck('%{User-Name}')
(0) sql:    --> call radcheck('vano-1')
(0) sql: Executing select query: call radcheck('vano-1')
(0) sql: User found in radcheck table
(0) sql: WARNING: Cannot do check groups when group_membership_query is not set
rlm_sql (sql): Released connection (0)
(0)     [sql] = noop
(0) pap: WARNING: No "known good" password found for the user.  Not setting Auth-Type
(0) pap: WARNING: Authentication will fail unless a "known good" password is available
(0)     [pap] = noop
(0) chap:   &control:Auth-Type := CHAP
(0)     [chap] = ok
(0)     [mschap] = noop
(0)   } # authorize = ok
(0) Found Auth-Type = CHAP
(0) # Executing group from file /usr/local/etc/raddb/sites-enabled/nodeny
(0)   Auth-Type CHAP {
(0) chap: ERROR: &control:Cleartext-Password is required for authentication
(0)     [chap] = fail
(0)   } # Auth-Type CHAP = fail
(0) Failed to authenticate the user
(0) Using Post-Auth-Type Reject
(0) Post-Auth-Type sub-section not found.  Ignoring.
(0) # Executing group from file /usr/local/etc/raddb/sites-enabled/nodeny
(0) Delaying response for 1.000000 seconds
Waking up in 0.3 seconds.

Все остальные процедуры такие

Код:
DROP PROCEDURE IF EXISTS `radreply`;
DELIMITER $$
CREATE PROCEDURE `radreply`(IN login VARCHAR(64))
BEGIN
  DECLARE usr_id INT;
  DECLARE ip_index INT;
  DECLARE usr_ip VARCHAR(15) DEFAULT NULL;
  DECLARE real_login VARCHAR(64) DEFAULT NULL;

  SELECT SUBSTRING_INDEX(login, '-', 1) INTO real_login;
  SELECT CAST(REPLACE(login, real_login, '') AS UNSIGNED) INTO ip_index;

  SELECT id INTO usr_id FROM users WHERE name=real_login LIMIT 1;
  SELECT get_ip_by_num(usr_id, ip_index) INTO usr_ip;

  SELECT NULL,login,'Framed-IP-Address',usr_ip,'=';
  SELECT NULL,login,'Framed-IP-Netmask','255.255.255.255','=';
  SELECT NULL,login,'Framed-Protocol','PPP','=';
END$$
DELIMITER ;

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 ip_index INT;
  DECLARE usr_ip VARCHAR(15) DEFAULT NULL;
  DECLARE real_login VARCHAR(64) DEFAULT NULL;

  SELECT SUBSTRING_INDEX(login, '-', 1) INTO real_login;
  SELECT CAST(REPLACE(login, real_login, '') AS UNSIGNED) INTO ip_index;

  SELECT id INTO usr_id FROM users WHERE name=real_login LIMIT 1;
  SELECT get_ip_by_num(usr_id, ip_index) INTO usr_ip;
  CALL set_auth(usr_ip, CONCAT('mod=pppoe;',REPLACE(properties,':','')));
END$$
DELIMITER ;

В базе:
Код:
root@localhost [3newnodeny]> call radreply('vano-1');
+------+--------+-------------------+--------------+---+
| NULL | login  | Framed-IP-Address | usr_ip       | = |
+------+--------+-------------------+--------------+---+
| NULL | vano-1 | Framed-IP-Address | 172.16.0.100 | = |
+------+--------+-------------------+--------------+---+
1 row in set (0.01 sec)

+------+--------+-------------------+-----------------+---+
| NULL | login  | Framed-IP-Netmask | 255.255.255.255 | = |
+------+--------+-------------------+-----------------+---+
| NULL | vano-1 | Framed-IP-Netmask | 255.255.255.255 | = |
+------+--------+-------------------+-----------------+---+
1 row in set (0.01 sec)

+------+--------+-----------------+-----+---+
| NULL | login  | Framed-Protocol | PPP | = |
+------+--------+-----------------+-----+---+
| NULL | vano-1 | Framed-Protocol | PPP | = |
+------+--------+-----------------+-----+---+
1 row in set (0.01 sec)

Query OK, 0 rows affected (0.01 sec)

root@localhost [3newnodeny]> call radreply('vano-0');
+------+--------+-------------------+--------------+---+
| NULL | login  | Framed-IP-Address | usr_ip       | = |
+------+--------+-------------------+--------------+---+
| NULL | vano-0 | Framed-IP-Address | 172.16.0.100 | = |
+------+--------+-------------------+--------------+---+
1 row in set (0.00 sec)

+------+--------+-------------------+-----------------+---+
| NULL | login  | Framed-IP-Netmask | 255.255.255.255 | = |
+------+--------+-------------------+-----------------+---+
| NULL | vano-0 | Framed-IP-Netmask | 255.255.255.255 | = |
+------+--------+-------------------+-----------------+---+
1 row in set (0.00 sec)

+------+--------+-----------------+-----+---+
| NULL | login  | Framed-Protocol | PPP | = |
+------+--------+-----------------+-----+---+
| NULL | vano-0 | Framed-Protocol | PPP | = |
+------+--------+-----------------+-----+---+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

root@localhost [3newnodeny]> call radreply('vano');
+------+-------+-------------------+--------------+---+
| NULL | login | Framed-IP-Address | usr_ip       | = |
+------+-------+-------------------+--------------+---+
| NULL | vano  | Framed-IP-Address | 172.16.0.100 | = |
+------+-------+-------------------+--------------+---+
1 row in set (0.00 sec)

+------+-------+-------------------+-----------------+---+
| NULL | login | Framed-IP-Netmask | 255.255.255.255 | = |
+------+-------+-------------------+-----------------+---+
| NULL | vano  | Framed-IP-Netmask | 255.255.255.255 | = |
+------+-------+-------------------+-----------------+---+
1 row in set (0.00 sec)

+------+-------+-----------------+-----+---+
| NULL | login | Framed-Protocol | PPP | = |
+------+-------+-----------------+-----+---+
| NULL | vano  | Framed-Protocol | PPP | = |
+------+-------+-----------------+-----+---+
1 row in set (0.00 sec)

в билинге так

Код:
root@localhost [3newnodeny]> call radreply('vano-1');
+------+--------+-------------------+--------------+---+
| NULL | login  | Framed-IP-Address | usr_ip       | = |
+------+--------+-------------------+--------------+---+
| NULL | vano-1 | Framed-IP-Address | 172.16.0.100 | = |
+------+--------+-------------------+--------------+---+
1 row in set (0.00 sec)

+------+--------+-------------------+-----------------+---+
| NULL | login  | Framed-IP-Netmask | 255.255.255.255 | = |
+------+--------+-------------------+-----------------+---+
| NULL | vano-1 | Framed-IP-Netmask | 255.255.255.255 | = |
+------+--------+-------------------+-----------------+---+
1 row in set (0.00 sec)

+------+--------+-----------------+-----+---+
| NULL | login  | Framed-Protocol | PPP | = |
+------+--------+-----------------+-----+---+
| NULL | vano-1 | Framed-Protocol | PPP | = |
+------+--------+-----------------+-----+---+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Код:
root@localhost [3newnodeny]> call radupdate('vano');
ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE 3newnodeny.radupdate; expected 3, got 1
root@localhost [3newnodeny]> call radupdate('vano-0');
ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE 3newnodeny.radupdate; expected 3, got 1
root@localhost [3newnodeny]> call radupdate('vano-1');
ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE 3newnodeny.radupdate; expected 3, got 1

Если sql такой
Код:
authorize_check_query = "call radcheck('%{User-Name}', 0)"
    authorize_reply_query = "call radreply('%{User-Name}', '%{User-Password}')"
    accounting {
        reference = "%{tolower:type.%{Acct-Status-Type}.query}"
        type {
            start {
                query = "call radupdate('%{User-Name}','%{Framed-IP-Address}',\
                        'user=%{Calling-Station-Id};nas=%{NAS-IP-Address};ses=%{Acct-Session-Id}')"
            }
            interim-update {
                query = "${..start.query}"
            }
            stop {
                query = "call radstop('%{User-Name}', '%{Framed-IP-Address}')"
            }
        }
    }
    post-auth {
        query = "call radupdate('%{User-Name}','%{reply:Framed-IP-Address}',\
                'user=%{Calling-Station-Id};nas=%{NAS-IP-Address};ses=%{Acct-Session-Id}')"
    }
}

то лог такой

Код:
(0) # Executing section authorize from file /usr/local/etc/raddb/sites-enabled/nodeny
(0)   authorize {
rlm_sql (sql): Reserved connection (0)
(0) sql: EXPAND call radcheck('%{User-Name}', 0)
(0) sql:    --> call radcheck('vano-1', 0)
(0) sql: Executing select query: call radcheck('vano-1', 0)
(0) sql: ERROR: rlm_sql_mysql: ERROR 1318 (Incorrect number of arguments for PROCEDURE 3newnodeny.radcheck; expected 1, got 2): 42000
(0) sql: ERROR: Error getting check attributes
rlm_sql (sql): Released connection (0)
(0)     [sql] = fail
(0)   } # authorize = fail
(0) Invalid user (sql: rlm_sql_mysql: ERROR 1318 (Incorrect number of arguments for PROCEDURE 3newnodeny.radcheck; expected 1, got 2): 42000): [vano-1] (from client irsh port 15728766 cli B0:50:DA:3D:E7:50)
(0) Using Post-Auth-Type Reject
(0) Post-Auth-Type sub-section not found.  Ignoring.
(0) # Executing group from file /usr/local/etc/raddb/sites-enabled/nodeny
(0) Delaying response for 1.000000 seconds
« Последнее редактирование: 26 Октября 2019, 09:44:54 от Jovani » Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #23 : 31 Октября 2019, 08:00:21 »

Прошу подсказать по данному вопросу, как решить авторизацию.
Всем кто поможет буду очень благодарен.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #24 : 31 Октября 2019, 12:21:17 »

Ну так тебе ж пишет прямым текстом ошибку:

Код:
[3newnodeny]> call radupdate('vano');
ERROR 1318 (42000): Incorrect number of arguments for PROCEDURE 3newnodeny.radupdate; expected 3, got 1

идем в гугл переводчик, переводим, получаем:

Цитировать
Неверное количество аргументов для ПРОЦЕДУРЫ 3newnodeny.radupdate; ожидается 3, получил 1

Тут написано, что процедура принимает 3 параметра, а передается один. Что совершенно очевидно ибо в доке:

Код:
CREATE PROCEDURE `radupdate`(IN login VARCHAR(64), IN ip VARCHAR(16), IN properties VARCHAR(255))

тут интуитивно понятно, что передается три параметра:
  • login
  • ip
  • properties

В основной доке по радиусу 2 (http://nodeny.com.ua/wiki/index.php/PPPoE) в этой процедуре тоже 3 параметра. Если посмотреть в поставку биллинга в файл sql.conf, там при вызове radupdate передается 3 параметра:

Код:
        accounting_update_query = "call radupdate('%{User-Name}','%{Framed-IP-Address}',\
                'user=%{Calling-Station-Id};nas=%{NAS-IP-Address}')"

Но при этом ты тестируешь передачей одного параметра:

Код:
call radupdate('vano');

стопудова лучше подождать несколько дней чем увидеть, что вместо radupdate нужно написать radcheck.

И в radcheck передается один параметр, а не несколько как ты пробуешь. Рандомно нет смысла. Там все просто, достаточно вникнуть как оно работает. radcheck принимает логин. Делит его на 2 части, первая - настоящий логин, вторая - номер ip в списке
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #25 : 01 Ноября 2019, 10:52:12 »

Я понял что radcheck должен делить на две части.
Сейчас использую минус вместо плюс.
Но не понимаю сейчас что и где нужно в radcheck добавить.
Сейчас ожидает 1, получил 2 параметра...
Ни как не могу разобраться. Туго доходит, извините.

Код:
(0) sql:    --> call radcheck('vano-1', 0)
(0) sql: Executing select query: call radcheck('vano-1', 0)
(0) sql: ERROR: rlm_sql_mysql: ERROR 1318 (Incorrect number of arguments for PROCEDURE 3newnodeny.radcheck; expected 1, got 2): 42000
(0) sql: ERROR: Error getting check attributes
rlm_sql (sql): Released connection (0)
(0)     [sql] = fail
(0)   } # authorize = fail
(0) Invalid user (sql: rlm_sql_mysql: ERROR 1318 (Incorrect number of arguments for PROCEDURE 3newnodeny.radcheck; expected 1, got 2): 42000): [vano-1] (from client irsh port 15728839 cli B0:5A:DA:3D:E7:5D)
(0) Using Post-Auth-Type Reject
(0) Post-Auth-Type sub-section not found.  Ignoring.
(0) # Executing group from file /usr/local/etc/raddb/sites-enabled/nodeny
(0) Delaying response for 1.000000 seconds

Код:
root@localhost [3newnodeny]> SELECT get_ip_by_num(1, 1);
+---------------------+
| get_ip_by_num(1, 1) |
+---------------------+
| 172.16.0.100        |
+---------------------+
1 row in set (0.00 sec)
Код:
root@localhost [3newnodeny]> SELECT get_ip_by_num(1, 0);
+---------------------+
| get_ip_by_num(1, 0) |
+---------------------+
| 172.16.0.102        |
+---------------------+
1 row in set (0.00 sec)

Код:
root@localhost [3newnodeny]> call radcheck('vano-1');
+----+------+--------------------+----------+----+
| id | name | Attribute          | Value    | == |
+----+------+--------------------+----------+----+
|  1 | vano | Cleartext-Password | xxxxxx | == |
+----+------+--------------------+----------+----+
1 row in set (0.00 sec)

Код:
root@localhost [3newnodeny]> call radreply('vano-1');
+------+--------+-------------------+--------------+---+
| NULL | login  | Framed-IP-Address | usr_ip       | = |
+------+--------+-------------------+--------------+---+
| NULL | vano-1 | Framed-IP-Address | 172.16.0.102 | = |
+------+--------+-------------------+--------------+---+
1 row in set (0.00 sec)

+------+--------+-------------------+-----------------+---+
| NULL | login  | Framed-IP-Netmask | 255.255.255.255 | = |
+------+--------+-------------------+-----------------+---+
| NULL | vano-1 | Framed-IP-Netmask | 255.255.255.255 | = |
+------+--------+-------------------+-----------------+---+
1 row in set (0.00 sec)

+------+--------+-----------------+-----+---+
| NULL | login  | Framed-Protocol | PPP | = |
+------+--------+-----------------+-----+---+
| NULL | vano-1 | Framed-Protocol | PPP | = |
+------+--------+-----------------+-----+---+
1 row in set (0.00 sec)

Не понимаю почему IP vano-0 тоже 172.16.0.102
Код:
root@localhost [3newnodeny]> call radreply('vano-0');
+------+--------+-------------------+--------------+---+
| NULL | login  | Framed-IP-Address | usr_ip       | = |
+------+--------+-------------------+--------------+---+
| NULL | vano-0 | Framed-IP-Address | 172.16.0.102 | = |
+------+--------+-------------------+--------------+---+
1 row in set (0.00 sec)

+------+--------+-------------------+-----------------+---+
| NULL | login  | Framed-IP-Netmask | 255.255.255.255 | = |
+------+--------+-------------------+-----------------+---+
| NULL | vano-0 | Framed-IP-Netmask | 255.255.255.255 | = |
+------+--------+-------------------+-----------------+---+
1 row in set (0.00 sec)

+------+--------+-----------------+-----+---+
| NULL | login  | Framed-Protocol | PPP | = |
+------+--------+-----------------+-----+---+
| NULL | vano-0 | Framed-Protocol | PPP | = |
+------+--------+-----------------+-----+---+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Код:
DROP PROCEDURE IF EXISTS `radcheck`;
DELIMITER $$
CREATE PROCEDURE `radcheck` (IN login VARCHAR(64))
BEGIN
  DECLARE real_login VARCHAR(64) DEFAULT NULL;
  SELECT SUBSTRING_INDEX(login, '-', 1) INTO real_login;
  SELECT id, name, 'Cleartext-Password' AS Attribute, AES_DECRYPT(passwd,'xxxxxxx') AS Value,'=='
    FROM users WHERE name=real_login;
END$$
DELIMITER ;

Код:
authorize_check_query = "call radcheck('%{User-Name}', 0)"
    authorize_reply_query = "call radreply('%{User-Name}', '%{User-Password}')"
    accounting {
        reference = "%{tolower:type.%{Acct-Status-Type}.query}"
        type {
            start {
                query = "call radupdate('%{User-Name}','%{Framed-IP-Address}',\
                        'user=%{Calling-Station-Id};nas=%{NAS-IP-Address};ses=%{Acct-Session-Id}')"
            }
            interim-update {
                query = "${..start.query}"
            }
            stop {
                query = "call radstop('%{User-Name}', '%{Framed-IP-Address}')"
            }
        }
    }
    post-auth {
        query = "call radupdate('%{User-Name}','%{reply:Framed-IP-Address}',\
                'user=%{Calling-Station-Id};nas=%{NAS-IP-Address};ses=%{Acct-Session-Id}')"
    }
}

Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #26 : 01 Ноября 2019, 12:14:23 »

зачем ты добавил ноль?

Код:
authorize_check_query = "call radcheck('%{User-Name}', 0)"
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #27 : 04 Ноября 2019, 07:56:00 »

Если без нуля то лог такой
Код:
(0) # Executing section authorize from file /usr/local/etc/raddb/sites-enabled/nodeny
(0)   authorize {
rlm_sql (sql): Reserved connection (0)
(0) sql: EXPAND call radcheck('%{User-Name}')
(0) sql:    --> call radcheck('vano-1')
(0) sql: Executing select query: call radcheck('vano-1')
(0) sql: User found in radcheck table
(0) sql: WARNING: Cannot do check groups when group_membership_query is not set
rlm_sql (sql): Released connection (0)
(0)     [sql] = noop
(0) pap: WARNING: No "known good" password found for the user.  Not setting Auth-Type
(0) pap: WARNING: Authentication will fail unless a "known good" password is available
(0)     [pap] = noop
(0) chap:   &control:Auth-Type := CHAP
(0)     [chap] = ok
(0)     [mschap] = noop
(0)   } # authorize = ok
(0) Found Auth-Type = CHAP
(0) # Executing group from file /usr/local/etc/raddb/sites-enabled/nodeny
(0)   Auth-Type CHAP {
(0) chap: ERROR: &control:Cleartext-Password is required for authentication
(0)     [chap] = fail
(0)   } # Auth-Type CHAP = fail
(0) Failed to authenticate the user
(0) Using Post-Auth-Type Reject
(0) Post-Auth-Type sub-section not found.  Ignoring.
(0) # Executing group from file /usr/local/etc/raddb/sites-enabled/nodeny
(0) Delaying response for 1.000000 seconds
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #28 : 04 Ноября 2019, 11:19:17 »

Настройка без разделения логина работает? Настрой сначала так. Иначе будет очень долго: ты будешь допускать ошибку, я буду тыкать в документацию и так бесконечно
Записан
Jovani
NoDeny
Постоялец
*

Карма: -9
Offline Offline

Сообщений: 234


Просмотр профиля
« Ответ #29 : 04 Ноября 2019, 16:57:38 »

Без разделения работает. Но при других процедурах.
Записан
Страниц: 1 [2] 3
  Печать  
 
Перейти в:  

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