第一次尝试这样做,我完全迷失了。
我有一台 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/文件- 它只给我目录的内容,不要求凭证。
我最近一次访问后(删除现有日志后)检查了 /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中(我认为目前并不太担心这个):
[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
有人能提供建议吗?
提前致谢。
答案1
好的,已经解决了。
我将位置部分更改为
<Location /files>
Dav on
Options +Indexes
</Location>
现在它开始工作了。看来是那里的其他部分覆盖了 AD 配置。
不过,谢谢你的评论,杰拉尔德。