Рейтинг:0

Аутентификация HTTPD LDAP не работает

флаг kw

Первый раз пытаюсь это сделать и совсем запутался.

У меня есть сервер Oracle Linux 7.9 с каталогом, который необходимо предоставить пользователям через HTTP, чтобы они могли загружать файлы для отправки третьим лицам.

Мне легко удалось сделать его видимым и открытым для всех, но до сих пор мне не удалось заставить работать LDAP — он даже не запрашивает учетные данные.

Я выполнил установку yum для: httpd, openldap, openldap-clients, nss_ldap и mod_ldap (согласно инструкциям, найденным в различных статьях в Интернете).

Я отредактировал /etc/httpd/conf/httpd.conf и добавил

LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

(журнал httpd показывает, что они уже загружены, и все равно пропускает их).

В /etc/httpd/conf.d/interfaces.conf у меня есть следующее (отредактировано для безопасности):

<VirtualHost *:80>

ServerAdmin [email protected]
  ServerName mywebserer
  ServerAlias x.x.x.x
  DocumentRoot /

  LogLevel warn
  ErrorLog "logs/interfaces_prd_webdav_error_log"
  CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/webdav_access_log.%Y-%m-%d-%H_%M_%S 5M" "%t %h  \"%r\" %>s %b"

  LimitXMLRequestBody 131072
  DavLockDB /var/lib/dav/lockdb

# ************************************************************

  <Directory "/directory/to/export">
    AuthType Basic
    AuthName "Use Your App Login"
    AuthBasicProvider ldap
    AuthLDAPURL "ldap://mydomain.local:389/ou=OU1,ou=MyBusiness,dc=mycompany,dc=local?sAMAccountName?sub?(objectClass=*)"
    AuthLDAPGroupAttributeIsDN on
    AuthLDAPBindDN "ldapsearchuser"
    AuthLDAPBindPassword "secret_password"
#    Require group cn=group,ou=Groups,dc=mycompany,dc=local
    Require valid-user
  </Directory>

  Alias /files /directory/to/export

  <Location /files>
    Dav on
    Order allow,deny
    Allow from all
    Require all granted
    Options +Indexes
  </Location>

</VirtualHost>

«Требовать группу» закомментировано, потому что на данном этапе я просто пытаюсь выполнить и подтвердить первоначальный вызов учетных данных.

Если это имеет значение, сервер, к которому я подключаюсь, — это сервер Linux OpenLDAP, а не Microsoft AD.

Когда я иду в http://x.x.x.x/файлы - Он просто дает мне содержимое каталога, не требуя учетных данных.

Я проверил папку /var/log/httpd после самого последнего доступа (после удаления существующих журналов), и ничего не было добавлено ни в какие файлы журналов.

При перезапуске httpd error_log показывает:

[Вторник, 13 июля, 17:07:00.277230 2021] [mpm_prefork:notice] [pid 11681] AH00170: поймал SIGWINCH, изящно выключился
[Вторник, 13 июля, 17:07:01.345552 2021] [suexec:notice] [pid 15751] AH01232: механизм suEXEC включен (оболочка: /usr/sbin/suexec)
[Вт, 13 июля 17:07:01.357475 2021] [so:warn] [pid 15751] AH01574: модуль ldap_module уже загружен, пропуск
[Вт, 13 июля 17:07:01.357497 2021] [so:warn] [pid 15751] AH01574: модуль authnz_ldap_module уже загружен, пропуск
AH00558: httpd: не удалось надежно определить полное доменное имя сервера с помощью fe80::221:f6ff:fe6e:9c69. Установите директиву 'ServerName' глобально, чтобы подавить это сообщение.
[Вт, 13 июля, 17:07:01.383713 2021] [lbmethod_heartbeat:notice] [pid 15751] AH02282: Нет слота в mod_heartmonitor
[Вт, 13 июля, 17:07:01.387200 2021] [mpm_prefork:notice] [pid 15751] AH00163: настроен Apache/2.4.6 () — возобновление нормальной работы
[Вторник, 13 июля, 17:07:01.387228 2021] [core:notice] [pid 15751] AH00094: Командная строка: '/usr/sbin/httpd -D FOREGROUND'

При попытке доступа к каталогу через браузер я получаю:

В interfaces_prd_webdav_error_log (я не думаю, что я слишком обеспокоен этим банкоматом):

[Вт, 13 июля, 17:07:20.015412 2021] [authz_core: ошибка] [pid 15754] [клиент 10.1.7.44:55820] AH01630: клиент отклонен конфигурацией сервера: /favicon.ico, реферер: http://172.17.9.21 /файлы/

В webdav_access_log:

[13 июля/2021:17:07:19 -0400] 10.1.7.44 "GET /files/HTTP/1.1" 200 1303
[13/Jul/2021:17:07:20 -0400] 10.1.7.44 "GET /favicon.ico HTTP/1.1" 403 213

Кто-нибудь может предложить какие-либо предложения?

Заранее спасибо.

Gerard H. Pille avatar
флаг in
Либо проблема с ведением журнала, либо вы не достигаете этого виртуального хоста, либо Apache не использует эту конфигурацию (забыли перезагрузить или перезапустить?)
SJWales avatar
флаг kw
Определенно перезапустил httpd - я знаю, что он использует эту конфигурацию, потому что до того, как я добавил «Параметры + индексы», я получил сообщение о том, что список каталогов запрещен конфигурацией сервера.
SJWales avatar
флаг kw
Ведение журнала, вероятно, также работает, поскольку журналы ошибок подхватили предыдущее сообщение до того, как я добавил бит «Параметры». Это похоже на то, что я не включил что-то, чтобы вызвать вызов для проверки учетных данных.
Gerard H. Pille avatar
флаг in
Значит, «ни в какие лог-файлы ничего не добавлялось» — это опечатка?
SJWales avatar
флаг kw
Что ж, после того, как я исправил эту конкретную проблему... Журнал доступа Webdav показывает следующее: ```[13/Jul/2021:16:13:26 -0400] 10.1.7.44 "GET /files/HTTP/1.1" 200 1303 [13/Jul/2021:16:13:26 -0400] 10.1.7.44 "GET /favicon.ico HTTP/1.1" 403 213 ```
Gerard H. Pille avatar
флаг in
При перезагрузке ничего путного в логах ошибок?
Gerard H. Pille avatar
флаг in
А при загрузке файла все еще нет авторизации?
SJWales avatar
флаг kw
Отредактирован вопрос, чтобы показать содержимое журналов. Могу скачать что угодно без авторизации.
Рейтинг:0
флаг kw

Хорошо, это было решено.

Я изменил раздел «Местоположение» на просто

  <Location /files>
    Dav on
    Options +Indexes
  </Location>

И теперь это работает. Похоже, что другие части переопределяли конфигурацию AD.

Однако спасибо за ваши комментарии, Джеральд.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.