Tivemos o mesmo problema, apenas atualizamos yum e, depois disso, o ldap funciona bem.
Usando o Centos 7 e as etapas a seguir para as configurações do servidor openldap. Estou enfrentando esse problema, por favor, ajude-me. obrigado
[root@linux1 ~]# systemctl restart slapd
Job for slapd.service failed because the control process exited with error code. See "systemctl status slapd.service" and "journalctl -xe" for details.
[root@linux1 ~]#
[root@linux1 ~]#
[root@linux1 ~]#
[root@linux1 ~]# systemctl status slapd
● slapd.service - OpenLDAP Server Daemon
Loaded: loaded (/usr/lib/systemd/system/slapd.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Sun 2018-05-13 03:21:41 EDT; 7min ago
Docs: man:slapd
man:slapd-config
man:slapd-hdb
man:slapd-mdb
file:///usr/share/doc/openldap-servers/guide.html
Process: 2781 ExecStart=/usr/sbin/slapd -u ldap -h ${SLAPD_URLS} $SLAPD_OPTIONS (code=exited, status=1/FAILURE)
Process: 2767 ExecStartPre=/usr/libexec/openldap/check-config.sh (code=exited, status=0/SUCCESS)
May 13 03:21:40 linux1.learnitguide.net runuser[2770]: pam_unix(runuser:session): session opened for user ldap by (uid=0)
May 13 03:21:40 linux1.learnitguide.net slapd[2781]: @(#) $OpenLDAP: slapd 2.4.44 (Apr 12 2018 19:17:38) $
[email protected]:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd
May 13 03:21:40 linux1.learnitguide.net slapd[2781]: ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
May 13 03:21:40 linux1.learnitguide.net slapd[2781]: ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"
May 13 03:21:41 linux1.learnitguide.net slapd[2781]: tlsmc_cert_create_hash_symlink: ERROR: OS error: Permission denied
May 13 03:21:41 linux1.learnitguide.net slapd[2781]: Could not get the realpath: No such file or directory
May 13 03:21:41 linux1.learnitguide.net systemd[1]: slapd.service: control process exited, code=exited status=1
May 13 03:21:41 linux1.learnitguide.net systemd[1]: Failed to start OpenLDAP Server Daemon.
May 13 03:21:41 linux1.learnitguide.net systemd[1]: Unit slapd.service entered failed state.
May 13 03:21:41 linux1.learnitguide.net systemd[1]: slapd.service failed.
[root@linux1 ~]#
Tivemos o mesmo problema, apenas atualizamos yum e, depois disso, o ldap funciona bem.
Eu não tive o problema "tlsmc_cert_create_hash_symlink: ERRO: Erro no sistema operacional: permissão negada", mas a mesma mensagem de erro "Não foi possível obter o caminho real: nenhum arquivo ou diretório".
Isso afeta a versão mais recente do Openldap para o Centos7
rpm -qa | grep openldap
openldap-clients-2.4.44-13.el7.x86_64
openldap-servers-2.4.44-13.el7.x86_64
openldap-2.4.44-13.el7.x86_64
ls /var/lib/ldap/
Para você, como informação, parece que o DB_CONFIG em / var / lib / ldap para esta versão está vazio. Eu não fui capaz de encontrar a causa. Criar um próprio DB_CONFIG e alterar o arquivo ldap.conf não corrigiu o problema.
Portanto, a solução suja: Faça o downgrade do OpenLdap.
mkdir /tmp/openldap/
cd /tmp/openldap/
wget https://rpmfind.net/linux/centos/7.4.1708/os/x86_64/Packages/openldap-clients-2.4.44-5.el7.x86_64.rpm
wget https://www.rpmfind.net/linux/centos/7.4.1708/os/x86_64/Packages/openldap-2.4.44-5.el7.x86_64.rpm
wget https://rpmfind.net/linux/centos/7.4.1708/os/x86_64/Packages/openldap-servers-2.4.44-5.el7.x86_64.rpm
yum downgrade ./openldap-*
systemctl start slapd.service
Desculpe, eu não testei outras versões e a fonte é questionável. Mas o LDAP começa então.
Recebendo dicas de Como posso instruir o yum para instalar uma versão específica Eu fiz o seguinte:
yum --showduplicates list openldap-servers
Eu tenho o seguinte:
openldap-servers.x86_64 2.4.40-9.el7_2 ol7_latest
openldap-servers.x86_64 2.4.40-13.el7 ol7_latest
openldap-servers.x86_64 2.4.44-5.el7 ol7_latest -> Last run version
openldap-servers.x86_64 2.4.44-13.el7 ol7_latest -> Works
openldap-servers.x86_64 2.4.44-15.el7_5 ol7_latest -> DOES NOT WORK
Eu usei a versão mais antiga dos servidores openldap usando:
yum install openldap-servers-2.4.44-13.el7
E foi capaz de evitar o problema.
É uma questão de SELinux. Você deve fazer uma política para o slapd.
#grep slapd /var/log/audit/audit.log | audit2allow
#============= slapd_t ==============
allow slapd_t slapd_tmp_t:lnk_file create;
Após confirmar acima, faça uma política.
# grep slapd /var/log/audit/audit.log | audit2allow -m slapd > slapd.te
# grep slapd /var/log/audit/audit.log | audit2allow -M slapd
******************** IMPORTANT ***********************
To make this policy package active, execute:
semodule -i slapd.pp
# semodule -i slapd.pp
Depois disso, você pode ter outro problema de TSL. Você precisa permitir que o slapd leia arquivos. Bem, você poderia resolver da mesma maneira. Com audit2allow, reconstrua a política.
se você é o CentOS 7, basta digitar esses comandos e tudo ficará bem
yum update
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/*