Я использую 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 не хешировал пароль в конфигурации
CHAP — это вызов-ответ. Гекс, который вы видите, не является зашифрованным паролем, и нет способа «расшифровать» его, чтобы получить простой текстовый пароль.
С PAP вы можете иметь зашифрованный пароль на сервере или в виде открытого текста. Вам прислали незашифрованный пароль, который вы можете проверить.
С CHAP вам нужен пароль в виде открытого текста на сервере, чтобы убедиться, что ответ на вызов правильный.
Таким образом, вы не можете делать то, что вы хотите сделать в текущей форме.
После долгих поисков я, наконец, заставляю chap authenticate с моей базой данных:
Первый: Я работаю над Freeradius 3, потому что есть много изменений формы радиуса 2 и радиуса 3
Второе: конфигурация базы данных
Я использую mysql с 2 базами данных, как это:
члены
радиус
Вам нужно настроить файл 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