인디노트

OpenLDAP 소개 본문

개발 플랫폼 및 언어

OpenLDAP 소개

인디개발자 2018. 2. 23. 12:36

OpenLDAP 소개

OpenLDAP 패키지는 Lightweight Directory Access Protocol 의 오픈 소스 구현을 제공합니다.

이 패키지는 LFS-8.2 플랫폼을 사용하여 올바르게 빌드하고 작동하는 것으로 알려져 있습니다.

패키지 정보

추가 다운로드

OpenLDAP 종속성

기본

선택

ICU-60.2GnuTLS-3.6.2Pth-2.0.7unixODBC-2.3.5MariaDB-10.2.12 or PostgreSQL-10.2 or MySQLOpenSLP, and Berkeley DB-6.2.32 (not recommended by the developers)

사용자 참고 사항 : http://wiki.linuxfromscratch.org/blfs/wiki/openldap

OpenLDAP 설치

 Note

클라이언트 측의 ldap* 바이너리, 해당 매뉴얼 페이지, 라이브러리 및 헤더 파일 ( "클라이언트 전용" 설치) 들 만을 설치하려면  다음 명령을 실행합니다. (사용 가능한 테스트 스위트 없음)

patch -Np1 -i ../openldap-2.4.45-consolidated-1.patch &&
autoconf && 

./configure --prefix=/usr     \ 
            --sysconfdir=/etc \ 
            --disable-static  \ 
            --enable-dynamic  \ 
            --disable-debug   \ 
            --disable-slapd  && 

make depend && make

그런 후 root 계정으로 다음 명령을 수행합니다.

make install

 

 주의

Berkeley DB 를 백엔드로 사용한 이전 설치에서 업그레이드 하는 경우 slapcat 유틸리티를 사용하여 데이터베이스를 덤프하고 /var/lib/openldap 의 모든 파일을 재배치하고 bdb 의 모든 인스턴스를 /etc 의 mdb 로 변경해야합니다. /openldap/slapd.conf 및 /etc/openldap/slapd.d 에 있는 모든 파일을 보관하고 설치가 완료된 후 slapadd 유틸리티를 사용하여 가져옵니다.


slapd 데몬이 시작된 후에는 slapd 데몬을 제어 할 수 있는 전용 사용자와 그룹이 있어야합니다.
root 사용자로 다음 명령을 실행하십시오.

groupadd -g 83 ldap &&
useradd -c "OpenLDAP Daemon Owner" \
-d /var/lib/openldap -u 83 \
-g ldap -s /bin/false ldap


다음 명령들을 실행하여 OpenLDAP 를 설치 할 수 있습니다.

patch -Np1 -i ../openldap-2.4.45-consolidated-1.patch && autoconf &&
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--libexecdir=/usr/lib \
--disable-static \
--disable-debug \
--with-tls=openssl \
--with-cyrus-sasl \
--enable-dynamic \
--enable-crypt \
--enable-spasswd \
--enable-slapd \
--enable-modules \
--enable-rlookups \
--enable-backends=mod \
--disable-ndb \
--disable-sql \
--disable-shell \
--disable-bdb \
--disable-hdb \
--enable-overlays=mod &&
make depend && 
make

검사 결과가 약해 보입니다. 오류는 타이밍 문제로 인해 테스트가 완료되기 전에 중단 될 수 있습니다. 테스트는 약 65 분이 걸리고 프로세서 독립적입니다. 결과를 테스트하려면 make test 를 실행하십시오.

이제, root 계정으로 다음 명령을 수행합니다.

make install &&

install -v -dm700 -o ldap -g ldap /var/lib/openldap &&

install -v -dm700 -o ldap -g ldap /etc/openldap/slapd.d &&
chmod -v 640 /etc/openldap/slapd.{conf,ldif} &&
chown -v root:ldap /etc/openldap/slapd.{conf,ldif} &&

install -v -dm755 /usr/share/doc/openldap-2.4.45 &&
cp -vfr doc/{drafts,rfc,guide} \
/usr/share/doc/openldap-2.4.45

Command Explanations

--disable-static: 이 스위치는 정적 버전의 라이브러리 설치를 방지합니다.

--disable-debug: 이 스위치는 OpenLDAP 에서 디버깅 코드를 비활성화합니다.

--enable-dynamic: 이 스위치는 OpenLDAP 라이브러리가 실행 가능 프로그램에 동적으로 연결되게합니다.

