ID статьи: 420
Последнее обновление: 27 Jun, 2022
Версия ПО: FreeIPA, Astra LinuxТокены: ЛюбыеПроблема:Пользователю предлагают ввести пароль от доменного пользователя. Пользователю предлагается ввести PIN-код от электронного ключа JaCarta, но, вместо входа выводится ошибка “системная ошибка”, а в журнале работы системы сказано “Client name mismatch”. Причина:Не настроен Kerberos и недоработан профиль KDCs_PKINIT_Certs на стороне сервера FreeIPA. Решение:Следует убедится в том, что модуль PKINIT установлен в системе и, в случае если модуль не установлен – установить. Воспользуйтесь следующей командой: apt-get install krb5-pkinit Далее необходимо получить тикет пользователя admin, чтобы получить доступ к командам FreeIPA. Воспользуйтесь следующей командой: kinit admin Запустите модуль PKINIT. Воспользуйтесь следующей командой: Ipa-pkinit-manage enable Откройте конфигурационный файл kdc.conf. Расположение для Astra Orel: /etc/krb5kdc/kdc.conf Расположение данного конфигурационного файла может отличаться на разных системах! Найдите в файле блок [realms] и добавьте в него следующие строки: pkinit_eku_checking = none pkinit_allow_upn = true Откройте конфигурационный файл krb5.conf. Расположение для Astra Orel: /etc/krb5.conf Расположение данного конфигурационного файла может отличаться на разных системах! Найдите в файле блок [libdefaults] и добавьте в него следующие строки: pkinit_eku_checking = none pkinit_allow_upn = true После изменения конфигурационных файлов необходимо сообщить об этом службам krb5kdc и kadmin. Используйте следующие команды: systemctl restart krb5kdc.service systemctl restart kadmin.service Далее необходимо создать новый профиль выпуска сертификатов FreeIPA. Для этого перейдем в директорию расположения этих сертификатов. Расположение для Astra Orel: /usr/share/ipa/profiles/ В данной директории необходимо получить копию профиля KDCs_PKINIT_Certs и сохранить ее в отдельный файл SecurLogon.cfg. Воспользуйтесь следующей командой: Ipa certprofile-show --out SecurLogon.cfg KDCs_PKINIT_Certs Откройте полученный ранее файл SecurLogon.cfg. Необходимо дополнить следующие параметры: Параметр ID профиля: profileId= profileId=SecurLogon Параметр, ответственный за предоставление выпущенным сертификатам разрешений на те или иные действия. В частности, нам необходимо: Аутентификация пользователя, проверка через модуль PKINIT, Аутентификация сервера: policyset.serverCertSet.7.default.params.exKeyUsageOIDs= policyset.serverCertSet.7.default.params.exKeyUsageOIDs=1.3.6.1.5.5.7.3.1,1.3.6.1.5.2.3.5,1.3.6.1.5.5.7.3.2 Разрешим подпись сертификата необходимыми алгоритмами: policyset.serverCertSet.8.constraint.params.signingAlgsAllowed= policyset.serverCertSet.8.constraint.params.signingAlgsAllowed=SHA1withRSA,SHA256withRSA,SHA384withRSA,SHA512withRSA,SHA1withDSA,SHA1withEC,SHA256withEC,SHA384withEC,SHA512withEC Добавим новые блоки ответственные за подпись SAN (Альтернативные имена получателя). Это требование работы PKINIT, без SAN в записи сертификата PKINIT будет считать сертификат не верифицированным. Сообщим сертификату о количестве и названиях блоков: policyset.serverCertSet.list= policyset.serverCertSet.list=1,2,3,4,5,6,7,8,9,10,11,12,13 В разных версиях может не хватать блока 11 и/или 12! Если у вас нет блока 11, необходимо его дописать в конце файла. Блок: policyset.serverCertSet.11.constraint.class_id=noConstraintImpl policyset.serverCertSet.11.constraint.name=No Constraint policyset.serverCertSet.11.default.class_id=userExtensionDefaultImpl policyset.serverCertSet.11.default.name=User Supplied Extension Default policyset.serverCertSet.11.default.params.userExtOID=2.5.29.17 Если у вас нет блока 12, необходимо его дописать в конце файла. Блок: policyset.serverCertSet.12.constraint.class_id=noConstraintImpl policyset.serverCertSet.12.constraint.name=No Constraint policyset.serverCertSet.12.default.class_id=commonNameToSANDefaultImpl policyset.serverCertSet.12.default.name=Copy Common Name to Subject Alternative Name Блок 13 должен выглядеть следующим образом, за исключением @FREE.IPA – вместо этого добавьте название своего доменного имени в верхнем регистре. Блок: policyset.serverCertSet.13.constraint.class_id=noConstraintImpl policyset.serverCertSet.13.constraint.name=No Constraint policyset.serverCertSet.13.default.class_id=subjectAltNameExtDefaultImpl policyset.serverCertSet.13.default.name=Subject Alt Name Constraint policyset.serverCertSet.13.default.params.subjAltNameExtCritical=false policyset.serverCertSet.13.default.params.subjAltExtType_0=RFC822Name policyset.serverCertSet.13.default.params.subjAltExtPattern_0=$request.req_subject_name.cn$@FREE.IPA policyset.serverCertSet.13.default.params.subjAltExtGNEnable_0=true policyset.serverCertSet.13.default.params.subjAltExtType_1=OtherName policyset.serverCertSet.13.default.params.subjAltExtPattern_1=(UTF8String)1.3.6.1.4.1.311.20.2.3,$request.req_subject_name.cn$@FREE.IPA policyset.serverCertSet.13.default.params.subjAltExtGNEnable_1=true policyset.serverCertSet.13.default.params.subjAltNameNumGNs=2 Сохраните изменения в файле. Следующим шагом необходимо показать FreeIPA что у нас появился новый профиль. Для этого импортируем ранее редактируемый файл как профиль. Воспользуйтесь следующей командой: ipa certprofile-import SecurLogon --file=SecurLogon.cfg После всех манипуляций, сертификаты выпущенные с помощью созданного профиля будут проходить проверку PKINIT, и получать тикеты Kerberos.
Эта статья была:
Сообщить об ошибке
ID статьи: 420
Последнее обновление: 27 Jun, 2022
Ревизия: 1
Просмотры: 6
Комментарии: 0
Теги
|