OpenLDAP TLS 인증


10

이 ldif 파일로 cn = config 데이터베이스를 수정하려고 할 때 https://help.ubuntu.com/lts/serverguide/openldap-server.html에 따라 TLS를 구현 하려고합니다.

dn: cn=config
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cacert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/test-ldap-server_cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/test-ldap-server_key.pem

다음과 같은 오류가 발생합니다.

ldapmodify -Y EXTERNAL -H ldapi:/// -f certinfo.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
ldap_modify: Other (e.g., implementation specific) error (80)

내가 무엇을 잘못하고 있지?

편집 : 간단한 인증을 사용하려고하면 다음 오류가 발생합니다.

ldapmodify -x -D cn=admin,dc=example,dc=com -W -f certinfo.ldif
Enter LDAP Password:
ldap_bind: Invalid DN syntax (34)
        additional info: invalid DN

인증서 파일에 대한 권한을 확인하십시오. 암호가 설정되어 있으면 제거하십시오.
zeridon

빠른 답변 주셔서 감사합니다. 600에있는 .key 파일을 제외하고 권한이 644로 설정되어 있습니다. 비밀번호는 어떻게 확인 / 제거합니까? cn = config.에 암호를 설정 한 것을 기억하지 못합니다.
Amar Prasovic

2
인증서 자체의 비밀번호를 의미합니다 (cn = config가 아님). 확인 : mnx.io/blog/removing-a-passphrase-from-an-ssl-key
zeridon

아니요, 그렇지 않았습니다. 키 파일이 비밀번호없이 작성되었습니다.
Amar Prasovic

간단한 인증 (-Y EXTERNAL 아님)으로 ldiff를로드 할 수 있습니까?
zeridon

답변:


17

나는 같은 가이드를 따르고 있었고 같은 문제가있었습니다. 문제가있는 ldapmodify 명령 다음에 나열된 "소유권 및 권한 강화"단계를 먼저 수행하면 다음과 같이 작동합니다.

sudo adduser openldap ssl-cert
sudo chgrp ssl-cert /etc/ssl/private
sudo chgrp ssl-cert /etc/ssl/private/ldap01_slapd_key.pem
sudo chmod g+X /etc/ssl/private
sudo chmod g+r /etc/ssl/private/ldap01_slapd_key.pem

sudo systemctl restart slapd.service

1
이것은 나에게도 효과가 있었다!
sonicwave

2
제 경우에는을 사용해야했습니다 chgrp openldap. 어쨌든, 그것은 허가 문제입니다. +1
xonya

또한 트래버스하려면 개인 디렉토리도 실행 가능해야합니다. sudo chgrp ssl-cert /etc/ssl/private && sudo chmod g+X /etc/ssl/private
Jeff Puckett

3

글쎄, 이것이 해결책인지 아니면 해결 방법인지는 알지 못하지만 제대로 작동했습니다.

나는 처음으로 때린 것을 멈추었다.

service slapd stop

그런 다음 디버그 모드에서 시작했습니다.

slapd -h ldapi:/// -u openldap -g openldap -d 65 -F /etc/ldap/slapd.d/ -d 65

ldapi : /// URL로만 시작하는 것이 중요합니다. 시작한 후 ldapmodify 명령을 실행하고 속성을 가져 왔습니다.

결국 나는 디버그 모드를 멈추고 slapd를 정상적으로 시작했다.


2

A. Gutierrez의 답변에 대한 후속 조치로 각 파일에 대한 액세스를 확인하는 가장 좋은 방법은을 실행하는 것 sudo -u openldap cat <filename>입니다. 모든 파일을 여러 번보고 권한이 올바르게 설정되어있는 것으로 나타났습니다. openldap의 그룹 문제로 판명되었습니다. 내가 마침내 그것을 알아 낸 후에, 간단한 sudo usermod -a -G ssl-cert openldap나를 위해 그것을 해결했습니다.


2

때로 서비스에 대한 문제 프로파일에 문제가있는 경우가 있습니다. apparmor 프로파일이 디먼에 대한 인증서 경로를 허용했는지 확인하십시오.

시각적으로 꽤 /etc/apparmor.d/usr.sbin.slapd있습니다. 기본적으로이 프로필을 사용하면 기본 위치에서 인증서를 읽을 수 있습니다.

적절한 Unix 권한에도 불구하고, 의류는 데몬의 실행 파일에 대해 지정되지 않은 작업을 방지해야합니다.


letencrypt를 사용하면 이것이 솔루션입니다. /etc/apparmor.d/usr.sbin.slapd/ etc / letsencrypt / r, / etc / letsencrypt / ** r에 다음 행을 추가하고 apparmor 프로파일을 다시로드하십시오.
Bernhard

1

Ubuntu Launchpad의이 버그에서 보고 한 바와 같이이 문제는 apparmor로 인해 발생할 수도 있습니다. 일반적으로 이것은 syslog에 액세스 거부로 표시됩니다.

이 수정 프로그램은 /etc/apparmor.d/usr.sbin.slapd에 다음 줄을 삽입합니다.

/etc/letsencrypt/** r,

그런 다음 프로필을 새로 고칩니다.

# apparmor_parser -vr usr.sbin.slapd
# service apparmor restart

0

이 문제도 있습니다. 문제는 slapd didt를 실행하는 사용자가 인증서 파일에 액세스 할 수 없다는 것입니다. 해당 파일의 소유자가 openldap 사용자인지 확인하십시오.


0

나에게 문제는 잘못된 순서로 기록되었습니다. 다음은 효과가 있습니다.

dn: cn=config
changetype: modify
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/cm_ca_cert.pem
-
# This never worked for me, no idea why
#add: olcTLSCipherSuite
#olcTLSCipherSuite: TLSv1+RSA:!NULL
#-
replace: olcTLSVerifyClient
olcTLSVerifyClient: never
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/cm_server.pem
-
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/cm_server.key

0

불행히도 이것은 거의 모든 것에 대해 발생하는 "기본"오류 인 것 같습니다. @wulfsdad의 답변은 대개 해결합니다.

내가 항상 잊어 버린 또 다른 것은 우분투 slapd에서 기본적으로 openssl 형식의 키를 원한다는 것입니다. 나는 규칙적으로 PCKS # 8 키를 넣고 작동해야합니다 (공평해야합니다). 위의 모든 답변을 시도한 경우 키의 형식이 올바른지 확인하십시오. 오류에 대해 인터넷 검색을 할 때 일반적으로 잘못된 권한에 대해 읽고 아파치가 왜 키 slapd가 좋아하지 않는지 왜 머리를 문지릅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.