인디노트

CentOS6, CentOS7 에 OpenLDAP 설치 본문

개발 플랫폼 및 언어

CentOS6, CentOS7 에 OpenLDAP 설치

인디개발자 2018. 3. 27. 13:15

CentOS6, CentOS7 OpenLDAP 설치


다음 명령으로 설치 있다.

# yum -y install openldap-servers openldap-clients


설치된 OpenLDAP 데몬 프로그램은 다음의 패스에 있다.

/usr/sbin/slapd


서비스 실행 방법

  • CentOS6
  • 다음의 시작 스크립트를 이용한다.

    /etc/init.d/slapd

  • 다음과 같은 명령으로 실행하거나 중지 시킬 있다.

# service slapd start

# service slapd restart

# service slapd stop

  • 부팅시 시작하도록 설정할 있다.

# chkconfig --levels 2345 slapd on

  • CentOS7
  • 다음과 같은 명령으로 실행하거나 중지 시킬 있다.

# systemctl start slapd

# systemctl restart slapd

# systemctl stop slapd

  • 부팅시 시작하도록 설정할 있다.

# systemctl enable slapd


데이터 패스

데이터가 저장되는곳은 기본적으로 다음의 패스이다.

/var/lib/ldap


방화벽 포트

원격으로 연결할 방화벽은 389 포트를 열면 된다.


LDAPManager

OS X 에서 LDAPManager 다음의 주소에서 다운로드 받아 사용할 있다.

https://sourceforge.net/projects/ldapmanager/files/latest/download







OpenLDAP 환경 설정


  • LDAP 서버의 초기데이터(엔트리) 설정할 차례이다. (주로 조직이름과 그룹에 관한 설정) 기본 BaseDN 설정과 기본그룹등을 설정한다.

  • 다음의 패스에

    /etc/openldap/slapd.d/cn=config


  • 다음과 같은 파일들이 있다.

drwxr-x---. 2 ldap ldap  4096 Feb 24 01:27 cn=schema

-rw-r-----. 1 ldap ldap 59398 Feb 24 01:27 cn=schema.ldif

-rw-r-----. 1 ldap ldap   663 Feb 24 01:27 olcDatabase={0}config.ldif

-rw-r-----. 1 ldap ldap   596 Feb 24 01:27 olcDatabase={-1}frontend.ldif

-rw-r-----. 1 ldap ldap   695 Feb 24 01:27 olcDatabase={1}monitor.ldif

-rw-r-----. 1 ldap ldap  1294 Feb 24 01:27 olcDatabase={2}bdb.ldif


  • 다음 두개의 파일에 있는 도메인을 설정해야 한다.

slapd.d/cn=config/olcDatabase={2}hdb.ldif

olcSuffix: dc=my-domain,dc=com

olcRootDN: cn=Manager,dc=my-domain,dc=com

slapd.d/cn=config/olcDatabase={1}monitor.ldif

olcAccess: {0}to *  by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=exter

nal,cn=auth" read  by dn.base="cn=manager,dc=my-domain,dc=com" read  by * n

one








OpenLDAP

===========



yum -y install openldap openldap-servers openldap-clients

rm -rf /var/lib/ldap/DB_CONFIG

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

chown ldap. /var/lib/ldap/DB_CONFIG


systemctl start slapd

systemctl enable slapd





SM_82_Directory_issue3.pdf OpenLDAP 관련 

ConfiguringOpenLDAP....................................... 275

InstallingandconfiguringOpenLDAP ........................... 276 

AddingtheSecurityManagerschematoOpenLDAP ............... 277 

ConfiguringaCAentryinOpenLDAP ........................... 279 

AddingaDirectoryAdministratortoOpenLDAP ................... 282 

ConfiguringaccesscontrolsinOpenLDAP ........................ 285 

ConfiguringOpenLDAPforRoamingServer ...................... 292 

InstallingSecurityManager ................................... 294




Adding the Security Manager schema to OpenLDAP (SM_82_Directory_issue3.pdf, Page 277)

=====================================================================================


다음 명령은 OpenLDAP 설치되어있는 schema dn 리스트 출력

ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn


:

[root@redhat7 KCS-LDAP]# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn

dn: cn=schema,cn=config


dn: cn={0}core,cn=schema,cn=config


현재 core 설정되어 있음


다음 스키마들이 설정 되어야 한다.

core

collective

cosine

misc

nis

duaconf

inetorgperson




다음과 같이 찾는다.

[root@redhat7 ~]# find / -name collective.*

/etc/openldap/schema/collective.ldif

/etc/openldap/schema/collective.schema



다음과 같이 등록한다.

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/collective.ldif

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/misc.ldif

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/duaconf.ldif

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif



다음과 같이 collective 설치 되었다.

[root@redhat7 ~]# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn

dn: cn=schema,cn=config


dn: cn={0}core,cn=schema,cn=config


