728x90
반응형

memberOf overlay

AD에 있는 memberOf가 기본이라고 OpenLDAP에는 없지만, overlay에서 제공되고 있다.이를 이용하면 사용자의 정보에 어느 그룹에 속하는지를 알 수 있다.

이 attiribute는 내부 속성으로서 존재하고 groupOfNames객체의 member속성에 대한 변경을 트리거로 갱신된다.

 

설정

slapd.conf에서 설정.

- # moduleload memberof.la
+ moduleload memberof.la
 
+ # memberOf
+ overlay memberof
+ memberof-group-oc   groupOfUniqueNames
+ memberof-member-ad  uniquemember

기본적으로 groupOfNames객체의 member속성이 트리거가 되지만 설정에 의해서 groupOfUniqueNames객체의 uniquemember속성을 트리거로 했다.

728x90
300x250

'IT > OpenLDAP' 카테고리의 다른 글

(최신) Amazon Linux 2에서 OpenLDAP 구성 (with SAMBA)  (0) 2022.01.14
LDAP Account Manager의 설정  (0) 2021.07.30
OpenLDAP ACL에 대한 설명  (0) 2021.07.30
OpenLDAP 백업 설정  (0) 2021.07.30
OpenLDAP Replication 작업  (0) 2021.07.30
728x90
반응형

ACL의 평가

처음에<what>의 평가를 실시하고, 다음에<who>를 본다.<what>는 access to XXX의 XXX의 부분에 해당한다.

 

 

5.3. 접근 통제
slapd의 엔트리 및 속성 접근권은 olcAccess속성으로 제어됩니다.olcAccess속성의 일반적인 형식을 다음과 같습니다.

        olcAccess: <access directive>
        <access directive> ::= to <what>
                [by <who> <access> <control>]+
        <what> ::= * |
                [dn[.<basic-style>]=<regex> | dn.<scope-style>=<DN>]
                [filter=<ldapfilter>] [attrs=<attrlist>]
        <basic-style> ::= regex | exact
        <scope-style> ::= base | one | subtree | children
        <attrlist> ::= <attr> [val[.<basic-style>]=<regex>] | <attr> , <attrlist>
        <attr> ::= <attrname> | entry | children
        <who> ::= * | [anonymous | users | self
                        | dn[.<basic-style>]=<regex> | dn.<scope-style>=<DN>]
                [dnattr=<attrname>]
                [group[/<objectclass>[/<attrname>][.<basic-style>]]=<regex>]
                [peername[.<basic-style>]=<regex>]
                [sockname[.<basic-style>]=<regex>]
                [domain[.<basic-style>]=<regex>]
                [sockurl[.<basic-style>]=<regex>]
                [set=<setspec>]
                [aci=<attrname>]
        <access> ::= [self]{<level>|<priv>}
        <level> ::= none | auth | compare | search | read | write
        <priv> ::= {=|+|-}{w|r|s|c|x|0}+
        <control> ::= [stop | continue | break]
여기서<what>부에는 접근 제어되는 엔트리나 속성을 지정합니다.<who>부에는 접근권을 주는 실체를 지정합니다.<access>부에는 주는 액세스 권한을 지정합니다.복수의<who> <access> <control>지정이 지원되고 있습니다.이에 따라엔트리와 속성의 세트에 대해서 많은 실체에 다른 접근권을 줄 수 있습니다.이들의 접속 제어 옵션의 모든 것은 여기서 설명하지 않습니다.더 자세한 내용은slapd.access(5)man페이지를 참조하세요.
728x90
300x250

'IT > OpenLDAP' 카테고리의 다른 글

LDAP Account Manager의 설정  (0) 2021.07.30
OpenLDAP memberOf overlay  (0) 2021.07.30
OpenLDAP 백업 설정  (0) 2021.07.30
OpenLDAP Replication 작업  (0) 2021.07.30
OpenLDAP 설치와 설정  (0) 2021.07.30
728x90
반응형

백업

db_hotbackup명령을 사용한다. OpenLDAP설치에서 DB_CONFIG파일을 적절히 설정한 다음에 실행 가능.

# DB_HOME=/var/lib/ldap db_hotbackup -Dcb /tmp/back

이 예에서는/tmp/back 다음에 백업했다.이 데이터를 tar등에서 제작하고 백업으로 두면 좋다.

 

확인

db_verify에서 백업 데이터의 검증을 실시한다.

# db_verify `ls /tmp/back/*.bdb`

아무 출력된 결과가 없다면 문제없음

 

리스토어

백업 데이터를 데이터 디렉토리로 되돌리는 것만으로도 복구된다.

1. OpenLDAP서버 정지

# service slapd stop

2. 데이터 삭제

# rm -rf /var/lib/ldap/*

3. 데이터 복구

# cp /tmp/back/* /var/lib/ldap/
# chown -R ldap:ldap /var/lib/ldap/*

4. 기동

# service slapd start
728x90
300x250

'IT > OpenLDAP' 카테고리의 다른 글

