로컬 LDAP 프록시 캐시를 실행하려고 합니다. 아이디어는 다음과 같습니다.
- 현재 컴퓨터가
(A)
모든 LDAP 요청을 원격 LDAP 서버로 보내고 있습니다.(L)
- 대신 과 사이의 중개자
A
역할을 하는 실행 중인 프록시 캐시 "서버"가 있어야 합니다 . 캐시는 모든 쿼리와 해당 속성을 모두 저장합니다(가득 차서 "재활용"을 시작할 때까지).A
L
OpenLDAP용 프록시 캐싱 엔진보기에는 좋지만 설정 방법에 대한 정보가 많지 않습니다. 샘플 구성 파일이 있지만 작동하게 할 수 없습니다.
이는 프록시 캐싱 전용이므로 로컬 데이터베이스를 설정할 필요가 없습니다. 따라서 구성 파일은 다음과 같습니다.
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
moduleload pcache.la
database ldap
suffix "dc=int,dc=somedomain,dc=com"
rootdn "dc=int,dc=somedomain,dc=com"
uri ldap://dc-04.int.somedomain.com:389
overlay pcache
pcache hdb 100000 1 1000 100
pcacheAttrset 0 *
pcacheTemplate (sn=) 0 3600
cachesize 20
directory /var/lib/ldap
index objectClass eq
index cn eq,sub
이제 ldap://localhost에 대한 요청이 원격 LDAP(캐시가 아닌 경우)에 미러링되기를 원합니다.
이 명령을 사용하여 원격 서버에서 인증을 테스트합니다.
ldapwhoami -vvv -h dc-04.int.somedomain.com -p 389 -D [email protected] -x -w <passwd>
그것은 훌륭하게 작동했고 나는 힘을 얻었습니다.
그러나 localhost에서 동일한 명령을 실행하려고 하면 다음과 같습니다.
ldapwhoami -vvv -h localhost -p 389 -D [email protected] -x -w <passwd>
실패했다, 말하자면
ldap_initialize( ldap://localhost:389 )
ldap_bind: Invalid DN syntax (34)
additional info: invalid DN
Slapd는 localhost를 수신하고 있으며 netstat에는 다음 줄이 포함되어 있습니다.
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 10352/slapd
내가 놓친 것이 있나요? 감사해요
답변1
ldap_bind: 잘못된 DN 구문(34) 추가 정보: 잘못된 DN
이는 잘못된 고유 이름이 사용되었음을 의미합니다. [email protected]
단순 바인드 요청에서 바인드 DN과 같은 것을 사용하는 것은 MS Active Directory에서만 작동하며 다른 LDAP 서버에서는 작동하지 않습니다. 따라서 로컬 LDAP 프록시는 요청을 거부하고 다른 조치를 취하지 않습니다.