Configure a autenticação LDAPS no Zabbix

Configure a autenticação LDAPS no Zabbix

Tento configurar a autenticação LDAPS no Zabbix 2.4, mas não funciona. Aqui estão as informações sobre minha configuração:

  • SO: Debian
  • Pacotes PHP instalados: libapache2-mod-php5 php-pear php5 php5-cli php5-common php5-curl php5-gd php5-imagick php5-json php5-ldap php5-mysqlnd php5-pgsql php5-readline php5-sasl zabbix-frontend-php

  • Este comando está funcionando:

ldapsearch -H ldaps://ldaps.mptest.be:636 -D cn=leitor,dc=antidoto,dc=prv -W -b ou=pessoas,dc=antidoto,dc=prv

Mesmo URI, OU, login, senha na página de configuração LDAP de autenticação no zabbix, eu tenho isto:

ldap_bind(): Não é possível vincular ao servidor: Não é possível entrar em contato com o servidor LDAP

[authentication.php:120 → CLdapAuthValidator->validate() → CLdap->checkPass() → ldap_bind() em /usr/share/zabbix/include/classes/ldap/CLdap.php:112] LDAP: não é possível vincular por determinado Vincular DN. O nome de login ou a senha estão incorretos!

Aqui está o conteúdo de /etc/ldap/ldap.conf: TLS_REQCERT allow BASE dc=antidot,dc=prv URI ldaps://ldap.mptest.be TLS_CACERTDIR /etc/ssl/mptest/wildcard_mptest_be.ca

(Autenticação sem SSL, na porta 386 não é possível)

Responder1

Isto é o que funciona no Ubuntu 14.04. O sistema baseado em Debian deve ser o mesmo:

https://www.novell.com/coolsolutions/tip/5838.html

Responder2

Resolvi esse problema visitando a interface web do Zabbix e indo paraAdministração->Autenticação->LDAPe mudando oAnfitrião LDAPparâmetro do nome do host (por exemplo, ldap.example.com) para seu endereço IP (por exemplo, 10.6.10.10).

Responder3

O LDAP do PHP é, para ser franco, pura porcaria. Há algum tempo, também tive dificuldades com Zabbix e LDAPS. Você pode fazer tudo 100% correto, mas ainda assim falhará. Então não se preocupe, a questão aqui não está do seu lado.

Para que isso funcione, você precisa desabilitar a validação do certificado TLS/SSL no OpenLDAP. O LDAP do PHP usa as bibliotecas OpenLDAP e, portanto, /etc/openldap/ldap.confsão ~/.ldaprccarregados e importados. (Isso pode ser visto usando um exemplo de consulta PHP LDAP e executando-a com strace -e trace=open php example.php). O problema aqui parece estar localizado na área de uso das bibliotecas OpenLDAP por PHPs, algumas chamadas ausentes/erradas/não implementadas para validação bem-sucedida do certificado TLS. Consertar isso envolveria corrigir o PHP.

TLS_REQCERT neverdeve ser o parâmetro necessário para fazer isso funcionar. As configurações de URL e OU/DC em ldap.conf não devem ser relevantes, pois são fornecidas na configuração do Zabbix. Eu sugiro fortemente que você modifique isso no ~/.ldaprcdiretório inicial do seu servidor web, para não afetar nenhum outro aplicativo que use LDAPS.

Esta solução não é boa, mas ainda é melhor do que recorrer ao LDAP não criptografado. E só para esclarecer, tentei colocar manualmente CACerts para OpenLDAP, regenerar o cache do certificado e definir TLS_REQCERTcomo always. Isso funcionou bem usando, por exemplo ldapsearch(usa a mesma biblioteca do PHP), mas ainda falhou com o recurso LDAP do PHP. Portanto, esta tentativa provavelmente será uma perda de tempo. Não tentei colocar o certificado do cliente e usar TLS_KEY/TLS_CERTconforme indicado na resposta do @jouflux. Se isso funcionar, seria uma solução melhor.

informação relacionada