Cài đặt và cấu hình mở LDAP

LDAP được gọi là Light Weight Directory Access Protocollà một giao thức được sử dụng để truy cập các vùng chứa dịch vụ X.500 trong một doanh nghiệp được biết đến từ một thư mục. Những người đã quen thuộc với Quản trị Windows Server có thể nghĩ rằng LDAP có bản chất rất giống với Active Directory. Nó thậm chí còn là một khái niệm được sử dụng rộng rãi để kết hợp các máy trạm Windows thành một doanh nghiệp OpenLDAP CentOS. Trên phạm vi khác, máy trạm CentOS Linux có thể chia sẻ tài nguyên và tham gia với chức năng cơ bản trong Miền Windows.

Triển khai LDAP trên CentOS dưới dạng Tác nhân máy chủ thư mục, Tác nhân hệ thống thư mục hoặc DSA (các từ viết tắt này đều là một và giống nhau) tương tự như cài đặt Novell Netware cũ hơn bằng cách sử dụng cấu trúc Cây thư mục với NDS.

Lịch sử tóm tắt của LDAP

LDAP về cơ bản được tạo ra như một cách hiệu quả để truy cập các thư mục X.500 với tài nguyên doanh nghiệp. Cả X.500 và LDAP đều có chung đặc điểm và giống nhau đến mức các máy khách LDAP có thể truy cập thư mục X.500 với một số trình trợ giúp. Mặc dù LDAP cũng có máy chủ thư mục riêng được gọi làslapd. Sự khác biệt chính giữa LDAPDAP là, phiên bản nhẹ được thiết kế để hoạt động trên TCP.

Trong khi DAP sử dụng Mô hình OSI đầy đủ. Với sự ra đời của Internet, TCP / IP và Ethernet nổi bật trong các mạng ngày nay, hiếm khi bắt gặp việc cấy ghép Dịch vụ Thư mục bằng cách sử dụng cả thư mục doanh nghiệp DAP và X.500 gốc bên ngoài các mô hình điện toán kế thừa cụ thể.

Các thành phần chính được sử dụng với openldap cho CentOS Linux là:

openldap Thư viện hỗ trợ LDAP
openldap-server Máy chủ LDAP
openldap-client Ứng dụng khách LDAP
openldap-devel Thư viện phát triển cho OpenLDAP
compay-openldap Thư viện được chia sẻ OpenLDAP
tát Daemon máy chủ thư mục của OpenLDAP
slurpd Được sử dụng để sao chép LDAP trên một miền doanh nghiệp

Note - Khi đặt tên cho doanh nghiệp của bạn, cách tốt nhất là sử dụng .localTLD. Việc sử dụng .net hoặc .com có thể gây ra khó khăn khi tách biệt cơ sở hạ tầng miền trực tuyến và nội bộ. Hãy tưởng tượng công việc bổ sung cho một công ty trong nội bộ bằng cách sử dụng acme.com cho cả hoạt động bên ngoài và nội bộ. Do đó, có thể là khôn ngoan khi có các tài nguyên Internet được gọi là acme.com hoặc acme.net . Sau đó, tài nguyên doanh nghiệp mạng cục bộ được mô tả dưới dạng acme.local . Điều này sẽ đòi hỏi phải định cấu hình các bản ghi DNS, nhưng sẽ phải trả giá bằng sự đơn giản, hùng biện và bảo mật.

Cài đặt Open LDAP trên CentOS

Cài đặt openldap, openldap-server, openldap-client và các công cụ di chuyển từ 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]#

Bây giờ, hãy bắt đầu và kích hoạt dịch vụ tát -

[root@centos]# systemctl start slapd 
[root@centos]# systemctl enable  slapd

Tại thời điểm này, hãy đảm bảo rằng chúng ta có cấu trúc openldap của chúng ta trong / etc / openldap .

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

Sau đó, hãy đảm bảo rằng dịch vụ của chúng tôi đang chạy.

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]#

Tiếp theo, hãy cấu hình cài đặt Open LDAP của chúng tôi .

Đảm bảo rằng người dùng ldap hệ thống của chúng tôi đã được tạo.

[root@localhost]# id ldap 
uid=55(ldap) gid=55(ldap) groups=55(ldap)
[root@localhost]#

Tạo thông tin đăng nhập LDAP của chúng tôi.