LDAP Account Manager의 설정  (0) 2021.07.30
OpenLDAP memberOf overlay  (0) 2021.07.30
OpenLDAP ACL에 대한 설명  (0) 2021.07.30
OpenLDAP Replication 작업  (0) 2021.07.30
OpenLDAP 설치와 설정  (0) 2021.07.30
728x90
반응형

개요


OpenLDAP의 레플리케이션은 syncrepl 형식으로 실시한다. 2.3까지는 slurpd에서의 레플리케이션이 있었지만, 여러 가지 문제가 있어 2.4부터 폐지되었다. 마스터측을 프로바이더, 슬레이브측을 컨슈머라 부른다. syncrepl에는 2개의 동기 방식이 있다.

 

- refreshOnly

프로바이더로의 정기적인 접속 및 LDAP Sync 조작 실행

 

- refreshAndPersist

컨슈머가 정지할 때까지 LDAP Sync 조작이 계속됨

 

또한 프로바이더/컨슈머(Master/Slave) 형식뿐만 아니라 미러모드로 Active/Active 구성도 가능하다. 미러모드는 정확히는 멀티마스터가 아니다. 동시에 갱신을 하면 데이터의 부정합이 나오므로 갱신은 한쪽에 고정하는 것이 좋다.

 

프로바이더/컨슈머(Master/Slave) 구성


프로바이더측의 설정


- slapd.conf에 추가 설정하는 부분은 다음과 같다.

# 모듈 읽기
modulepath /usr/lib64/openldap
moduleload syncprov.la
 
# syncrepl에서 이용하는 운영 속성에 인덱스를 붙입니다.
index entryCSN,entryUUID eq
 
## 리플리케이션 설정
# syncprov 오버레이 사용 지정
overlay syncprov

# contextCSN 체크 포인트
# 전 체크 포인트부터 <ops> 회의 조작이 실행되고 있는지,
# <minutes> 시간이 경과하면 새로운 체크포인트가 실행되고
syncprov-checkpoint 10 10

# 세션 로그에 저장할 수 있는 조작 수를 지정
syncprov-sessionlog 100

 

컨슈머 설정


slapd.conf 에 설정 추가

# syncrepl에서 이용하는 운용 속성에 인덱스 설정
index entryCSN,entryUUID eq
 
##리플리케이션 설정
# 식별 번호를 지정
syncrepl rid=100
    provider=ldaps://ldap-0.naver.com:636
    type=refreshAndPersist
    retry="5 10 300 +"
    searchbase="dc=naver,dc=com"
    bindmethod=simple
    binddn="cn=Manager,dc=naver,dc=com"
    credentials=naver

Naver(예)는 LDAP 서버는 공적으로 발행된 와일드카드 서버 증명서를 사용하고 있으므로 필요 없지만, 자기인증국에서 서명한 증명서를 사용하는 경우는

tls_reqcert=never

를 지정하여 체크를 회피할 필요가 있다. 접속처의 프로바이더 명도 *.naver.com 도메인이어야 한다.

 

미러 모드


Naver(예)의 LDAP 서버는 이곳에서 운용한다. slapd.conf 파일은 각각 기본적으로 동일하지만 아래의 점에 차이가 있다.

 - serverID 지정(노드별로 별도로)

 - syncrepl 에서 rid는 각각 따로 지정한다.

 - ldap-0

## 리플리케이션 설정
모듈 읽기
modulepath /usr/lib64/openldap
moduleload syncprov.la
 
syncrepl 에서 이용하는 운용 속성에 인덱스 설정
index entryCSN,entryUUID eq
 
# syncprov 오버레이 사용 지정
overlay syncprov
 
# 각각의 노드에서 유니크한 서버 ID를 부여할 것
serverID 1
 
# 식별 번호를 지정하다
syncrepl rid=100
    provider=ldaps://ldap-1.naver.com:636
    type=refreshAndPersist
    retry="5 10 300 +"
    searchbase="dc=naver,dc=com"
    bindmethod=simple
    binddn="cn=reader,dc=naver,dc=com"
    credentials=reader
 
# 미러 모드 활성화
mirrormode on

- ldap-1

## 리플리케이션 설정
# 모듈 가져오기
modulepath /usr/lib64/openldap
moduleload syncprov.la
 
syncrepl에서 이용하는 운용 속성에 인덱스 설정
index entryCSN,entryUUID eq
 
# syncprov 오버레이 사용 지정
overlay syncprov
 
# 각각의 노드에서 유니크한 서버 ID를 부여할 것
serverID 2
 
# 식별 번호를 지정하다
syncrepl rid=100
    provider=ldaps://ldap-0.naver.com:636
    type=refreshAndPersist
    retry="5 10 300 +"
    searchbase="dc=naver,dc=com"
    bindmethod=simple
    binddn="cn=reader,dc=naver,dc=com"
    credentials=reader
 
# 미러 모드 활성화
mirrormode on
728x90
300x250

'IT > OpenLDAP' 카테고리의 다른 글

LDAP Account Manager의 설정  (0) 2021.07.30
OpenLDAP memberOf overlay  (0) 2021.07.30
OpenLDAP ACL에 대한 설명  (0) 2021.07.30
OpenLDAP 백업 설정  (0) 2021.07.30
OpenLDAP 설치와 설정  (0) 2021.07.30
728x90
반응형

