Авторизация пользователя MS AD в домене IPA(IDM - redhat) через керберос прокси
Добавлено: 28 янв 2022, 13:54
Доброго времени суток, господа админы.
Столкнулся с нетривиальной проблемой при установленном трасте MS AD домена и IPA
Немного о схеме.
Есть MS AD домен который содержит пользователей
Есть IPA домен который содержит Linux машины (сервера и рабочие станции)
Сделано это для того чтобы централизовано управлять доступом на линукс машины и правами sudo, на удаленных машинах с минимальными затратами времени
Есть исходящее доверие от домена MS AD к домену IPA (пользователи AD могут логиниться на машине в домене IPA)
Траст настроен по ману
https://redos.red-soft.ru/base/server-c ... t-ad-ro73/
Все работает, но есть одна проблема - клиентская машина из домена ipa запрашивает Kerberos тикет в домене MS AD напрямую, что для меня неприемлемо.
Если закрыть доступ с клиентской машины на сервера MS AD по 88 и 464 портам, клиент перестает авторизовываться на машине.
Теперь подробнее:
MS AD домен = test02.local
MS AD DC = dc01.test02.local
MS AD USER = user3.test02.local
MS AD DC OS = windows server 2022 std
IPA домен = ipa8.local
IPA DC = ipa8dc01.ipa8.local
IPA DC OS = OEL8 (Oracle Enterprise Linux)
IPA Client hostname = ipa8cl01.ipa8.local
Между MS AD и IPA стоит FireWall на базе freebsd
Начал копать как это победить, перерыл кучу манов в итоге пришел к следующему:
1. Для начала включаем керберос прокси в LDAP ipa командой
2. На ipa8dc01.ipa8.local надо включить KDCProxy - делается это путем редактирования файла
изначально он выглядит так
Редактируем его
и перезапускаем ipa домен
После этого должен начать отвечать URL
3. На клиенте в файл
Дописываем
4. На клиенте в файл
В конец файла дописываем
Перезапускаем клиента или рестартуем sssd с очисткой кэша
Вот и вся хитрость
Столкнулся с нетривиальной проблемой при установленном трасте MS AD домена и IPA
Немного о схеме.
Есть MS AD домен который содержит пользователей
Есть IPA домен который содержит Linux машины (сервера и рабочие станции)
Сделано это для того чтобы централизовано управлять доступом на линукс машины и правами sudo, на удаленных машинах с минимальными затратами времени
Есть исходящее доверие от домена MS AD к домену IPA (пользователи AD могут логиниться на машине в домене IPA)
Траст настроен по ману
https://redos.red-soft.ru/base/server-c ... t-ad-ro73/
Все работает, но есть одна проблема - клиентская машина из домена ipa запрашивает Kerberos тикет в домене MS AD напрямую, что для меня неприемлемо.
Если закрыть доступ с клиентской машины на сервера MS AD по 88 и 464 портам, клиент перестает авторизовываться на машине.
Теперь подробнее:
MS AD домен = test02.local
MS AD DC = dc01.test02.local
MS AD USER = user3.test02.local
MS AD DC OS = windows server 2022 std
IPA домен = ipa8.local
IPA DC = ipa8dc01.ipa8.local
IPA DC OS = OEL8 (Oracle Enterprise Linux)
IPA Client hostname = ipa8cl01.ipa8.local
Между MS AD и IPA стоит FireWall на базе freebsd
Начал копать как это победить, перерыл кучу манов в итоге пришел к следующему:
1. Для начала включаем керберос прокси в LDAP ipa командой
Код: Выделить всё
ipa-ldap-updater /usr/share/ipa/kdcproxy-enable.uldif2. На ipa8dc01.ipa8.local надо включить KDCProxy - делается это путем редактирования файла
Код: Выделить всё
/etc/ipa/kdcproxy/kdcproxy.conf
Код: Выделить всё
[global]
configs = mit
use_dns = false
Код: Выделить всё
[global]
configs = mit
use_dns = true
[test02.local]
kerberos = kerberos+tcp://dc01-test02.test02.local:88
kpasswd = kpasswd+tcp://dc01-test02.test02.local:464
Код: Выделить всё
ipactl restart
Код: Выделить всё
https://ipa8dc01.ipa8.local/KdcProxy
Код: Выделить всё
/etc/krb5.confДописываем
Код: Выделить всё
[libdefaults]
dns_lookup_kdc = false #true (по умолчанию меняем на false)
#И дописываем наш домен test02.local
test02.local = {
kdc = https://ipa8dc01.ipa8.local/KdcProxy
kpasswd_server = https://ipa8dc01.ipa8.local/KdcProxy
admin_server = https://ipa8dc01.ipa8.local/KdcProxy
default_domain = test02.local
}
TEST02.LOCAL = {
kdc = https://ipa8dc01.ipa8.local/KdcProxy
kpasswd_server = https://ipa8dc01.ipa8.local/KdcProxy
admin_server = https://ipa8dc01.ipa8.local/KdcProxy
default_domain = TEST02.LOCAL
}
# Обязательно 2 секции т.к. запросы от приложений могут идти в нижнем регистре, а авторизация всегда в верхнем
Код: Выделить всё
/etc/sssd/sssd.confВ конец файла дописываем
Код: Выделить всё
[domain/test02.local]
krb5_use_kdcinfo = FalseКод: Выделить всё
service sssd stop; rm -rf /var/lib/sss/db/*;sss_cache -E;service sssd start