第一次尝试这样做,我完全迷失了。
我有一个 Oracle Linux 7.9 服务器,它有一个需要通过 HTTP 共享给用户的目录,以便他们可以下载文件以发送给第三方。
我很容易让它对所有人可见和开放,但到目前为止我还无法让 LDAP 工作——它甚至不会提示我输入凭据。
我已经为:httpd、openldap、openldap-clients、nss_ldap 和 mod_ldap 进行了 yum 安装(根据网络上各种文章中的说明)。
我已经编辑了 /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://xxxx/files - 它只是给了我目录的内容,对凭据没有挑战。
我在最近一次访问后(删除现有日志后)检查了 /var/log/httpd 文件夹,并且没有将任何内容添加到任何日志文件中。
重新启动 httpd 时,error_log 显示:
[Tue Jul 13 17:07:00.277230 2021] [mpm_prefork:notice] [pid 11681] AH00170: caught SIGWINCH, shutting down gracefully
[Tue Jul 13 17:07:01.345552 2021] [suexec:notice] [pid 15751] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Jul 13 17:07:01.357475 2021] [so:warn] [pid 15751] AH01574: module ldap_module is already loaded, skipping
[Tue Jul 13 17:07:01.357497 2021] [so:warn] [pid 15751] AH01574: module authnz_ldap_module is already loaded, skipping
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::221:f6ff:fe6e:9c69. Set the 'ServerName' directive globally to suppress this message
[Tue Jul 13 17:07:01.383713 2021] [lbmethod_heartbeat:notice] [pid 15751] AH02282: No slotmem from mod_heartmonitor
[Tue Jul 13 17:07:01.387200 2021] [mpm_prefork:notice] [pid 15751] AH00163: Apache/2.4.6 () configured -- resuming normal operations
[Tue Jul 13 17:07:01.387228 2021] [core:notice] [pid 15751] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
尝试通过浏览器访问目录时,我得到:
在 interfaces_prd_webdav_error_log 中(我不认为过分担心这个 atm):
[Tue Jul 13 17:07:20.015412 2021] [authz_core:error] [pid 15754] [client 10.1.7.44:55820] AH01630: client denied by server configuration: /favicon.ico, referer: http://172.17.9.21/files/
在 webdav_access_log 中:
[13/Jul/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
任何人都可以提供任何建议吗?
提前致谢。