ติดตั้งและกำหนดค่า Open LDAP

LDAP รู้จักกันในชื่อ Light Weight Directory Access Protocolเป็นโปรโตคอลที่ใช้สำหรับเข้าถึงคอนเทนเนอร์บริการ X.500 ภายในองค์กรที่รู้จักจากไดเร็กทอรี ผู้ที่คุ้นเคยกับการดูแลระบบเซิร์ฟเวอร์ Windows สามารถคิดว่า LDAP มีลักษณะคล้ายกับ Active Directory มาก มันเป็นแนวคิดที่ใช้กันอย่างแพร่หลายในการรวมเวิร์กสเตชัน Windows เข้ากับองค์กร OpenLDAP CentOS ในสเปกตรัมอื่น ๆ เวิร์กสเตชัน CentOS Linux สามารถแชร์ทรัพยากรและเข้าร่วมกับฟังก์ชันพื้นฐานในโดเมน Windows

การปรับใช้ LDAP บน CentOS เป็น Directory Server Agent, Directory System Agent หรือ DSA (คำย่อเหล่านี้เป็นคำเดียวกันทั้งหมด) คล้ายกับการติดตั้ง Novell Netware รุ่นเก่าโดยใช้โครงสร้าง Directory Tree กับ NDS

ประวัติโดยย่อของ LDAP

LDAP ถูกสร้างขึ้นโดยทั่วไปเพื่อเป็นวิธีที่มีประสิทธิภาพในการเข้าถึงไดเรกทอรี X.500 ด้วยทรัพยากรขององค์กร ทั้ง X.500 และ LDAP มีลักษณะเหมือนกันและคล้ายกันมากจนไคลเอนต์ LDAP สามารถเข้าถึงไดเร็กทอรี X.500 ด้วยตัวช่วยบางอย่าง ในขณะที่ LDAP ยังมีไดเร็กทอรีเซิร์ฟเวอร์ของตัวเองที่เรียกว่าslapd. ความแตกต่างหลักระหว่างLDAPและDAPคือรุ่นที่มีน้ำหนักเบาได้รับการออกแบบมาเพื่อทำงานผ่าน TCP

ในขณะที่DAPใช้ OSI Model แบบเต็ม ด้วยการถือกำเนิดของอินเทอร์เน็ต TCP / IP และความโดดเด่นของอีเทอร์เน็ตในเครือข่ายในปัจจุบันจึงเป็นเรื่องยากที่จะพบกับการปลูกถ่าย Directory Services โดยใช้ไดเร็กทอรีองค์กรทั้ง DAP และเนทีฟ X.500 นอกโมเดลคอมพิวเตอร์แบบเดิม

ส่วนประกอบหลักที่ใช้กับ openldap สำหรับ CentOS Linux ได้แก่ -

openldap ไลบรารีสนับสนุน LDAP
openldap เซิร์ฟเวอร์ เซิร์ฟเวอร์ LDAP
openldap ไคลเอนต์ การใช้งานไคลเอ็นต์ LDAP
openldap-devel ไลบรารีการพัฒนาสำหรับ OpenLDAP
compay-openldap ไลบรารีที่ใช้ร่วมกันของ OpenLDAP
ตบ ไดเร็กทอรีเซิร์ฟเวอร์ daemon ของ OpenLDAP
slurpd ใช้สำหรับการจำลองแบบ LDAP ข้ามโดเมนขององค์กร

Note - เมื่อตั้งชื่อองค์กรของคุณเป็นแนวทางปฏิบัติที่ดีที่สุดในการใช้ไฟล์ .localTLD. การใช้. netหรือ. comอาจทำให้เกิดปัญหาในการแยกโครงสร้างพื้นฐานโดเมนออนไลน์และภายใน ลองจินตนาการถึงงานพิเศษสำหรับ บริษัท ภายในโดยใช้acme.comสำหรับการดำเนินงานทั้งภายนอกและภายใน ดังนั้นจึงสามารถจะฉลาดที่จะมีทรัพยากรอินเทอร์เน็ตที่เรียกว่าacme.comหรือacme.net จากนั้นทรัพยากรขององค์กรเครือข่ายท้องถิ่นเป็นภาพที่acme.local สิ่งนี้จะนำไปสู่การกำหนดค่าระเบียน DNS แต่จะจ่ายด้วยความเรียบง่ายคมคายและความปลอดภัย