dn: cn={1}collective,cn=schema,cn=config


dn: cn={2}cosine,cn=schema,cn=config


dn: cn={3}misc,cn=schema,cn=config


dn: cn={4}nis,cn=schema,cn=config


dn: cn={5}duaconf,cn=schema,cn=config


dn: cn={6}inetorgperson,cn=schema,cn=config




SM_OpenLDAP_schema.ldif 파일 필요


ldapadd -Q -Y EXTERNAL -H ldapi:/// -f SM_OpenLDAP_schema.ldif



다음과 같이 SM_OpenLDAP_schema.ldif 등록한다.

[root@redhat7 KCS-LDAP]# ldapadd -Q -Y EXTERNAL -H ldapi:/// -f SM_OpenLDAP_schema.ldif

adding new entry "cn=SM_OpenLDAP,cn=schema,cn=config"




[root@redhat7 KCS-LDAP]# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn

dn: cn=schema,cn=config


dn: cn={0}core,cn=schema,cn=config


dn: cn={1}collective,cn=schema,cn=config


dn: cn={2}cosine,cn=schema,cn=config


dn: cn={3}misc,cn=schema,cn=config


dn: cn={4}nis,cn=schema,cn=config


dn: cn={5}duaconf,cn=schema,cn=config


dn: cn={6}inetorgperson,cn=schema,cn=config


dn: cn={7}SM_OpenLDAP,cn=schema,cn=config





/etc/openldap/schema 폴더에 다음 두개의 파일이 생성됨

-r--r--r--. 1 root root  3308 Jun  7  2017 openldap.ldif

-r--r--r--. 1 root root  1514 Jun  7  2017 openldap.schema




다음과 같이 암호를 설정하고 SSHA 값을 기록해 놓는다.

slappasswd

Dkkim4812!

{SSHA}d845XkZI7mVYv/U/O3yoGyULcLu1GlAd






============

manager.ldif

============

dn: olcDatabase={2}hdb,cn=config

changetype: modify

replace: olcSuffix

olcSuffix: dc=kcert,dc=co,dc=kr

-

replace: olcRootDN

olcRootDN: cn=Manager,dc=kcert,dc=co,dc=kr

-

add: olcRootPW

olcRootPW: {SSHA}d845XkZI7mVYv/U/O3yoGyULcLu1GlAd





# ldapmodify -Y EXTERNAL -H ldapi:/// -f ./manager.ldif

SASL/EXTERNAL authentication started

SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth

SASL SSF: 0

modifying entry "olcDatabase={2}hdb,cn=config"










============

monitor.ldif

============

dn: olcDatabase={1}monitor,cn=config

changetype: modify

replace: olcAccess

olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=kcert,dc=co,dc=kr" read by * none



#ldapmodify -Y EXTERNAL -H ldapi:/// -f ./monitor.ldif

SASL/EXTERNAL authentication started

SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth

SASL SSF: 0

modifying entry "olcDatabase={1}monitor,cn=config"







다음의 파일들 만들고....




=========

base.ldif

=========

dn: dc=kcert,dc=co,dc=kr

objectClass: top

objectClass: dcObject

objectClass: organization

dc: kcert

o: kcert


dn: cn=Manager,dc=kcert,dc=co,dc=kr

objectClass: organizationalRole

cn: Manager


dn: ou=People,dc=kcert,dc=co,dc=kr

objectClass: organizationalUnit

ou: People


dn: ou=Group,dc=kcert,dc=co,dc=kr

objectClass: organizationalUnit

ou: Group





============

caentry.ldif

============

dn: ou=Entrust,dc=kcert,dc=co,dc=kr

userPassword: {SSHA}d845XkZI7mVYv/U/O3yoGyULcLu1GlAd

objectclass: pkiCA

objectclass: organizationalUnit

ou: Entrust





=============

diradmin.ldif

=============

dn: cn=diradmin,ou=Entrust,dc=kcert,dc=co,dc=kr

cn: diradmin

sn: Administrator

objectclass: top

objectclass: person

objectclass: organizationalPerson

objectclass: inetOrgPerson

userpassword: {SSHA}d845XkZI7mVYv/U/O3yoGyULcLu1GlAd







* 다음 명령으로 base 구성 필요 (먼저 {SSHA}XXXXXXXXXX 적용 필요), bdb, hdb 확인 필요

ldapadd -x -W -D "cn=Manager,dc=kcert,dc=co,dc=kr" -f base.ldif

ldapadd -x -W -D "cn=Manager,dc=kcert,dc=co,dc=kr" -f caentry.ldif

ldapadd -x -W -D "cn=Manager,dc=kcert,dc=co,dc=kr" -f diradmin.ldif

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f access.ldif

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f allows.ldif





* 다음 명령으로 현재의 olcAccess 상태를 리스트 있다.

ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b "olcDatabase={2}hdb,cn=config" -t olcAccess




반응형
Comments