일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Nodejs
- css
- FIDO2
- albumbook
- 앨범북
- OTP
- SSH
- apple
- WebAuthn
- OSX
- 2FA
- Xcode
- 안드로이드
- SwiftUI
- MYSQL
- SSL
- 애플
- 앱스토어
- appres
- Android
- MSYS2
- SWIFT
- openssl
- MFA
- 인증
- kmip
- 앱리소스
- fido
- otpkey
- git
- Today
- Total
인디노트
CentOS6, CentOS7 에 OpenLDAP 설치 본문
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
'개발 플랫폼 및 언어' 카테고리의 다른 글
keystore 만들기 (0) | 2018.03.28 |
---|---|
OpenLDAP을 활용한 기반시스템 중앙 인증관리 #1 (0) | 2018.03.27 |
How to deploy a Samba domain controller in under 10 minutes (0) | 2018.03.24 |
리눅스 호스트명 변경 (0) | 2018.03.15 |
CentOS 7 시간설정 및 Time Zone 변경 (0) | 2018.03.10 |