Freeradius + LDAP + Google-аутентификатор
Я хочу реализовать вход в мой сервис vpn с паролем + google_otp. freeradius в качестве аутентификационного сервера и ldap в качестве backend_database.
Я выполнил следующую работу:
- включить модуль аутентификации pam в /etc/raddb/sites-enabled/default
- добавьте строку "DEFAULT Auth-Type:= PAM" в / etc / raddb / users
- включить модуль ldap и добавить сайт ldap в freeradis, я подтверждаю, что raidus использует базу данных ldap, работает правильно.
- Перезаписать содержимое /etc/pam.d/radiusd
auth Реквизит pam_google_authenticator.so secret=/tmp/.google_authenticator user=root forward_pass требуется авторизация pam_unix.so use_first_pass
запустить тест cmd:(testpa - мой пароль,271082 - отп)
radtest perlingzhao testpa271082 localhost 1812 testing123
радиус журнала:
(0) [pap] = noop
(0) } # authorize = updated
(0) Found Auth-Type = pam
(0) # Executing group from file /etc/raddb/sites-enabled/default
(0) authenticate {
(0) pam: Using pamauth string "radiusd" for pam.conf lookup
(0) pam: ERROR: pam_authenticate failed: User not known to the underlying authentication module
(0) [pam] = reject
(0) } # authenticate = reject
(0) Failed to authenticate the user
(0) Using Post-Auth-Type Reject
войти в систему /var/log/secure:
radiusd(pam_google_authenticator)[11728]: Accepted google_authenticator for perlingzhao
pam_unix(radiusd:auth): check pass; user unknown
pam_unix(radiusd:auth): authentication failure; logname=root uid=0 euid=0 tty= ruser= rhost=
Я знаю, что это потому, что нет локального пользователя, информация о пользователе находится в ldap.
Кто-нибудь может мне помочь, подскажите, как можно решить эту проблему, спасибо.
1 ответ
Я могу предложить использовать PHP-скрипт для проверки OTP вместо модулей PAM, он не создает реальных локальных пользователей, а только проверяет сам TOTP. PHP также имеет функции LDAP.
authorize{
update control {
Auth-Type := `/usr/bin/php -f /etc/raddb/yourscript.php '%{User-Name}' '%{User-Password}' '%{Client-IP-Address}'`
}
Существует коммерческий продукт, который полностью соответствует вашим требованиям.
PS Я связан с #1