[root@localhost]# slappasswd  
New password:  
Re-enter new password:  
{SSHA}20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10

[root@localhost]#

Chúng ta cần lưu đầu ra từ slappasswd.

Định cấu hình LDAP mở

Step 1 - Cấu hình LDAP cho miền và thêm người dùng quản trị.

Đầu tiên, chúng tôi muốn thiết lập môi trường openLDAP của mình. Sau đây là một mẫu để sử dụng với lệnh 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

Thực hiện thay đổi đối với: /etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif bằng lệnh 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]#

Hãy kiểm tra cấu hình LDAP đã sửa đổi.

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]#

Như bạn có thể thấy, các sửa đổi LDAP dành cho doanh nghiệp của chúng tôi đã thành công.

Tiếp theo, chúng tôi muốn tạo chứng chỉ ssl tự ký cho OpenLDAP. Điều này sẽ bảo mật thông tin liên lạc giữa máy chủ doanh nghiệp và máy khách.

Step 2 - Tạo chứng chỉ tự ký cho OpenLDAP.

Chúng tôi sẽ sử dụng openssl để tạo chứng chỉ ssl tự ký. Chuyển sang chương tiếp theo,Create LDAP SSL Certificate with opensslđể được hướng dẫn bảo mật thông tin liên lạc với OpenLDAP. Sau đó, khi chứng chỉ ssl được định cấu hình, chúng ta sẽ hoàn thành cấu hình doanh nghiệp OpenLDAP của mình.

Step 3 - Cấu hình OpenLDAP để sử dụng giao tiếp an toàn với chứng chỉ.

Tạo tệp certs.ldif trong vim với thông tin sau:

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

Tiếp theo, một lần nữa, sử dụng lệnh ldapmodify để hợp nhất các thay đổi vào cấu hình 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]#

Cuối cùng, hãy kiểm tra cấu hình OpenLADP của chúng tôi.

[root@centos]# slaptest -u 
config file testing succeeded 
[root@centos]#

Step 4 - Thiết lập cơ sở dữ liệu tát nước.

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

Cập nhật Lược đồ OpenLDAP.

Thêm lược đồ LDAP cosine và nis.

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

Cuối cùng, tạo lược đồ doanh nghiệp và thêm nó vào cấu hình OpenLDAP hiện tại.

Sau đây là tên miền vmnet. cục bộ với Quản trị viên LDAP được gọi là 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

Cuối cùng, nhập nó vào lược đồ OpenLDAP hiện tại.

[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 - Thiết lập Người dùng Doanh nghiệp OpenLDAP.

Mở vim hoặc trình soạn thảo văn bản yêu thích của bạn và sao chép định dạng sau. Điều này được thiết lập cho người dùng có tên "entacct" trên miền 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

Bây giờ nhập các tệp ở trên, như đã lưu, vào Lược đồ 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]#

Trước khi người dùng có thể truy cập LDAP Enterprise, chúng tôi cần chỉ định mật khẩu như sau:

ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct 
,ou=People,dc=vmnet,dc=local"

-s chỉ định mật khẩu cho người dùng

-x là tên người dùng mà mật khẩu cập nhật được áp dụng

-D là * tên phân biệt "để xác thực dựa trên lược đồ LDAP.

Cuối cùng, trước khi đăng nhập vào tài khoản Enterprise, hãy kiểm tra mục nhập OpenLDAP của chúng tôi .

[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

Việc chuyển đổi những thứ như / etc / passwd/ etc / groups sang xác thực OpenLDAP yêu cầu sử dụng các công cụ di chuyển. Chúng được bao gồm trong gói công cụ di chuyển . Sau đó, được cài đặt vào / 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 - Cuối cùng, chúng tôi cần cho phép truy cập vào dịch vụ tát để nó có thể yêu cầu dịch vụ.

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

Định cấu hình quyền truy cập ứng dụng khách LDAP

Việc định cấu hình quyền truy cập máy khách LDAP yêu cầu các gói sau trên máy khách: openldap, ứng dụng open-ldap và nss_ldap.

Định cấu hình xác thực LDAP cho hệ thống khách dễ dàng hơn một chút.

Step 1 - Cài đặt nhịp độ phụ thuộc -

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

Step 2- Cấu hình xác thực LDAP với authconfig .

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

Step 3 - Khởi động lại dịch vụ nslcd.

systemctl restart  nslcd