slapd.d 구성을 사용한 기본 openldap 설정


14

openldap으로 작업하지 않은 테스트 openldap 서버를 설정하려고합니다. Redhat 기반 시스템 (Oracle Linux 사용)에서 표준 openldap-servers 패키지를 사용하고 있습니다. 패키지를 설치하고 서버를 시작했습니다.

실제로 서버가 실제로 유용한 것을 수행하는 방법을 모릅니다. luma를 사용하여 탐색 할 수 없습니다 (최상위 항목에 액세스하려고 할 때 '이러한 객체 없음'), openldap 문서는 실제로 서버를 기본 작동 상태로 가져 오는 방법과 모든 정보를 온라인으로 사용하는 방법에 대해 모호합니다. 새 slapd.d 및 cn = config 대신 이전 slapd.conf 파일 용입니다.

루마에서 루트 DN을 탐색 할 수있는 바닐라 패키지 openldap 설치를 어떻게 수행합니까?

답변:


20

나는 너의 고통을 느낀다.

이것을 시도하십시오 (Scientific Linux 6.5에서 테스트되었으므로 OL에서도 작동합니다).

  • OpenLDAP를 서버를 설치합니다 yum install openldap-servers openldap-clients)
  • 시작 slapd: service slapd start(그리고 아마도 chkconfig slapd on)
  • cn=config일반 LDAP 관리자 사용자의 비밀번호를 작성하십시오 slappasswd. 이것의 출력에 주목하십시오.
  • 다음 내용으로 LDIF 파일을 작성하십시오.
dn : olcDatabase = {0} config, cn = config
변경 유형 : 수정
추가 : olcRootPW
olcRootPW : {SSHA} TXcmvaldskl312012cKsPK1cY2321 + aj

dn : olcDatabase = {2} bdb, cn = config
변경 유형 : 수정
추가 : olcRootPW
olcRootPW : {SSHA} TXcmvaldskl312012cKsPK1cY2321 + aj
-
교체 : olcRootDN
olcRootDN : cn = admin, dc = your, dc = base, dc = com
-
교체 : olcSuffix
olcSuffix : dc = your, dc = base, dc = com
  • 에 대한 값 은 앞서 언급 한 olcRootPW출력으로 대체되어야합니다 slappaswd.
  • 당연히, olcSuffix그리고 olcRootDN새로운 기본 DN에 적응해야한다.
  • 다음 명령을 사용하여이 모든 것을 LDAP 서버에 공급하십시오.

    ldapmodify -a -Q -Y EXTERNAL -H ldapi:/// -f yourfile.ldif

Afer 즉은, 당신은 모두에 연결할 수 있어야합니다 cn=configdc=your,dc=base,dc=comLDAP를 통해.


7
고마워, 이것은 초보자의 악몽과 같습니다. 구성이 있지만 slap.d / *의 첫 번째 줄에-편집하지 마십시오. 모든 하우투 / 시작하기 / 가이드가 "좋아하는 편집기에서 구성 열기"에 대해 알려줍니다
fghj

9

OpenLDAP 서버를 시작하기 전에 몇 가지를 먼저 설정해야합니다.

기본 구성

기본 DN 정의와 함께 루트 사용자 및 비밀번호를 설정해야합니다. 에서 slapd.conf원하는 값으로 줄 다음 줄 및 설정을 찾습니다.

suffix "dc=example,dc=com"
rootdn "cn=root,dc=example,dc=com"

일반적으로 기본 DN ( suffix파일에서 정의 됨 )은 도메인 이름의 구성 요소이며 쉼표로 구분되고 접두사가 붙습니다 dc=. 따라서 serverfault.com가 될 수 있습니다 dc=serverfault,dc=com. 귀하는 rootdn해당 접미어 아래에 있어야합니다.

루트 암호를 정의하는 행도 변경해야합니다. 일반 텍스트 값으로 설정하거나 slappasswd해시를 만드는 데 사용할 수 있습니다. 그런 다음 일반 텍스트 값 또는 해시 값 slappasswd을 다음과 같은 줄 에 넣어야합니다 .

rootpw myultrasecurepassword

스키마

이 시점에서 사용하려는 스키마에 대해 생각하기 시작하는 것이 좋습니다. 스키마는 객체가 가질 수있는 속성을 정의하므로 필요한 속성이 포함 된 스키마를 포함해야합니다. 이 스키마는의 맨 위에 포함되며 slapd.conf여기에있는 스키마는 일반적으로 필요한 절대 기본 스키마입니다.

include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema

이러한 경로는 Arch Linux에서 사용되는 경로이므로 Oracle Linux에 맞게 조정해야합니다.

에 대해 slapd.confslapd.d

OpenLDAP는 오프라인 구성 (완료 slapd.conf)에서 온라인 구성으로 전환하여 에있는 특수 cn=config트리에 데이터를 저장 했습니다 slapd.d. 그러나 ldif파일을 수정하는 slapd.d것은 어려운 과정이므로 slapd.conf위와 같이 편집 한 다음 새 slapd.d형식 으로 변환하는 것이 훨씬 쉽습니다 .

먼저의 모든 항목을 제거하십시오 slapd.d. 다음으로 다음 명령을 실행하여 Oracle Linux에 대한 경로를 조정하십시오.

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

그런 다음 소유자를 해당 디렉토리의 LDAP 사용자 및 그룹으로 재귀 적으로 설정하면 준비가 완료됩니다. 이 작업은 편집 할 때마다 수행해야 slapd.conf합니다. OpenLDAP 서버를 중지하기 전에 반드시 중지하십시오!

초기 실행

실제로 디렉토리를 사용하려면 기본 DN (및 루트 사용자)을 작성해야합니다. .ldif다음과 유사한 행을 포함 하는 파일을 작성하십시오 .

dn: dc=example,dc=com
objectclass: dcObject
objectclass: organization
o: example.com
dc: example

dn: cn=root,dc=example,dc=com
objectclass: organizationalRole
cn: root

이제 OpenLDAP 서버를 시작하십시오. 해당 정보를 LDAP 디렉토리로 푸시하면됩니다.

ldapadd -D "cn=root,dc=example,dc=com" -W -f initial.ldif

루트 DN과 ldif 파일 이름을 현재와 일치하도록 변경하십시오.

이제 작동하는 LDAP 디렉토리가 설정되고 채워질 준비가되었습니다!


아치 리눅스 위키는이 주제에 대한 정보의 훌륭한 소스입니다 - 참조 https://wiki.archlinux.org/index.php/OpenLDAPhttps://wiki.archlinux.org/index.php/LDAP_Authentication을 당신이 원하는 경우 더 알고


이것의 대부분은 이미 패키지 관리자에 의해 수행과를 통해 구성을 관리하기 위해 계속 slapd.conf하고 slaptest서버가 중지되는 동안은 온라인 설정의 목적을 친다.
Sven

2
초기 구성의 경우 slapd.conf제대로 작동하며 slapd.d직접 편집 하는 것보다 훨씬 직관적 입니다. Oracle Linux에서 패키지 관리자가 디렉토리의 양을 알지 못하지만 OP가 기본 DN에 액세스 할 수없는 경우 충분하지 않습니다.
Xenopathic

1
허용 된 답변에는 필요한 정보가 있지만 초기 객체 생성에 대한 정보도 유용했습니다
Thecoop thecoop
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.