Вопрос или проблема
Я хотел бы вашей помощи в решении следующей проблемы. Что нам нужно. Мы настроили сервер freeradius для использования в качестве метода аутентификации для пользователей freeipa. Когда мы используем параметр пароль (я имею в виду пароль, настроенный на самом сервере ipa), все работает. Если мы изменяем метод аутентификации на RADIUS, у нас возникают следующие проблемы. Пароль пользователя на клиенте ipa не кешируется. Поэтому, если пользователи идут домой с ноутбуком и не имеют доступа к серверу ipa, они не могут войти в свою Ubuntu.
Поведение на сервере ipa:
Пользователь с локальным паролем
# kinit local-user
Пароль для [email protected]:
Это работает
krb5kdc.log
Dec 11 17:57:23 our.domain.com krb5kdc[1571](info): AS_REQ (4 etypes {aes256-cts-hmac-sha384-192(20), aes128-cts-hmac-sha256-128(19), aes256-cts-hmac-sha1-96(18), aes128-cts-hmac-sha1-96(17)}) 10.0.0.1: NEEDED_PREAUTH: [email protected] for krbtgt/[email protected], требуется дополнительная предаутентификация
Dec 11 17:57:23 our.domain.com krb5kdc[1571](info): закрытие fd 11
Строки ниже после ввода пароля
Dec 11 17:58:17 our.domain.com krb5kdc[1571](info): AS_REQ (4 etypes {aes256-cts-hmac-sha384-192(20), aes128-cts-hmac-sha256-128(19), aes256-cts-hmac-sha1-96(18), aes128-cts-hmac-sha1-96(17)}) 10.0.0.1: ISSUE: authtime 1733932697, etypes {rep=aes256-cts-hmac-sha384-192(20), tkt=aes256-cts-hmac-sha384-192(20), ses=aes256-cts-hmac-sha384-192(20)}, [email protected] для krbtgt/[email protected]
Dec 11 17:58:17 our.domain.com krb5kdc[1571](info): закрытие fd 11
Пользователь RADIUS
#kinit radius-user
kinit: Не удалось предварительно аутентифицировать: Неверный аргумент при получении начальных учетных данных
Таким образом, билет не создан
krb5kdc.log
Dec 11 18:04:26 our.domain.com krb5kdc[1571](info): AS_REQ (4 etypes {aes256-cts-hmac-sha384-192(20), aes128-cts-hmac-sha256-128(19), aes256-cts-hmac-sha1-96(18), aes128-cts-hmac-sha1-96(17)}) 10.0.0.1: NEEDED_PREAUTH: [email protected] для krbtgt/[email protected], требуется дополнительная предаутентификация
Dec 11 18:04:26 our.domain.com krb5kdc[1571](info): закрытие fd 11
Дополнительное странное поведение. Если я пытаюсь войти на сервер ipa через ssh с локальным пользователем, он спрашивает меня про пароль. Если я пытаюсь войти на сервер ipa с пользователем radius, он сначала спрашивает о первом факторе, а затем о втором факторе. Он принимает пароль для первого фактора и пустой второй фактор. И позволяет мне войти.
Спасибо заранее. Я могу предоставить любую дополнительную информацию.
Я уже пробовал поиграть с настройками kerberos, и это мне не помогает.
Ответ или решение
Проблемы с Kerberos при использовании FreeIPA и FreeRADIUS: подробный анализ и решение
Ваша ситуация с аутентификацией пользователей FreeIPA через FreeRADIUS действительно вызвана рядом факторов, которые влияют на процесс получения Kerberos-билетов. Давайте рассмотрим основные моменты и пути решения вашей проблемы.
1. Обзор проблемы
Вы настроили сервер FreeRADIUS для аутентификации пользователей FreeIPA. Существующие локальные пароли работают без проблем, однако пользователи, использующие FreeRADIUS, сталкиваются с проблемами аутентификации при отсутствии доступа к серверу IPA. В частности, при попытке выполнить команду kinit radius-user
, возникает ошибка Pre-authentication failed: Invalid argument while getting initial credentials
.
Ключевые подробности:
- При использовании локальных пользователей все работает корректно.
- При использовании RADIUS аутентификации возникает ошибка, которая указывает на необходимость предварительной аутентификации.
- Локальные пользователи успешно аутентифицируются и могут получать Kerberos-билеты.
- При попытке входа через SSH пользователями, аутентифицированными через RADIUS, возникает двухфакторная аутентификация, что вызывает путаницу.
2. Параметры конфигурации
Определим основные аспекты конфигурации:
- FreeIPA: это решение для управления идентификацией и аутентификацией, которое использует Kerberos в качестве механизма аутентификации.
- FreeRADIUS: достаточно мощное решение для аутентификации и управления доступом в сетях, которое может интегрироваться с FreeIPA для проверки учетных данных пользователей.
Необходимо обратить внимание на правильную настройку конфигураций как FreeIPA, так и FreeRADIUS, а также на механизмы предварительной аутентификации, используемые в Kerberos.
3. Причины возникновения проблемы
- Кэширование паролей: Когда пользователи аутентифицируются через FreeRADIUS, пароли не кэшируются на клиенте. Это приводит к проблемам при отключении от сети. Если пользователь не может получить доступ к IPA-серверу, он не сможет выполнить аутентификацию.
- Настройки Kerberos: Некоторые параметры в krb5.conf могут мешать корректной работе аутентификации через FreeRADIUS.
- Методы предварительной аутентификации: Необходимость в предварительной аутентификации может быть связана с тем, что служба FreeRADIUS неправильно интерпретирует запросы от клиентов.
4. Решения
-
Настройка кэширования паролей:
- Необходимо обеспечить, чтобы на клиентах Ubuntu был включен кэш паролей для Kerberos (к примеру, используя PAM или
sssd
). Это позволит пользователям входить в систему даже при недоступности IPA-сервера.
- Необходимо обеспечить, чтобы на клиентах Ubuntu был включен кэш паролей для Kerberos (к примеру, используя PAM или
-
Корректировка конфигурации Kerberos:
- Проверьте файл конфигурации
/etc/krb5.conf
. Убедитесь, что все параметры, связанные с серверами KDC и доменами, указаны правильно. -
Добавьте или измените следующие параметры:
[realms] YOUR.REALM.COM = { kdc = ipa-server.your.domain admin_server = ipa-server.your.domain } [domain_realm] .your.domain = YOUR.REALM.COM your.domain = YOUR.REALM.COM
- Проверьте файл конфигурации
-
Проверка настроек FreeRADIUS:
- Убедитесь, что FreeRADIUS настроен на использование Kerberos для аутентификации. Проверьте файл конфигурации
/etc/raddb/mods-enabled/eap
на наличие правильных параметров. - Убедитесь, что FreeRADIUS настроен на правильный метод аутентификации: например, используйте
radiusd.conf
для определения методов аутентификации и разберитесь с параметрамиpre-auth
.
- Убедитесь, что FreeRADIUS настроен на использование Kerberos для аутентификации. Проверьте файл конфигурации
-
Использование двухфакторной аутентификации:
- Убедитесь, что настройки двухфакторной аутентификации не конфликтуют с настройками FreeIPA и FreeRADIUS. Возможно, вам потребуется оптимизировать взаимодействие между двумя системами.
-
Логи и диагностика:
- Тщательно изучите логи как FreeIPA, так и FreeRADIUS для выявления точной причины ошибок. Включите отладку для получения более подробной информации о процессе аутентификации.
Заключение
Проблемы между FreeIPA и FreeRADIUS могут быть связаны с рядом факторов, включая настройки Kerberos, кэширование паролей и методы аутентификации. Предложенные шаги помогут вам диагностировать проблему и, в конечном итоге, решить ее. Если возникнут дополнительные вопросы или потребуется более детальная информация, не стесняйтесь обращаться за помощью.