Cache de proxy do OpenLDAP não recuperando entradas

4

Eu preciso configurar um cache de proxy LDAP local que se conecte ao nosso servidor central do Active Directory. O Cache de Proxy do OpenLDAP parece com a coisa. Mas, seguindo as páginas de trabalho o mais próximo possível, não consigo fazê-lo funcionar.

Eu sou capaz de fazer solicitações através de localhost para o servidor remoto, mas elas não são armazenadas em cache (ou o cache não é recuperado, pelo menos).

Os passos que fiz:

  • Instalado openldap-servers e openldap-clients packages
  • Criado um arquivo slapd.conf config (detalhes abaixo)
  • Criado um diretório para o banco de dados de proxy e copiado o arquivo DB_CONFIG padrão (detalhes abaixo)
  • Execute o comando slapd -d -1 para iniciar o servidor
  • Consultou o servidor usando este comando: ldapwhoami -vvv -h localhost -D "CN=Melka Martin,OU=(...),DC=int,DC=ourdomain,DC=com" -x -w <password>

O resultado é sucesso. Mas farejar tráfego de rede mostra que a consulta é agrupada a partir do servidor LDAP central.

A saída slapd é bastante detalhada, mas em um estado de ponto

QUERY NOT ANSWERABLE
QUERY CACHEABLE

Infelizmente, se ele for armazenado em cache, ele nunca será respondido. Alguma idéia do que pode estar errado?

"cn=admin,dc=int,dc=ourdomain,dc=com" é o DN de um usuário administrador no servidor LDAP remoto. <something> é a senha dele.

slapd.conf

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

DB_CONFIG

# $OpenLDAP$

# one 0.25 GB cache
set_cachesize 0 268435456 1

# Transaction Log settings
set_lg_regionmax 262144
set_lg_bsize 2097152

A saída de log detalhado: link

    
por Martin Melka 12.11.2015 / 15:33

2 respostas

0

Você espera que a seguinte consulta seja armazenada em cache?

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

Primeiro, eu mudaria os modelos para corresponder aos parâmetros de autenticação:

pcacheTemplate (dn=) 0 3600
pcacheBind (dn=) 0 3600 sub dc=int,dc=ourdomain,dc=com

(dn é um nome distinto, sn é sobrenome)

Mas eu ficaria surpreso se funcionasse. Na verdade, não tenho certeza se ldapwhoami é a ferramenta certa para testar essa sobreposição. A página man fala sobre authentication clients , por exemplo, nss_ldap . Você deve antes configurá-lo e observar quais consultas ele realiza, para que você possa imitar modelo, escopo e base.

    
por 18.11.2015 / 12:29
0

Algumas coisas a mencionar que podem ser úteis ou ajudar a diminuir uma causa raiz. . .

PRIMEIRO

Gostaria de salientar que observei que você estava executando slapd -d -1 , o que significa apenas executar slapd com nível de depuração e logging 1 meaning verbose / enable all debugging .

Pelo que eu li no recurso de URL de postagem abaixo, se você não executar na sintaxe slapd -f <filename> e qualificar totalmente o <filename> para apontar para um arquivo "alternativo" slapd.config , então. . . " O padrão é normalmente /usr/local/etc/openldap/slapd.conf. "

Portanto, isso pode não executar slapd e apontá-lo para o arquivo de configuração para pegar os ponteiros / parâmetros que você colocou no arquivo de configuração alternativo, então tente primeiro, caso este seja o problema.

Pode estar relacionado especificamente a este erro ( ERROR PART1 ): 564da523 config_back_db_open: No explicit ACL for back-config configured. Using hardcoded default

(Recurso: link )

OBSERVAÇÃO: vejo algumas mensagens de erro relacionadas ao BD no log detalhado que você forneceu, então talvez ele não consiga encontrar o BD aplicável, a menos que você mude para esse diretório para que possa ser encontrado implicitamente, a menos que suporta algum outro método de ponteiro DB explícito (NOTE2 pode ser aplicável a este método).

NOTE2: Aqui está uma boa leitura no método LDAP Proxy e usando o uri , etc. na configuração desta forma apenas para revisar algo óbvio que pode estar faltando ou estar mal configurado no arquivo slapd.conf ( link ) .

Alguns pontos interessantes do recurso de seção da nota 2

  • LDAP Proxy
  • binddn
  • bindpw
  • identity assertion
  • identity assertion configuration

VERSÕES

Em primeiro lugar, parece que você tem duas versões no OpenLADAP, então vale a pena ler as notas de lançamento aqui para ver se algo parece aplicável ao seu problema. org / software / release / changes.html "> link ) que pode justificar a atualização ou a execução de um sistema de atualização de teste, se possível.

ERROS

Em segundo lugar, os detalhes do log detalhado fornecem muito mais mensagens de erro etc. e eu queria destacar ERROR PART 1 , ERROR PART 2 , ERROR PART 3 e ERROR PART 4 abaixo especificamente nessa ordem.

Causas comuns de erros do LDAP

(Recurso: link )

Pelo que eu li, se você se sentir confortável, todas as suas configurações estão configuradas corretamente, a ERROR PART 1 primeira linha pode ser apenas um "aviso" e segura para ser descartada.

No entanto, a linha abaixo disso ( ~Using hardcoded default ) pode ser a parte da seção FIRST acima, conforme listei a URL, etc.

PARTE 1 DO ERRO

564da523 config_back_db_open: line 0: warning: cannot assess the validity of the ACL scope within backend naming context
564da523 config_back_db_open: No explicit ACL for back-config configured. Using hardcoded default

Recursos:

PARTE 2 DO ERRO

564da523 <= hdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30988)
564da523 <= hdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30988)

Neste (acima) eu encontrei um exemplo aqui com slapd.conf arquivos e um (abaixo) afirmando isso, então eu estou querendo saber se é tão simples quanto você precisa mudar para o diretório DB no arquivo slapd.conf no seu caso.

(Recurso: link )

EXEMPLO DE URL DE RECURSO

# root or superuser
rootdn "cn=jimbob, dc=example, dc=com"
rootpw dirtysecret
# The database directory MUST exist prior to running slapd AND 
# change path as necessary
directory   /var/db/openldap/example-com

PARTE 3 DO ERRO

Solucione problemas usando telnet <host> <port> para o endereço IP do LDAP

Também pode ser útil ( link )

ldap_read: want=8 error=Resource temporarily unavailable

PARTE 4 DO ERRO

64da525 <= hdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found (-30988)
564da525 => bdb_entry_get: cannot find entry: "cn=melka martin,ou=release engineering,ou=development,ou=research and development,ou=cz,dc=int,dc=company,dc=com"
564da525 QUERY NOT ANSWERABLE
564da525 QUERY CACHEABLE
    
por 20.11.2015 / 01:10