--enable-crypt: 이 스위치를 사용하면 crypt (3) 암호를 사용할 수 있습니다.

--enable-spasswd: 이 스위치는 SASL 암호 확인을 활성화합니다.

--enable-modules: 이 스위치는 동적 모듈을 지원합니다.

--enable-rlookups: 이 스위치를 사용하면 클라이언트 호스트 이름을 역방향 조회 할 수 있습니다.

--enable-backends: 이 스위치는 사용 가능한 모든 백엔드를 활성화합니다.

--enable-overlays: 이 스위치는 사용 가능한 모든 오버레이를 활성화합니다.

--disable-ndb: 이 스위치는 MySQL이 있는 경우 configure 가 실패하게 하는 MySQL NDB Cluster 백엔드를 비활성화합니다.

--disable-sql: 이 스위치는 SQL 백엔드를 명시 적으로 비활성화합니다. SQL 서버가 설치되어 있고 SQL 백엔드를 사용하려는 경우이 스위치를 생략하십시오.

--libexecdir=/usr/lib: 이 스위치는 /usr/lib/openldap 디렉토리가 설치된 위치를 제어합니다. 이 디렉토리의 모든 것은 라이브러리이므로 /usr/libexec 대신 /usr/lib 에 속합니다.

--enable-slp: 이 스위치는 SLPv2를 지원합니다. OpenSLP를 설치 한 경우 사용하십시오.

 노트

./configure --help 를 실행하여 다른 옵션 또는 종속성 패키지를 활성화하기 위해 configure 명령에 전달 할 수 있는 다른 스위치가 있는지 확인 할 수 있습니다.

install ..., chown ..., chmod ... : 누구나 읽을 수 있는 /var/lib/openldap 에 있는 slapd 설정 파일과 ldap 데이터베이스는 보안 문제입니다. 특히 파일에 일반 텍스트로 관리자 비밀번호가 저장되어 있습니다. 이것이 모드 640 과 루트 : ldap 소유권이 사용 된 이유입니다. 소유자는 root 이므로 root 만이 파일을 수정 할 수 있고 group 은 ldap 이므로 slapd 데몬을 소유 한 그룹은 보안 위반시 파일을 읽을 수는 있지만 수정 할 수는 없습니다.

Configuring OpenLDAP

Config Files

