1

Я установил httpd 2.4, а /etc/httpd/conf.d/ssl.conf вроде

WSGIScriptAlias /wsgi_app /trac/cgi-bin/wsgi_app.py
<Directory /trac/cgi-bin>                          
  Require all granted                                  
</Directory>                                           
WSGIScriptAlias /ldap_app /trac/cgi-bin/wsgi_app.py
<Location /ldap_app>
...
</Location>

На одной физической машине он работает для доступа к http:///wsgi_app и http:///ldap_app. Я хочу клонировать такую среду на моей маленькой виртуальной машине (включая файлы конфигурации и пакеты), но при попытке получить доступ к URL-адресу ldap_app произошла ошибка. Я увеличил ОЗУ виртуальной машины с 512M до 1024M, проблема все еще возникает. Я включаю уровень журнала отладки для httpd, это не может помочь. Есть ли подсказка, чтобы решить / отследить эту ошибку? (Я проверил /var/log/httpd/*.log ничего не связанного с этой проблемой).

Единственные различия, которые я нашел, могут быть полезны - это последний номер журнала. На физическом компьютере /var /log /httpd /ssl_request_log

[14/Jul/2014:17:26:38 +0800] 192.168.2.160 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 "GET /ldap_app HTTP/1.1" 2088

На виртуальной машине /var /log /httpd /ssl_request_log

[14/Jul/2014:17:37:55 +0800] 192.168.2.160 TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 "GET /ldap_app HTTP/1.1" 527

/Etc/httpd/conf.d/ssl.conf

<Location /ldap-status>
  SetHandler ldap-status
  AuthType Basic
  AuthName "LDAP Protected"
  AuthBasicProvider ldap
  AuthLDAPBindDN "CN=foo,CN=Users,DC=bar,DC=com,DC=tw"
  AuthLDAPBindPassword "pass"
  AuthLDAPURL "ldap://192.168.1.1:389/CN=Users,DC=taifex,DC=com,DC=tw?sAMAccountName?sub?(objectClass=*)"
  # Require valid-user
</Location>

Если я включу «Требовать действительного пользователя», будут появляться следующие сообщения об ошибках: Внутренняя ошибка сервера Сервер обнаружил внутреннюю ошибку или неверную конфигурацию и не смог выполнить ваш запрос.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

2 ответа2

1

Я столкнулся с этой проблемой на моих серверах RHEL 7 и CentOS 7 сегодня.

Это проблема с SELinux, как правильно определено, которую можно найти при проверке журнала аудита (вдохновение из этого поста - https://serverfault.com/questions/343850/apache-httpd-with-ldap-error-in- Centos), раздражающе не в любом журнале Apache!

grep -m 1 httpd /var/log/audit/audit.log | audit2why 

возвращается

type=AVC msg=audit(1447030307.379:374): avc:  denied  { name_connect } for  pid=1132 comm="httpd" dest=389 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ldap_port_t:s0 tclass=tcp_socket
type=SYSCALL msg=audit(1447030307.379:374): arch=c000003e syscall=42 success=no exit=-13 a0=18 a1=7f0e86f6aa30 a2=10 a3=0 items=0 ppid=1029 pid=1132 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)

Однако выключение SELinux не является ответом.

SELinux имеет несколько параметров конфигурации, которые применяются к процессу httpd, полный список можно найти, выполнив:

getsebool -a | grep httpd

Одним из таких параметров конфигурации является httpd_can_connect_ldap, который по умолчанию отключен. Запуск следующего от имени пользователя root

setsebool -P httpd_can_connect_ldap on

разрешает процессу httpd доступ к серверам LDAP через стандартные порты.

0

Отключите SELinux, чтобы все заработало. (Плохой метод, но он работает. По моему вопросу работоспособная машина включаю SELinux)

Отредактируйте /etc /selinux /config и перезагрузитесь

SELINUX=didsabled

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .