2025년 6월 23일 월요일

[Linux] Rocky9에 Openldap 설치 및 조직 설정

 

1. 관련 프로그램 설치 

기본 레파지토리에는 openldap-servers가 존재하지 않으므로 레피지토리에 추가

#  dnf config-manager --set-enabled plus

# dnf repolist 





# dnf update

# dnf -y install openldap openldap-servers openldap-clients

# systemctl enable slapd

# systemctl start slapd

# firewall-cmd --permanent --add-service={ldap,ldaps}

# firewall-cmd --reload

 

2. 관리자 패스워드 설정 

#  slappasswd

New password : *******

Re-enter new password : *******  

 {SSHA}***********************************  <--복사필요

# vi admin_pass.ldif 

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}***********************************  <--위화면 패스워드 붙여넣기

# ldapadd -Y EXTERNAL -H ldapi:/// -f admin_pass.ldif   <--루트 패스워드를 변경함.




 

3. Base DN을 설정 

# vi base_structure.ldif 

 # base_structure.ldif
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com

dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=example,dc=com

# ldapadd -Y EXTERNAL -H ldapi:/// -f base_structure.ldif <--적용 

 

4. 기본 스키마 로드 

# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif


 

5. 기본 조직 설정

# vi initial_org.ldif

# 조직의 루트 DIT(Directory Information Tree) 항목 정의
# dc=example,dc=com은 설치 시 설정한 기본 도메인에 맞춰 변경해야 합니다.
dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: My Company
description: My Company's main LDAP directory

# 사용자들을 위한 조직 구성 단위(OU) 정의
dn: ou=users,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: users
description: All user accounts in My Company

# 그룹들을 위한 조직 구성 단위(OU) 정의
dn: ou=groups,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: groups
description: All user groups in My Company

# 부서들을 위한 조직 구성 단위(OU) 정의
dn: ou=departments,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: departments
description: Departments within My Company

# IT 부서 OU 정의 (부서 OU 아래에 위치)
dn: ou=IT,ou=departments,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: IT
description: Information Technology Department

# HR 부서 OU 정의 (부서 OU 아래에 위치)
dn: ou=HR,ou=departments,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: HR
description: Human Resources Department

 

ldapadd -x -W -D "cn=admin,dc=example,dc=com" -f initial_org.ldif 


※ 패스워드는 이전에 설정한 관리자 패스워드를 입력 

 

 

6. Base Dn : cn=admin,dc=example,dc=com  , 관리자 패스워드 사용하여 관리 가능

 -  사용자 추가(HR 부서의 홍길동)

# slappassword  <--사용할 패스워드의 해시값으로 변환

New password: 홍길동
Re-enter new password: 홍길동
{SSHA}48cA5xSMTaz61+xo46Ek17DC07rapLtJ   <-- 해시값 복사

 # vi add_hong.ldif

 dn: uid=honggildong,ou=HR,ou=departments,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: 홍길동
sn: 홍
givenName: 길동
mail: hong.gildong@example.com  
uid: honggildong
userPassword: {SSHA}48cA5xSMTaz61+xo46Ek17DC07rapLtJ

 

ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f add_hong.ldif  



- Apache Directory Studio 프로그램에서 보면 정상적으로 추가되었음을 볼 수 있음.










댓글 없음:

댓글 쓰기