OpenLDAP 代理缓存不检索条目

Mar*_*lka 6 openldap proxy cache

我需要设置一个连接到我们中央 Active Directory 服务器的本地 LDAP 代理缓存。OpenLDAP 代理缓存看起来很像。但是尽可能地遵循联机帮助页,我无法使其正常工作。

我能够通过 localhost 将请求代理到远程服务器,但它们没有被缓存(或者至少没有检索到缓存)。

我做的步骤:

  • 安装openldap-serversopenldap-clients打包
  • 创建了一个slapd.conf配置文件(详细信息如下)
  • 为代理数据库创建一个目录并将默认的 DB_CONFIG 文件复制到那里(详细信息如下)
  • Ranslapd -d -1命令启动服务器
  • 使用以下命令查询服务器: ldapwhoami -vvv -h localhost -D "CN=Melka Martin,OU=(...),DC=int,DC=ourdomain,DC=com" -x -w <password>

结果是成功。但是嗅探网络流量显示查询是从中央 LDAP 服务器汇集的。

slapd输出是非常详细,但它确实在一个点状态

QUERY NOT ANSWERABLE
QUERY CACHEABLE
Run Code Online (Sandbox Code Playgroud)

唉,如果它确实被缓存了,它永远不会被回答。任何想法可能是错误的?

"cn=admin,dc=int,dc=ourdomain,dc=com"是远程 LDAP 服务器中管理员用户的 DN。<something>是他的密码。

配置文件

database        ldap
suffix          "dc=int,dc=ourdomain,dc=com"
rootdn          "cn=admin,dc=int,dc=ourdomain,dc=com"
rootpw          <something>
uri             ldap://dc-04.int.ourdomain.com:389

overlay pcache
pcache         hdb 100000 1 1000 100
pcacheAttrset  0 *
pcacheTemplate (sn=) 0 3600
pcacheBind (sn=) 0 3600 sub dc=int,dc=ourdomain,dc=com

cachesize 200
directory /var/lib/ldap
index       objectClass eq
index       cn eq,sub
Run Code Online (Sandbox Code Playgroud)

数据库配置

# $OpenLDAP$

# one 0.25 GB cache
set_cachesize 0 268435456 1

# Transaction Log settings
set_lg_regionmax 262144
set_lg_bsize 2097152
Run Code Online (Sandbox Code Playgroud)

详细日志输出:http : //pastebin.com/9s8Hmg7d

473*_*469 0

您是否希望缓存以下查询?

ldapwhoami -vvv -h localhost -D "CN=Melka Martin,OU=(...),DC=int,DC=ourdomain,DC=com" -x -w <password>
Run Code Online (Sandbox Code Playgroud)

首先,我将更改模板以匹配身份验证参数:

pcacheTemplate (dn=) 0 3600
pcacheBind (dn=) 0 3600 sub dc=int,dc=ourdomain,dc=com
Run Code Online (Sandbox Code Playgroud)

(dn 是专有名称,sn 是姓氏)

但如果它有效的话我会感到惊讶。事实上,我不确定ldapwhoami是否是测试此覆盖的正确工具。authentication clients例如,手册页谈到了nss_ldap. 您应该预先配置它并观察它执行哪些查询,以便您可以模仿模板、范围和基础。