ติดตั้ง Open LDAP บน CentOS

ติดตั้ง OpenLDAP, OpenLDAP-เซิร์ฟเวอร์ OpenLDAP-ลูกค้าและ migrationstools จากYUM

[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

ณ จุดนี้ขอให้มั่นใจว่าเรามีของเราOpenLDAPโครงสร้างใน/ etc / OpenLDAP

root@localhost]# ls /etc/openldap/ 
certs  check_password.conf  ldap.conf  schema  slapd.d
[root@localhost]#

จากนั้นตรวจสอบให้แน่ใจว่าบริการตบของเรากำลังทำงานอยู่

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

ทำการเปลี่ยนแปลงกับ: /etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif ด้วยคำสั่ง ldapmodify

[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 ของเราประสบความสำเร็จ

ต่อไปเราต้องการสร้างใบรับรอง ssl ที่ลงนามด้วยตนเองสำหรับ OpenLDAP สิ่งนี้จะรักษาความปลอดภัยในการสื่อสารระหว่างเซิร์ฟเวอร์ขององค์กรและไคลเอนต์

Step 2 - สร้างใบรับรองที่ลงนามด้วยตนเองสำหรับ OpenLDAP

เราจะใช้opensslเพื่อสร้างใบรับรอง ssl ที่ลงนามด้วยตนเอง ไปที่บทถัดไปCreate LDAP SSL Certificate with opensslสำหรับคำแนะนำในการรักษาความปลอดภัยการสื่อสารด้วย OpenLDAP จากนั้นเมื่อกำหนดค่าใบรับรอง ssl เราจะดำเนินการกำหนดค่าองค์กร OpenLDAP ของเราให้เสร็จสิ้น

Step 3 - กำหนดค่า OpenLDAP เพื่อใช้การสื่อสารที่ปลอดภัยพร้อมใบรับรอง

สร้างไฟล์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 - ตั้งค่าฐานข้อมูลตบ

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG && 
chown ldap:ldap /var/lib/ldap/*

อัปเดตสคีมา OpenLDAP

เพิ่มสกีมาโคไซน์และ 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 ท้องถิ่นกับ LDAP ผู้ดูแลระบบที่เรียกว่าldapadm

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

เปิดกลุ่มหรือโปรแกรมแก้ไขข้อความที่คุณชื่นชอบและคัดลอกรูปแบบต่อไปนี้ นี่คือการตั้งค่าสำหรับผู้ใช้ชื่อ "entacct" บนโดเมน LDAP "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: {crypt}x 
shadowLastChange: 17058 
shadowMin: 0 
shadowMax: 99999 
shadowWarning: 7

ตอนนี้นำเข้าไฟล์ด้านบนตามที่บันทึกไว้ลงใน OpenLdap Schema

[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 - ในที่สุดเราต้องอนุญาตให้เข้าถึงบริการแบบตบเพื่อให้สามารถร้องขอบริการได้

firewall-cmd --permanent --add-service=ldap 
firewall-cmd --reload

กำหนดค่าการเข้าถึงไคลเอ็นต์ LDAP

การกำหนดค่าการเข้าถึงไคลเอ็นต์ LDAP ต้องการแพ็กเกจต่อไปนี้บนไคลเอ็นต์: openldap ไคลเอ็นต์ open-ldap และ nss_ldap

การกำหนดค่าการพิสูจน์ตัวตน LDAP สำหรับระบบไคลเอ็นต์นั้นง่ายกว่าเล็กน้อย

Step 1 - ติดตั้ง packeges ขึ้นอยู่กับ -

# yum install -y openldap-clients nss-pam-ldapd

Step 2- การกำหนดค่าการรับรองความถูกต้องกับ LDAP authconfig

authconfig --enableldap --enableldapauth --ldapserver=10.25.0.1 --
ldapbasedn="dc=vmnet,dc=local" --enablemkhomedir --update

Step 3 - เริ่มบริการ nslcd ใหม่

systemctl restart  nslcd