После поиска в течение многих и многих часов я, наконец, сделать глава аутентификации с моей базой данных:
Первого: Я работаю на FreeRADIUS 3, потому что есть много изменений, образует радиус 2 и радиус 3
Во-вторых: База данных конфигурации
Я использую MySQL с 2 баз данных, как это:
члены
- пользователи
- ID
- имя пользователя
- пароль
- .......
- .......
- ........
радиус
- radcheck
- ID
- имя пользователя
- атрибут
- оп
- значение
- 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
Эта команда запускает отладку по радиусу и возвращает ошибки.
если конец этой отладки находится появляется
конфигурации не будет хорошо
так все прекрасно до сих пор
Третье: Подключение к базе данных и Аутентифицировать
Теперь нам нужно аутентифицировать имя пользователя через CHAP, поэтому нам нужно написать запрос, чтобы выбрать имя из пользователя таблицы
Этот запрос будет в этом файле запросов.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"
FYI, пароль должен быть в виде простого текста, потому что, как вы видите, атрибут Аут-Password
Теперь добавим в таблицу пользователь строка с именем пользователя = "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
Спасибо за ответ, Я, если у меня есть текстовый пароль, скажем, «123456», и при использовании CHAP он отправляет '% {CHAP-Password} ''% {CHAP-Challenge} '' Как проверить, если ответ на вызов правильный? –
Вы должны установить Cleartext-Password на «123456» в FreeRADIUS. Затем для chap auth входящий запрос Access будет содержать атрибут CHAP-Password. Затем модуль 'chap' будет использовать Cleartext-Password для проверки правильности атрибута CHAP-Password. Нет необходимости использовать php для обработки атрибутов CHAP, для чего нужен модуль chap. –
но у меня есть база данных с именем пользователя и cleartext-password, поэтому мне нужно сохранить все эти записи в файле пользователей, чтобы сделать FreeRADIUS аутентификацией? правильно? –