CHAP Расшифровка пароля — Freeradius

Я использую Freeradius для аутентификации пользователя с моего сервера с использованием php-кода

update control {
Reply-Message := `/usr/bin/php -f /etc/raddb/auth.php '%{User-Name}' '%{CHAP-Password}' '%{CHAP-Challenge}' auth`
}

это возвращение CHAP-Password = 0xa2a421bf267fbffabe5696cf1c6d54f479

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

Он работает нормально с протоколом PAP, но мне нужно использовать CHAP для другой конфигурации сервера

Итак, мой вопрос: есть ли в любом случае расшифровать CHAP-пароль, или если это невозможно, чтобы CHAP не хешировал пароль в конфигурации

0

Решение

CHAP — это вызов-ответ. Гекс, который вы видите, не является зашифрованным паролем, и нет способа «расшифровать» его, чтобы получить простой текстовый пароль.

С PAP вы можете иметь зашифрованный пароль на сервере или в виде открытого текста. Вам прислали незашифрованный пароль, который вы можете проверить.

С CHAP вам нужен пароль в виде открытого текста на сервере, чтобы убедиться, что ответ на вызов правильный.

Таким образом, вы не можете делать то, что вы хотите сделать в текущей форме.

1

Другие решения

После долгих поисков я, наконец, заставляю chap authenticate с моей базой данных:

Первый: Я работаю над Freeradius 3, потому что есть много изменений формы радиуса 2 и радиуса 3

Второе: конфигурация базы данных

Я использую mysql с 2 базами данных, как это:

  1. члены

    • пользователи
      • Я бы
      • имя пользователя
      • пароль
      • …….
      • …….
    • ……..
  2. радиус

    • radcheck
      • Я бы
      • имя пользователя
      • атрибут
      • оп
      • значение
    • radpostauth
    • ……

Вам нужно настроить файл sql в этом корне

sudo nano mods-available/sql

И изменить это значения

driver = "rlm_sql_mysql"dialect = "mysql"server = "localhost"login = "your_database_username"password = "your_database_password"

Затем сохраните и перезапустите радиус:

sudo service radiusd restart

Если радиус перезапустить без ошибок, значит, конфигурация верна

После перезапуска радиуса необходимо скопировать этот файл в модники с поддержкой

поэтому радиус запустить эту конфигурацию, потому что все файлы в модники с поддержкой это какой радиус это пробег

sudo cp mods-available/sql mods-enabled/sql

Чтобы проверить, все ли работает нормально

sudo radiusd -XC

Эта команда запускает отладку по радиусу и возвращает ошибки.

если конец этой отладки

Конфигурация, кажется, в порядке

так что все хорошо до сих пор

Третье: соединение с базой данных и аутентификация

Теперь нам нужно аутентифицировать имя пользователя через ГЛАВА , поэтому нам нужно написать запрос, чтобы выбрать имя пользователя из пользователь Таблица

Этот запрос будет в этом файле queries.conf в этом корне

sudo nano mods-config/sql/main/mysql/queries.conf

И изменить authorize_check_query в

authorize_check_query = "\
SELECT members.user.id as id, \
members.user.username as username, \
'Cleartext-Password' as attribute, \
members.user.password as value, \
':=' as op \
FROM members.user \
WHERE members.user.username = '%{SQL-User-Name}' \
ORDER BY members.user.id"

К вашему сведению, пароль должен быть в виде простого текста, потому что, как вы видите, атрибут Аут-пароль

Теперь давайте добавим в таблицу пользователь строка с username = «ahmed» и password = «test»

и попробуй проверить аутентификацию

radtest -t chap ahmed test localhost 1812 testing123

если вы получите

Получен Access-Accept Id 105 от 127.0.0.1:1812 до 127.0.0.1:38259 длиной 20

Итак, вы сделали,

Также я хочу поблагодарить @MatthewNewton за его ответ и комментарии на мой вопрос: D

0

По вопросам рекламы [email protected]