Смоленск 1.6 Ошибка apache "user not found" для пользователя из домена Active Directory

JohnRambo

New member
Сообщения
5
#1
Здравствуйте!
Настроил одностороннее доверие FreeIPA к домену AD. Пользователи из AD могут заходить на машины astralinux в домене FreeIPA через fly-dm. С windows машин можно по ssh(putty) прозрачно (gss) подключаться к astralinux машинам в домене FreeIPA.

Но возникла проблема с web-сервером apache, пользователи из домена FreeIPA проходят сквозную аутентификацию и получают доступ к web-странице, а пользователи из AD получают ответ с кодом ошибки 500 (Internal Server Error). В Apache настроена сквозная аутентификация.
Для проверки использую страницу приветствия apache.

При подключении к apache пользователя user1@ad.domain из домена AD в журналах apache отображаются такие сообщения:

==> /var/log/apache2/access.log <==
192.168.6.2 - user1@AD.DOMAIN [19/Nov/2020:16:20:54 +0300] "GET / HTTP/1.1" 500 1096 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0"

==> /var/log/apache2/error.log <==
[Thu Nov 19 16:20:54.517024 2020] [core:error] [pid 4853] [client 192.168.6.2:50152] core_switch_user getpwnam(user1) failed: user not found

Если я правильно интерпретирую данные из журнала, apache понимает, что запрос идёт от пользователя user1@AD.DOMAIN, но в функцию getpwnam передаёт имя пользователя без домена. getpwnam не находит пользователя и apache отвечает кодом ошибки 500(Internal Server Error)

Собрал пример из man 3 getpwnam.
Функция getpwnam для пользователей домена FreeIPA отрабатывает корректно что с указанием, что без указания домена в имени пользователя.

Имена же пользователей из домена AD нужно передавать в виде user1@AD.DOMAIN иначе ошибка «Пользователь не найден».

Как обойти ошибку apache: «core_switch_user getpwnam failed: user not found» для пользователя из домена AD?

Немного инфы по системе, которую я использую
ОС: Astra Linux 1.6
Update 6
Bulletin 20200722SE16

apache2 2.4.25-astrase19.0.10 amd64
libapache2-mod-auth-kerb 5.4-2.2astra.se6
astra-freeipa-client 1.46+ci2
 
Последнее редактирование:

andrey465

New member
Сообщения
1
#3
astra 1.7.3 + freeipa
apache2 + wsgi
core_switch_user getpwnam(user1) failed: user not found

Сначала пытался подставить название домена по инструкции в статье https://wiki.astralinux.ru/brest/la...est-238447049.html?ysclid=lgxck8fn8o821216062 . Не получилось - не понял ни как оно работает ни как это проверить (система на все мои манипуляции никак не реагировала).
В итоге проблема решилась добавлением в файл /etc/sssd/sssd.conf, в секцию [sssd] опции
default_domain_suffix = DOMAIN.LOC
если домен не указан, по дефолту считаем его DOMAIN.LOC и только если и там не находим сморим в локальных учетках.