Configure LDAP on CentOS 7 – Server

ldap 설치

[root@10-19-10-245 /]# yum install openldap-servers openldap-clients nss-pam-ldapd

 

Berkeley DB 파일 복사

[root@10-19-10-245 /]# cp -p /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

 

ldap 서버 설정파일 복사

[root@10-19-10-245 /]# cp -p /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

 

설정 파일 폴더 초기화 및 권한 설정

[root@10-19-10-245 /]# rm -rf /etc/openldap/slapd.d/*
[root@10-19-10-245 /]# chmod -R 000 /etc/openldap/slapd.d
[root@10-19-10-245 /]# chmod -R u+rwX /etc/openldap/slapd.d
[root@10-19-10-245 /]# chown -R ldap: /etc/openldap/slapd.d
[root@10-19-10-245 /]# chown -R ldap: /var/lib/ldap

 

ldap 실행 및 시작 등록

[root@10-19-10-245 /]# systemctl start slapd
[root@10-19-10-245 /]# sytemctl enable slapd

 

ldap root 비밀번호 생성

[root@10-19-10-245 /]# slappasswd
New password: 
Re-enter new password: 
{SSHA}u1iYzUnYdtd4u32LN3FvpFEc34yCVoE5          # 이런형식으로 나오면 정상

 

ldap 설정 파일 편집
: vi /etc/openldap/slapd.conf (필수 편집 옵션만 나열합니다.)

rootpw {SSHA}u1iYzUnYdtd4u32LN3FvpFEc34yCVoE5    # slappasswd 로 생성한 비밀번호 입력
suffix "dc=umount,dc=local"
rootdn "cn=admin,dc=umount,dc=local"

 

설정파일 확인

[root@10-19-10-245 /]# slaptest -u -f /etc/openldap/slapd.conf
config file testing succeeded

 

작업 스크립트 작성
: vi /usr/local/bin/change_slapd.sh

#!/bin/sh
# /etc/openldap/slapd.conf
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chmod -R 000 /etc/openldap/slapd.d
chmod -R u+rwX /etc/openldap/slapd.d
chown -R ldap: /etc/openldap/slapd.d
systemctl restart slapd
exit 0

 

작업 스크립트 실행

[root@10-19-10-245 /]# chmod 755 /usr/local/bin/change_slapd.sh
[root@10-19-10-245 /]# /usr/local/bin/change_slapd.sh

 

기본 데이터 파일 생성
: vi /etc/openldap/base.ldif

dn: dc=umount,dc=local
objectClass: dcObject
objectClass: organization
dc: umount
o: OpenLDAP Corporation
dn: cn=admin,dc=umount,dc=local
objectclass: organizationalRole
cn: admin
dn: ou=Group,dc=umount,dc=local
objectClass: organizationalUnit
ou: Group
dn: ou=People,dc=umount,dc=local
objectClass: organizationalUnit
ou: People

 

기본 데이터 파일 데이터베이스에 등록

# password 영역은 slappasswd에서 생성한 암호를 넣되, 암호화된 암호가 아닌 평문 암호 입력

[root@10-19-10-245 /]# ldapadd -x -D "cn=admin,dc=umount,dc=local" -f /etc/openldap/base.ldif -w password

 

ldapadmin 다운로드 및 설정
다운로드 LINK

프로그램 실행 및 설정

ldap1

 

ldap2

 

ldap3

 

ldap4

 

ldap5

 

ldap6

 

Tip 1. 유저가 자신의 비밀번호 변경을 할 수 있도록 설정파일에 acl 추가
: vi /etc/openldap/slapd.conf

access to attrs=userPassword
        by self write
        by dn="cn=admin,dc=umount,dc=net" write
        by anonymous auth
        by * none
access to *
        by self write
        by * read
[root@10-19-10-245 /]# /usr/local/bin/change_slapd.sh

 

Tip 2. 비밀번호 정책 설정 추가
: vi /etc/openldap/slapd.conf

moduleload ppolicy.la

# 맨 아래라인에 추가
overlay ppolicy
ppolicy_default "cn=Password,dc=umount,dc=local"
ppolicy_use_lockout
[root@10-19-10-245 /]# /usr/local/bin/change_slapd.sh

 

ldaptip

 

=== 2020-03-26 수정

위 방법은 아주 구버전에서만 가능한 방법으로, 현재 위의 방법은 권장되지 않습니다. 

작년말에 LDAP을 새로 구성하면서 삽질을 상당히 많이 했습니다. 너무 내용이 복잡하고 많아서 다 올리기가 힘드네요…

You may also like...