Open LDAP 설치 및 구성
LDAP로 알려진 Light Weight Directory Access Protocol디렉토리에서 알려진 기업 내 X.500 서비스 컨테이너에 액세스하는 데 사용되는 프로토콜입니다. Windows Server 관리에 익숙한 사용자는 LDAP가 본질적으로 Active Directory와 매우 유사하다고 생각할 수 있습니다. Windows 워크 스테이션을 OpenLDAP CentOS 엔터프라이즈에 연결하는 데 널리 사용되는 개념이기도합니다. 다른 스펙트럼에서는 CentOS Linux 워크 스테이션이 리소스를 공유하고 Windows 도메인의 기본 기능에 참여할 수 있습니다.
CentOS에 LDAP를 Directory Server Agent, Directory System Agent 또는 DSA (이 두문자어는 모두 하나이며 동일 함)로 배포하는 것은 NDS와 함께 Directory Tree 구조를 사용하는 이전 Novell Netware 설치와 유사합니다.
LDAP의 간략한 역사
LDAP는 기본적으로 엔터프라이즈 리소스로 X.500 디렉터리에 액세스하는 효율적인 방법으로 만들어졌습니다. X.500과 LDAP는 모두 동일한 특성을 공유하며 LDAP 클라이언트가 일부 도우미를 사용하여 X.500 디렉토리에 액세스 할 수있을 정도로 비슷합니다. LDAP에는 자체 디렉토리 서버도 있습니다.slapd. LDAP 와 DAP 의 주요 차이점 은 경량 버전이 TCP를 통해 작동하도록 설계 되었다는 것 입니다.
반면 DAP는 전체 OSI 모델을 사용합니다. 오늘날의 네트워크에서 인터넷, TCP / IP 및 이더넷의 출현으로 특정 레거시 컴퓨팅 모델 외부에서 DAP 및 기본 X.500 엔터프라이즈 디렉터리를 모두 사용하는 디렉터리 서비스 이식을 발견하는 경우는 거의 없습니다.
CentOS Linux 용 openldap과 함께 사용되는 주요 구성 요소는 다음과 같습니다.
openldap | LDAP 지원 라이브러리 |
---|---|
openldap 서버 | LDAP 서버 |
openldap 클라이언트 | LDAP 클라이언트 유틸리티 |
openldap-devel | OpenLDAP 용 개발 라이브러리 |
compay-openldap | OpenLDAP 공유 라이브러리 |
때리다 | OpenLDAP의 디렉토리 서버 데몬 |
slurpd | 엔터프라이즈 도메인에서 LDAP 복제에 사용 |
Note − 기업 이름을 지정할 때 다음을 사용하는 것이 가장 좋습니다. .localTLD. .net 또는 .com을 사용 하면 온라인 및 내부 도메인 인프라를 분리 할 때 문제가 발생할 수 있습니다. 회사 내부에서 외부 및 내부 작업 모두에 acme.com 을 사용하는 추가 작업을 상상해보십시오 . 따라서 acme.com 또는 acme.net 이라는 인터넷 리소스를 사용하는 것이 현명 할 수 있습니다 . 그런 다음 로컬 네트워킹 엔터프라이즈 자원은 acme.local 로 표시 됩니다. 이것은 DNS 레코드 구성을 수반하지만 단순성, 웅변 성 및 보안 측면에서 비용을 지불합니다.
CentOS에 Open LDAP 설치
YUM 에서 openldap, openldap-servers, openldap-clients 및 migrationstools를 설치합니다 .
[root@localhost]# yum -y install openldap openldap-servers openldap-clients
migration tools
Loaded plugins: fastestmirror, langpacks
updates
| 3.4 kB 00:00:00
updates/7/x86_64/primary_db
| 2.2 MB 00:00:05
Determining fastest mirrors
(1/2): extras/7/x86_64/primary_db
| 121 kB 00:00:01
(2/2): base/7/x86_64/primary_db
| 5.6 MB 00:00:16
Package openldap-2.4.40-13.el7.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package openldap-clients.x86_64 0:2.4.40-13.el7 will be installed
---> Package openldap-servers.x86_64 0:2.4.40-13.el7 will be installed
--> Finished Dependency Resolution
base/7/x86_64/group_gz
| 155 kB 00:00:00
Dependencies Resolved
===============================================================================
===============================================================================
Package Arch
Version Repository Size
===============================================================================
===============================================================================
Installing:
openldap-clients x86_64
2.4.40-13.el7 base 188 k
openldap-servers x86_64
2.4.40-13.el7 base 2.1 M
Transaction Summary
===============================================================================
===============================================================================
Install 2 Packages
Total download size: 2.3 M
Installed size: 5.3 M
Downloading packages:
Installed:
openldap-clients.x86_64 0:2.4.40-13.el7
openldap-servers.x86_64 0:2.4.40-13.el7
Complete!
[root@localhost]#
이제 slapd 서비스를 시작하고 활성화 해 보겠습니다.
[root@centos]# systemctl start slapd
[root@centos]# systemctl enable slapd
이 시점 에서 / etc / openldap 에 openldap 구조 가 있는지 확인합시다 .
root@localhost]# ls /etc/openldap/
certs check_password.conf ldap.conf schema slapd.d
[root@localhost]#
그런 다음 slapd 서비스가 실행 중인지 확인하십시오.
root@centos]# netstat -antup | grep slapd
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1641/slapd
tcp6 0 0 :::389 :::* LISTEN 1641/slapd
[root@centos]#
다음으로 Open LDAP 설치를 구성하겠습니다 .
시스템 ldap 사용자가 생성 되었는지 확인하십시오 .
[root@localhost]# id ldap
uid=55(ldap) gid=55(ldap) groups=55(ldap)
[root@localhost]#
LDAP 자격 증명을 생성하십시오.
[root@localhost]# slappasswd
New password:
Re-enter new password:
{SSHA}20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10
[root@localhost]#
slappasswd의 출력을 저장해야합니다.
Open LDAP 구성
Step 1 − 도메인에 대한 LDAP를 구성하고 관리자를 추가합니다.
먼저 openLDAP 환경을 설정하려고합니다. 다음은 ldapmodify 명령 과 함께 사용할 템플릿 입니다.
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=vmnet,dc=local
dn: olcDatabase = {2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=vmnet,dc=local
dn: olcDatabase = {2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: <output from slap
ldapmodify 명령을 사용하여 /etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif를 변경합니다.
[root@localhost]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /home/rdc/Documents/db.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"
modifying entry "olcDatabase = {2}hdb,cn=config"
modifying entry "olcDatabase = {2}hdb,cn=config"
[root@localhost cn=config]#
수정 된 LDAP 구성을 확인해 보겠습니다.
root@linux1 ~]# vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
[root@centos]# cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 a163f14c
dn: olcDatabase = {2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: 1bd9aa2a-8516-1036-934b-f7eac1189139
creatorsName: cn=config
createTimestamp: 20170212022422Z
olcSuffix: dc=vmnet,dc=local
olcRootDN: cn=ldapadm,dc=vmnet,dc=local
olcRootPW:: e1NTSEF1bUVyb1VzZTRjc2dkYVdGaDY0T0k =
entryCSN: 20170215204423.726622Z#000000#000#000000
modifiersName: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20170215204423Z
[root@centos]#
보시다시피 LDAP 엔터프라이즈 수정이 성공했습니다.
다음으로 OpenLDAP 용 자체 서명 SSL 인증서를 생성하려고합니다. 이렇게하면 엔터프라이즈 서버와 클라이언트 간의 통신이 보호됩니다.
Step 2 − OpenLDAP 용 자체 서명 인증서를 생성합니다.
우리는 사용 하려면 openssl을 자체 서명 된 SSL 인증서를 만들 수 있습니다. 다음 장으로 이동하십시오.Create LDAP SSL Certificate with opensslOpenLDAP와의 보안 통신에 대한 지침. 그런 다음 SSL 인증서가 구성되면 OpenLDAP 엔터프라이즈 구성을 완료합니다.
Step 3 − 인증서와 보안 통신을 사용하도록 OpenLDAP를 구성합니다.
다음 정보를 사용하여 vim 에서 certs.ldif 파일을 만듭니다.
dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/yourGeneratedCertFile.pem
dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/youGeneratedKeyFile.pem
그런 다음 다시 ldapmodify 명령을 사용하여 변경 사항을 OpenLDAP 구성에 병합합니다.
[root@centos rdc]# ldapmodify -Y EXTERNAL -H ldapi:/// -f certs.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
[root@centos]#
마지막으로 OpenLADP 구성을 테스트 해 보겠습니다.
[root@centos]# slaptest -u
config file testing succeeded
[root@centos]#
Step 4 − slapd 데이터베이스를 설정합니다.
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG &&
chown ldap:ldap /var/lib/ldap/*
OpenLDAP 스키마를 업데이트합니다.
cosine 및 nis LDAP 스키마를 추가합니다.
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
마지막으로 엔터프라이즈 스키마를 생성하고 현재 OpenLDAP 구성에 추가합니다.
다음은 vmnet이라는 도메인에 대한 것입니다. ldapadm 이라는 LDAP 관리자가있는 로컬 .
dn: dc=vmnet,dc=local
dc: vmnet
objectClass: top
objectClass: domain
dn: cn=ldapadm ,dc=vmnet,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager
dn: ou = People,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: People
dn: ou = Group,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: Group
마지막으로 이것을 현재 OpenLDAP 스키마로 가져옵니다.
[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f ./base.ldif
Enter LDAP Password:
adding new entry "dc=vmnet,dc=local"
adding new entry "cn=ldapadm ,dc=vmnet,dc=local"
adding new entry "ou=People,dc=vmnet,dc=local"
adding new entry "ou=Group,dc=vmnet,dc=local"
[root@centos]#
Step 5 − OpenLDAP Enterprise 사용자를 설정합니다.
vim 또는 선호하는 텍스트 편집기를 열고 다음 형식을 복사하십시오. 이것은 "vmnet.local"LDAP 도메인의 "entacct"라는 사용자에 대해 설정됩니다.
dn: uid=entacct,ou=People,dc=vmnet,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: entacct
uid: entacct
uidNumber: 9999
gidNumber: 100
homeDirectory: /home/enyacct
loginShell: /bin/bash
gecos: Enterprise User Account 001
userPassword: {crypt}x
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
이제 저장된 위의 파일을 OpenLdap 스키마로 가져옵니다.
[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f entuser.ldif
Enter LDAP Password:
adding new entry "uid=entacct,ou=People,dc=vmnet,dc=local"
[root@centos]#
사용자가 LDAP Enterprise에 액세스하기 전에 다음과 같이 암호를 할당해야합니다.
ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct
,ou=People,dc=vmnet,dc=local"
-s 사용자의 비밀번호를 지정합니다.
-x 업데이트 된 비밀번호가 적용되는 사용자 이름입니다.
-D LDAP 스키마에 대해 인증하기위한 * 고유 이름 "입니다.
마지막으로 Enterprise 계정에 로그인하기 전에 OpenLDAP 항목을 확인하겠습니다 .
[root@centos rdc]# ldapsearch -x cn=entacct -b dc=vmnet,dc=local
# extended LDIF
#
# LDAPv3
# base <dc=vmnet,dc=local> with scope subtree
# filter: cn=entacct
# requesting: ALL
#
# entacct, People, vmnet.local
dn: uid=entacct,ou=People,dc=vmnet,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: entacct
uid: entacct
uidNumber: 9999
gidNumber: 100
homeDirectory: /home/enyacct
loginShell: /bin/bash
gecos: Enterprise User Account 001
userPassword:: e2NyeXB0fXg=
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
/ etc / passwd 및 / etc / groups 와 같은 것을 OpenLDAP 인증으로 변환하려면 마이그레이션 도구를 사용해야합니다. 이는 migrationtools 패키지에 포함되어 있습니다 . 그런 다음 / usr / share / migrationtools에 설치 합니다 .
[root@centos openldap-servers]# ls -l /usr/share/migrationtools/
total 128
-rwxr-xr-x. 1 root root 2652 Jun 9 2014 migrate_aliases.pl
-rwxr-xr-x. 1 root root 2950 Jun 9 2014 migrate_all_netinfo_offline.sh
-rwxr-xr-x. 1 root root 2946 Jun 9 2014 migrate_all_netinfo_online.sh
-rwxr-xr-x. 1 root root 3011 Jun 9 2014 migrate_all_nis_offline.sh
-rwxr-xr-x. 1 root root 3006 Jun 9 2014 migrate_all_nis_online.sh
-rwxr-xr-x. 1 root root 3164 Jun 9 2014 migrate_all_nisplus_offline.sh
-rwxr-xr-x. 1 root root 3146 Jun 9 2014 migrate_all_nisplus_online.sh
-rwxr-xr-x. 1 root root 5267 Jun 9 2014 migrate_all_offline.sh
-rwxr-xr-x. 1 root root 7468 Jun 9 2014 migrate_all_online.sh
-rwxr-xr-x. 1 root root 3278 Jun 9 2014 migrate_automount.pl
-rwxr-xr-x. 1 root root 2608 Jun 9 2014 migrate_base.pl
Step 6 − 마지막으로, 요청을 처리 할 수 있도록 slapd 서비스에 대한 액세스를 허용해야합니다.
firewall-cmd --permanent --add-service=ldap
firewall-cmd --reload
LDAP 클라이언트 액세스 구성
LDAP 클라이언트 액세스를 구성하려면 클라이언트에 openldap, open-ldap 클라이언트 및 nss_ldap 패키지가 필요합니다.
클라이언트 시스템에 대한 LDAP 인증 구성은 조금 더 쉽습니다.
Step 1 − 종속 패키지 설치 −
# yum install -y openldap-clients nss-pam-ldapd
Step 2− authconfig로 LDAP 인증을 구성합니다 .
authconfig --enableldap --enableldapauth --ldapserver=10.25.0.1 --
ldapbasedn="dc=vmnet,dc=local" --enablemkhomedir --update
Step 3 − nslcd 서비스를 다시 시작합니다.
systemctl restart nslcd