설치


CentOS의 경우 패키지에서 설치 가능. samba사용자 관리에 전용의 스키마가 필요하므로, samba도 설치할 필요가 있다.

# yum install openldap openldap-servers openldap-clients samba

 

설정


스키마의 설정

-       MUST ( uniqueMember $ cn )
-       MAY ( businessCategory $ seeAlso $ owner $ ou $ o $ description ) )
+       MUST ( cn )
+       MAY ( uniqueMember $ businessCategory $ seeAlso $ owner $ ou $ o $ description ) )

 

서버 기본 초기 설정


1. 초기 데이터를 삭제

# rm -rf /etc/openldap/slapd.d/*
# rm -rf /var/lib/ldap/*

2. BerkeleyDB의 서식 파일을 복사하고 트랜잭션 로그 자동 삭제 설정 등을 추가

# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

변경 부분은 아래 처럼..

# Data Directory
-#set_data_dir db
+set_data_dir .
 
 # Transaction Log settings
 set_lg_regionmax 262144
 set_lg_bsize 2097152
-#set_lg_dir logs
+set_lg_dir .
 
+# delete log
+set_flags DB_LOG_AUTOREMOVE

3. slapd.conf의 샘플 파일을 설정

# cp -av /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

- 스키마의 읽기를 추가

include         /etc/openldap/schema/samba.schema

- TLS의 설정

TLSCACertificateFile /etc/openldap/certs/ssl.pem
TLSCertificateFile /etc/openldap/certs/ssl.pem
TLSCertificateKeyFile /etc/openldap/certs/ssl.pem

- 액세스 설정

access to attrs=userPassword
     by self write
     by dn="cn=Manager,dc=naver,dc=com" write
     by anonymous auth
     by * none
#--- 기타 속성에 대한 접근 제한
#       Manager는 모두 허용
#       기타 접속시 read만 가능
access to *
    by self write
    by dn="cn=Manager,dc=naver,dc=com" write
    by * read

- 데이터베이스 설정

## config
database       config
rootdn         "cn=admin,cn=config"
rootpw         {SSHA}bH2ttihNwRlyAYNb0nBeBD6sYp8vZ0s+
## monitor
database monitor
access to *
    by dn.exact="cn=Manager,dc=naver,dc=com" read
    by * none
## base
database        bdb
suffix          "dc=naver,dc=com"
checkpoint      1024 15
rootdn          "cn=Manager,dc=cocone,dc=jp"
# Cleartext passwords, especially for the rootdn, should
# be avoided.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
# rootpw                secret
rootpw          {SSHA}bH2ttihNwRlyAYNb0nBeBD6sYp8vZ0s+

4. 관리자 비밀 번호의 생성

# slappasswd -s 임의의 패스워드
{SSHA}k1smRjpl5Na2lNS659dYaYHmJfbZLkWA

5. /etc/openldap/slapd.conf의 수정

6. LDAPS의 유효화./etc/sysconfig/ldap의 수정.

-SLAPD_LDAPS=no
+SLAPD_LDAPS=yes

7. 설정 파일의 체크

# slaptest -u -d 64 -v -f /etc/openldap/slapd.conf
config file testing succeeded
-u dry-run
-d 디버깅 수준의 지정
-v verbose
-f slapd.conf파일의 지정(디폴트면 지정 필요 없음)

8. /etc/openldap/slapd.d의 갱신. 첫회는 에러가 나서지만 문제 없다.

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

9. 권한 설정

# chown -R ldap:ldap /var/lib/ldap
# chown -R ldap:ldap /etc/openldap/slapd.d

 

 

로그의 설정


기본적으로 로그의 출력이 상태가 아니므로(r)syslog경유로 가져온다. 이 경우 시설은 local4로 고정이므로(r)syslog설정에서 적절하게 설정한다. 예를 들면 아래처럼..

local4.*                                                /var/log/openldap.log

로그를 별도로 내더라도 로테이트의 설정도 아울러 실시한다. /etc/loglotate.d/syslog다음을 추가.

/var/log/openldap.log

로그 수준은 slapd.conf로 설정한다.기본 값은 256.

loglevel 256

Log Level

 

Berkeley DB의 설정


초기화

구축한 LDAP데이터를 모두 초기화하고 깨끗한 상태로 하는 법

 

1. LDAP서버의 정지

# service slapd stop

2. 설정 삭제

# rm -rf /etc/openldap/slapd.d/*

3. 콘텐츠의 삭제

# rm -rf /var/lib/ldap/*

이 후 초기 설정한다.

728x90
300x250

'IT > OpenLDAP' 카테고리의 다른 글

LDAP Account Manager의 설정  (0) 2021.07.30
OpenLDAP memberOf overlay  (0) 2021.07.30
OpenLDAP ACL에 대한 설명  (0) 2021.07.30
OpenLDAP 백업 설정  (0) 2021.07.30
OpenLDAP Replication 작업  (0) 2021.07.30

+ Recent posts