/etc/openldap/*

구성 정보

slapd 서버 구성은 복잡 할 수 있습니다. LDAP 디렉토리를 보호하는 것은 특히 암호 데이터베이스와 같은 비공개 데이터를 저장하는 경우에 특히 어려울 수 있습니다. 특정 요구에 맞게 OpenLDAP를 설정하려면 /etc/openldap/slapd.conf 및 /etc/openldap/ldap.conf 파일을 수정해야합니다.

 Note

위의 지침은 빈 LDAP 구조와 기본 /etc/openldap/slapd.conf 파일을 설치 합니다. 이 파일은 LDAP 을 사용하여 빌드 및 기타 패키지를 테스트하는 데 적합 합니다. 프로덕션 서버에서는 사용하지 마십시오.

디렉토리 구성 선택, 백엔드 및 데이터베이스 정의, 액세스 제어 설정, 루트가 아닌 사용자로 실행 및 chroot 환경 설정과 같은 주제를 다루는 데 도움이 되는 리소스는 다음과 같습니다.

Mozilla Address Directory (모질라 AD)

기본적으로 LDAPv2 지원은 slapd.conf 파일에서 비활성화되어 있습니다. 데이터베이스가 제대로 설정되고 Mozilla 가 디렉토리를 사용하도록 구성되면 allow bind_v2 를 slapd.conf 파일에 추가해야 합니다.

Boot Script

시스템 부트시 LDAP 서버의 시작을 자동화하려면 다음 명령을 사용하여 blfs-bootscripts-20180105 패키지에 포함 된 /etc/rc.d/init.d/slapd init script 를 설치하십시오.

make install-slapd

 Note

특정 구성에 필요한 매개 변수를 포함하도록 /etc/sysconfig/slapd 를 수정해야 합니다. 매개변수 정보는 slapd 메인 페이지를 참조하십시오.

구성 테스트

init 스크립트를 사용하여 LDAP 서버를 시작하십시오.

/etc/rc.d/init.d/slapd start

다음 명령을 사용하여 LDAP 서버에 대한 액세스 권한을 확인하십시오.

ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

예상되는 결과는 다음과 같습니다.

# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts
#

#
dn:
namingContexts: dc=my-domain,dc=com

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

주요내용


Installed Programs: ldapadd, ldapcompare, ldapdelete, ldapexop, ldapmodify, ldapmodrdn, ldappasswd, ldapsearch, ldapurl, ldapwhoami, slapacl, slapadd, slapauth, slapcat, slapd, slapdn, slapindex, slappasswd, slapschema, and slaptest
Installed Libraries: liblber.solibldap.solibldap_r.so, and several under /usr/lib/openldap
Installed Directories: /etc/openldap, /{usr,var}/lib/openldap, and /usr/share/doc/openldap-2.4.45

Short Descriptions

ldapadd

LDAP 서버에 대한 연결을 열고 항목을 바인드하고 추가합니다.

ldapcompare

LDAP 서버에 대한 연결을 열고 지정된 매개 변수를 사용하여 비교를 수행하고 비교를 수행합니다.

ldapdelete

LDAP 서버에 대한 연결을 열고 하나 이상의 항목을 바인드하고 삭제합니다.

ldapexop

oid 또는 특수 키워드 whoami, cancel 또는 refresh 중 하나에 의해 지정된 LDAP 확장 작업을 실행합니다.

ldapmodify

LDAP 서버에 대한 연결을 열고 항목을 바인드하고 수정합니다.

ldapmodrdn

LDAP 서버에 대한 연결을 열고 항목의 RDN을 바인드하고 수정합니다.

ldappasswd

LDAP 사용자의 비밀번호를 설정하는 데 사용되는 도구입니다.

ldapsearch

LDAP 서버에 대한 연결을 열고, 지정된 매개 변수를 사용하여 바인드하고 검색을 수행합니다.

ldapurl

LDAP URI를 작성하거나 분해 할 수있는 명령입니다.

ldapwhoami

LDAP 서버에 대한 연결을 열고 Whoami 정보를 바인딩하고 표시합니다.

slapacl

해당 구성에 정의 된 액세스 제어 목록 지시문에 따라 디렉토리 데이터에 대한 액세스를 확인하여 slapd 의 동작을 확인하는 데 사용됩니다.

slapadd

LDIF (LDAP Directory Interchange Format)에 지정된 항목을 LDAP 데이터베이스에 추가하는 데 사용됩니다.

slapauth

slapd.conf 에 지정된 대로 인증 및 권한 부여 목적으로 ID를 매핑 할 때 slapd 의 동작을 확인하는 데 사용됩니다.

slapcat

slapd 데이터베이스의 내용을 기반으로 LDAP LDIF 출력을 생성하는 데 사용됩니다.

slapd

독립형 LDAP 서버입니다.

slapdn

스키마 구문을 기반으로 문자열로 표시된 DN 목록을 확인합니다.

slapindex

데이터베이스의 현재 내용을 기반으로 slapd 색인을 재생성 하는 데 사용됩니다.

slappasswd

OpenLDAP 암호 유틸리티입니다.

slapschema

slapd 데이터베이스의 내용에 대한 스키마 준수를 검사하는 데 사용됩니다.

slaptest

slapd.conf 파일의 온 전성을 검사합니다.

liblber.so

경량 기본 인코딩 규칙 루틴 집합입니다. 이러한 루틴은 LDAP 라이브러리 루틴이 LDAP 에 정의된 (약간 단순화 된) 기본 인코딩 규칙을 사용하여 LDAP 프로토콜 요소를 인코딩 및 디코딩 하는 데 사용됩니다. 제어 및 확장 조작의 처리를 제외하고는 일반적으로 LDAP 응용 프로그램에서 직접 사용하지 않습니다.

libldap.so

LDAP 프로그램을 지원하고 LDAP 와 상호 작용하는 다른 프로그램을 위한 기능을 제공합니다.

libldap_r.so

LDAP 요청에서 결과를 생성하기 위해 LDAP 프로그램에 필요한 기능을 포함합니다.

Last updated on 2018-02-21 16:44:26 -0600


반응형

'개발 플랫폼 및 언어' 카테고리의 다른 글

PostgreSQL 초기 설정 및 접속 연습  (0) 2018.02.28
BLFS Boot Scripts  (0) 2018.02.23
cannot open shared object file  (0) 2018.02.22
Compiling OpenLDAP  (1) 2018.02.22
Searching for the CA Entry as an anonymous user failed.  (0) 2018.02.22
Comments