ติดตั้งและกำหนดค่า 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