快速部署ldap服務

                 快速部署ldap服務

                                     作者:尹正杰

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

?

?

一.LDAP概述

1.什么是目錄服務(1)目錄是一類為了瀏覽和搜索數據二十幾的特殊的數據庫,例如:最知名的的微軟公司的活動目錄(active directory)就是目錄數據庫的一種。目錄服務時按照梳妝形式存儲信息的,目錄包含基于屬性的描述性信息,并且支持高級的過濾功能。(2)一般來說,目錄不支持大多數事務性數據庫所支持的高吞吐兩盒復雜的更新操作。目錄進行更新操作,可以說是要么全部,要么都不的原子操作,目錄服務適合的業務應用在于提供大量的查詢和搜索操作。(3)為了保證目錄數據的可用性和卡可靠性,她們在確保提供快速的查詢和搜索操作的同事,還提供了主從服務器同步目錄數據信息的能力,這相當于傳統的Mysql數據庫的主從同步一樣,可以最大限度的確保基于目錄業務的持續可用性。(4)廣義的目錄服務概念,可以有多重不同的方式來提供目錄服務,不同的目錄所允許存儲的信息是不同的,在信息如何被引用,查詢,更新以及防止未經守群的訪問等問題上,不同的目錄所允許存儲的信息是不同的,在信息如何被引用,查詢,更新以及防止未經授權的訪問等問題上,不同的目錄的處理方式也有諸多的不同。一些目錄服務時為本地的,只提供受限的服務,(比如,單機上的finger服務)。另一些服務時大范圍的(global),提供廣闊得多的服務(比如面向整個因特網)。大范圍的服務通常是分布式的,這也就意味著數據是分布在多臺機器上的,這些計數器一起來提供目錄服務。典型的大范圍服務定義一個統一的名稱空間(namespace)來給出一個相同的數據試圖(data view),而不管你相對于數據所在的位置。DNS是一個典型的大范圍分布式目錄服務的例子。2.什么是ldap(1)LDAP是Lightweight Directory Access Protocol (輕量級目錄訪問協議)的縮寫。正如它的名字所表明的那樣,它是一個輕量級的目錄訪問協議,特質基于X.500的目錄訪問協議的簡化版本。LADP運行在TCP/IP或者其他的面向連接的傳輸服務至上。LADP完整的技術規范由RFC2251 “The Lightweight Directory Access Protocol(V3)”和其他幾個在RFC3377中定義的文檔組成。我們不需要研究的那么深,因為我們又不會對它進行二次開發,我們運維只要能了解到它的目錄結構,以及它的用法就OK了,因此我們可以用兩句話總結以上內容:(2)LADP是輕量目錄訪問協議(Lightweight Directory Access Protocal)的縮寫;(3)LADP標準實際上是在X.500標準基礎 上產生的一個簡化版本;3.什么是X.500(1)X.500由ITU-T和ISO定義,它實際上不是一個協議,而是有一個協議族組成,包括了從X.501到X.525等一系列非常完整的目錄服務協議。X。500主要具備以下特征:a>.分散維護運行X.500的每一個站點只負責人本地目錄部分,可以立即更新和維護操作;b>.搜索性能X.500具有強大的搜素功能,支持用戶建立的任意復雜查詢。c>.單一全局命名空間類似于DNS,X.500為用戶提供單一同性命名空間(Single Homogeneous Namespace)。與DNS相比,X。500目錄中定義了信息結構,運行本地擴展。d>.結構化信息結構X.500目錄中定義了信息結構,運行本地擴展。e>.基于標準的目錄服務由于X.500可以被用于建立一個基于標準的目錄,因此在某種意義上,請求應用目錄信息(電子郵件,資源自動分配器,特定目錄工具)的應用程序就能訪問重要且有簡直的信息。(2)從技術上來說,LADP是一個到X.500目錄服務的目錄訪問協議,X.500是一個OSI目錄協議。最初,LADP客戶單通過網關(gateway)訪問X.500目錄服務。在客戶和網關之間運行LADP和X.500目錄訪問協議(Directory Access Protocol,DAP),而X.500目錄訪問協議時位于網關和X.500之間的。DAP是一個重量級的協議,在整個OSI協議棧上進行操作,而且需要占用大量的計算資源。LADP被設計的在TCP/IP層上操作,以小得多的代價實現了大多數DAP的功能。(3)雖然LADP仍舊可以通過網關訪問X.500目錄服務器,但是現在通常都是在X.500服務器上直接實現LADP。(4)單獨的LADP守護程序sladp,可以被看做是一個輕量級的X.500目錄服務器。也就是說,他沒有實現X.500完整的DAP協議。作為一個輕量級的目錄服務器,sladp實現的僅僅是X.500模型的一個子集。我們可以理解是LADP是X.500的一個簡單的實現。4.LADP與X.500的相同點LADP是X.500標準中的目錄訪問協議DAP的一個子集,可用于建立X.500目錄。因此這兩個目錄技術標準有著許多的共同之處:a>.在平臺上,都實現了一個通用的平臺結構,提供了一個操作系統和應用程序需要的信息服務類型,可以被許多平臺和應用程序接收和實現;b>.在信息模型上,都是用了項,對象類,屬性等概念的模式來描述信息;c>.在命名空間上方面,都是用了目錄信息結構和層次命名模型;d>.在功能模型上,都使用了相似的操作命令來管理目錄信息;e>.在認證框架方面,都可以實現用戶名稱和密碼,或者基于安全加密方式的認真機制;f>.早靈活性上,他們的目錄規模都可大可小,達到全球目錄樹,小到只有一臺目錄服務器;g>.在分布性方面,目錄信息都可以分布在多個目錄服務器中,這些服務器可以由各個組織管理,既保證了目錄信息總體結構的一致性,又滿足了分級管理的需要。5.LADP與X.500的差別a>.LADP基于Internet協議,X.500基于OSI(開放式系統互聯)協議,建立在應用層上的X.500目錄訪問協議DAP,需要在OSI會話層和表示層上進行許多的建立連接和包處理的任務,需要特殊的網絡軟件實現對網絡的訪問;LADP則直接運行在更簡單和更通用的TCP/IP或其他可靠的傳輸層協議上,避免了在OSI會話和表示層的開銷,是鏈接的建立和包的處理更簡單,更快,對于互聯網和企業網應用更理性。b>.LADP協議更為簡單,LADP繼承了X.500最好的特性,同時去掉了它的復雜性,LADP通過使用查找操作實現列表方式和讀操作,另一方面省去了X.500中神貓的和很少使用的服務控制和安全特性,只保留常用的特性,簡化了LADP的實現。c>.LADP通過引用機制實現分布式訪問,X.500 DSA通過服務器之間的鏈操作實現分布式的訪問,這樣查詢的壓力九中與服務器端;而LADP通過客戶端API實現分布式操作(對于應用透明)平衡了負載;d>.LADP實現具有低費用,已配置和一管理的特點,經過性能測試,LADP比X.500?更少的響應時間;LADP提供了滿足應用程序對目錄服務所需求的特性。6.LADP中的常用名詞縮寫及含義(1)dc Domain Componet 域名的部分,其格式是講完整的域名分成幾個部分,比如域名為“caiq.org”,變成dc=caiq,dc=org(2)uid User Id 用戶ID,如“yinzhengjie”(3)ou Organization Unit 組織單位,類似于Linux文件系統中的子目錄,它是一個容器對象,組織單位可以包含其他各種對象(包括其他組織單元),如“中國檢驗檢疫科學研究院”(4)cn Common Name 公共名稱,如“尹正杰”(5)sn Surname 姓,如“尹”(6)dn Distinguished Name 唯一辨別名,類似于Linux文件系統中的絕對路徑,每個對象都有一個文藝的名稱,如“uid=yinzhengjie,ou=中國檢科院,dc=caiq,dc=org”(7)rdn Relative dn 相對辨別名,類似于文件系統中的相對路徑,它是與目錄樹結構無關的部分,如“uid=yinzhengjie”或“cn=尹正杰”(8)c Country 國家,如“CN”或“US”等(9)o Organization 組織名,如:“中華人民共和國質檢總局”7.LADP目錄服務的特點LDAP目錄服務具有下列特點:a>.LDAP是一個跨平臺的,標準的協議,近幾年來得到了業界廣泛的認可;b>.LADP的結構用樹形結構來表示,而不是用表格。因此不用SQL語句維護了;c>.LADP提供了靜態數據的快速查詢方式,但在寫數據方面并不擅長;d>.LADP服務可以使用基于“推或""的復制信息技術,用簡單的活基于安全證書的安全認證,復制部分或全部數據,既保證了數據的安全性,又提高了數據的訪問效率;e>.LDAP是一個安全的協議,LDAP v3支持SASL(Simple Authentication and Securityh Layer),SSL(Secure Socket Layer)和TLS(Transport Layer Security),使用認證來確保事物的安全,另外,LDAP提供了不同層次的訪問控制,以限制不同用戶的訪問權限;f>.LADP支持一類數據存儲,LADP存儲的數據可由是文本資料,二進制圖片等;g>.Client/Server模型:Server用于存儲樹,Client提供操作目錄信息數的工具,這些工具可以將數據庫的內容以文本格式(LDAP數據交換格式,LDIF)呈現在我們的面前;h>.LDAP是一種開放Internet標準,LADP協議時跨平臺的Internt協議,它是基于X.500標準的,與X.500不同,LADY支持TCP/IP(即可以分不知部署)8.LDAP是怎樣工作的?LDAP目錄服務器是基于客戶/服務器模式的。一個或者多個LDAP服務器包含著組成整個目錄信息樹(DIT)的數據。客戶連接到服務器并且并發一個請求(request)。然后服務器要么以一個回答(answer)予以回應,要么給出一個指針,客戶可以通過此指針獲取到所需的數據(通常,該指針是指向另一個LDAP服務器)。無論客戶連到哪個LDAP服務器,它看到的都是同一個目錄視圖(view)。這是LDAP這類全局目錄服務的一個重要特征。

?

二.LDAP目錄結構

LDAP目錄服務時通過目錄數據庫來存儲網絡信息來提供目錄服務的,為了方便用戶迅速查找定位信息,目錄數據庫是一目錄信息樹(Directory nformation Tree,縮寫為DIT)為存儲方式的樹形存儲結構,目錄信息樹及其相關概念構成了LDAP協議的信息模型。a>.在LADP中,目錄是按照樹形結構組織----目錄信息樹,它是一個主要進行讀操作的數據庫;b>.DIT由條目(Entry)組成,條目相當于關系數據庫中的表的記錄;條目是具有分辨名DN(Distinguished Name)的屬性-值對(Attribute-value,簡稱AV)的集合。在UNIX文件系統中,最頂層是根目錄(root),LDAP目錄通常也用ROOT做根,通常稱為BaseDN。因為歷史(X.500)的原因,LDAP目錄用OU(Organization Unit)從邏輯上把數據分開來。Ou也是一種條目,容器條目。Ou下即使整整的用戶條目。1.LDAP目錄結構的相關術語a>.什么是DNDN(Distinguished Name),即分辨名。在LDAP中,一個條目的分辨名叫做"DN",DN是該條目在整個樹中的唯一名稱標識,DN相當于關系數據庫表中的關鍵字(Primary Key);它是一個識別屬性,通常用于檢索。b>.DN的兩種設置基于cn(姓名) cn=尹正杰,ou=中國檢科院,dc=caiq,dc=org,dc=cn,最常見的cn是從/etc/group轉來的條目;基于uid(User ID)uid=yinzhengjie,ou=中國檢科院,dc=caiq,dc=org,dc=cn,最常見的uid是/etc/passwd轉來的條目;c>.Base DNLADP目錄樹的最頂部就是根,也就是Base DN。d>.LDIF格式LDIF格式是用于LDAP數據導入,導出的格式。LDIF是LDAP數據庫信息的一種文本格式。2.LADP目錄信息模型a>.什么樣的信息可以存儲在目錄當中?LDAP的信息模型是基于條目的(entry)。一個條目就是一些具有全局唯一的標識名(Distinguished Name,簡寫做DN)的屬性的集合。DN用于無二義性的紙袋一個唯一的條目。條目的每一個屬性都有一個類型(type),一個或者多個值(value)。類型往往是特定字符串的簡寫,比如用“cn”指代“common name”,或是"mail"指代電子郵件地址。值(value)的語法依賴于類型(type)。比如,類型為cn的屬性可能包含值"尹正杰"。類型為mail的屬性可能包含值“yinzhengjie@caiq.gov.com”。類型為jpegPhoto的屬性可能包含二進制格式的JPEG圖像。、b>.信息在目錄中是如何組織的?在LDAP中,條目是按樹狀的層次結構組織的。傳統上,這個機構旺旺是代理界限或組織界限的反應。代表國家的條目位與整個目錄樹的頂層。之下的條目則代表各個州以及國家性的組織。在下面的條目則代表著組織單位,個人,打印機,文件,或者你所能想到的其他的東西。 目錄是也可以按照因特網域名組織結構,因為它允許按照DNS對目錄服務進行定時,這種命名方式正變得越來越受歡迎。下圖是按照域名進行組織的一個LADP目錄樹,相比傳統的命名方式更加讓用戶易于接受。另外,LDAP允許你通過使用一種叫做objectClass的特殊屬性來控制哪些屬性是條目所必須的,哪些屬性是條目可選的。objectClass屬性的值是由條目所必須遵守的方案(schema)來定義的。c>.信息是如何被引用的?一個條目是通過它的標識名來引用的。而標識名(Relative DistinguishedName 或者RDN)是由標識名和它的父條目名連在一起構成的。d>.信息是如何被訪問的?LDAP定義了一個查詢和更新目錄的操作,支持的操作包括從目錄中添加和刪除條目,更改一游的條目,更改已有的的名字。然而,大多數情況下LDAP是用于搜索目錄中的信息的。通過指定搜索過濾器,LDAP可以在目錄的相關部分搜索想相符的條目。滿足過濾條件的每一個條目都能收到請求消息。e>.怎樣保護信息不受未經授權的訪問?一些目錄服務不提供保護,允許信息對任何人可見。LDAP提供了一套機制來對客戶進行身份確認,或者讓客戶證明他擁有連接到服務器的身份,這無疑為對服務器進行全方位的訪問控制鋪平了道理,從而確保了服務器上所包含信息的安全。LDAP也支持privacy和integrity的安全服務。

?

三.LDAP的配置模式

LDAP服的結果重要功能如下:a>.基本的目錄查詢服務;b>.目錄查詢代理服務;c>.異機復制的數據;d>.分布式的目錄服務1.本地基本的目錄查詢服務在這種配置模式下,你的slapd只為你本地域提供目錄服務。他不會以任何方式與別的目錄服務器交互。2.帶有指針(Referrals)的本地目錄服務即目錄查詢代理服務,類似DNS轉發服務器在這種配置模式下,你為你的本地域運行了一個LDAP服務器,并且將它配置成為當客戶的請求超出你的本地域的處理能力的時候能夠返回一個指針,該指針指向一個具備處理客戶請求能力的更高級的服務器地址。你可以自己運行這一服務,也可以使用已提供給你的一個。如果你想運行本地目錄服務并且參與全局的目錄,那么運行這種模式。例如:openldap作為微軟活動目錄的代理查詢服務。。3.同步復制的目錄服務slurpd守護成是用來將主slapd上的改變傳播到一個或多個從屬的slapd上。 這種配置模式可以在前面的兩種配置模式之一和起來使用,在前面的兩種情況中,單獨的slapd不能提供足夠的可用性和可靠性。4.分布式的目錄服務在這種配置模式下,本地的服務被分割成多個更小的服務,每一個都可能被復制,并且通過上級(superior)或者下級(subordinate)指針(referral)粘合起來。

?

四.LDAP服務的應用領域

LDAP目錄服務,適用那些需要從不同的地點讀取信息,但是不需要經常更新的業務信息最為有用。LDAP的應用主要涉及一下幾種類型:1>.信息安全類:數字證書管理,授權管理,單點登錄。2>.科學計算類:DCE(Distributed Computing Environment,分布式計算環境),UDDI(Universal Description,Discovery and Integration,統一描述,發現和繼承協議)。3>.網絡資源管理類:MAIL系統,DNS系統,網絡用戶管理,電話號碼簿。4>.電子政務資源管理類:內網組織信息服務,電子服務目錄體系,人物基礎庫,法人基礎庫。我們單位基本上是用來來創建每個員工的財務賬號,這個賬號可以讓員工進行財務報銷使用。

?

五.安裝LDAP

1>.安裝openldap

[root@node202.yinzhengjie.org.cn ~]# yum -y install openldap openldap-servers openldap-clients
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* epel: mirrors.tuna.tsinghua.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package openldap.x86_64 0:2.4.44-20.el7 will be updated
---> Package openldap.x86_64 0:2.4.44-21.el7_6 will be an update
---> Package openldap-clients.x86_64 0:2.4.44-21.el7_6 will be installed
---> Package openldap-servers.x86_64 0:2.4.44-21.el7_6 will be installed
--> Processing Dependency: libltdl.so.7()(64bit) for package: openldap-servers-2.4.44-21.el7_6.x86_64
--> Running transaction check
---> Package libtool-ltdl.x86_64 0:2.4.2-22.el7_3 will be installed
--> Finished Dependency ResolutionDependencies Resolved===========================================================================================================================================Package                               Arch                        Version                              Repository                    Size
===========================================================================================================================================
Installing:openldap-clients                      x86_64                      2.4.44-21.el7_6                      updates                      190 kopenldap-servers                      x86_64                      2.4.44-21.el7_6                      updates                      2.2 M
Updating:openldap                              x86_64                      2.4.44-21.el7_6                      updates                      356 k
Installing for dependencies:libtool-ltdl                          x86_64                      2.4.2-22.el7_3                       base                          49 kTransaction Summary
===========================================================================================================================================
Install  2 Packages (+1 Dependent package)
Upgrade  1 PackageTotal download size: 2.8 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
openldap-servers-2.4.44-21.el7 FAILED                                          
http://mirrors.cloud.aliyuncs.com/centos/7/updates/x86_64/Packages/openldap-servers-2.4.44-21.el7_6.x86_64.rpm: [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error"
Trying other mirror.
(1/4): openldap-clients-2.4.44-21.el7_6.x86_64.rpm                                                                  | 190 kB  00:00:00     
(2/4): libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm                                                                       |  49 kB  00:00:00     
(3/4): openldap-2.4.44-21.el7_6.x86_64.rpm                                                                          | 356 kB  00:00:00     
(4/4): openldap-servers-2.4.44-21.el7_6.x86_64.rpm                                                                  | 2.2 MB  00:00:01     
-------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                      1.6 MB/s | 2.8 MB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionUpdating   : openldap-2.4.44-21.el7_6.x86_64                                                                                         1/5 Installing : libtool-ltdl-2.4.2-22.el7_3.x86_64                                                                                      2/5 Installing : openldap-servers-2.4.44-21.el7_6.x86_64                                                                                 3/5 Installing : openldap-clients-2.4.44-21.el7_6.x86_64                                                                                 4/5 Cleanup    : openldap-2.4.44-20.el7.x86_64                                                                                           5/5 Verifying  : openldap-servers-2.4.44-21.el7_6.x86_64                                                                                 1/5 Verifying  : openldap-2.4.44-21.el7_6.x86_64                                                                                         2/5 Verifying  : libtool-ltdl-2.4.2-22.el7_3.x86_64                                                                                      3/5 Verifying  : openldap-clients-2.4.44-21.el7_6.x86_64                                                                                 4/5 Verifying  : openldap-2.4.44-20.el7.x86_64                                                                                           5/5 Installed:openldap-clients.x86_64 0:2.4.44-21.el7_6                            openldap-servers.x86_64 0:2.4.44-21.el7_6                           Dependency Installed:libtool-ltdl.x86_64 0:2.4.2-22.el7_3                                                                                                     Updated:openldap.x86_64 0:2.4.44-21.el7_6                                                                                                        Complete!
[root@node202.yinzhengjie.org.cn ~]# 
[root@node202.yinzhengjie.org.cn ~]# yum -y install openldap openldap-servers openldap-clients
[root@node202.yinzhengjie.org.cn ~]# id ldap      #安裝成功后會生成ldap用戶。
uid=55(ldap) gid=55(ldap) groups=55(ldap)
[root@node202.yinzhengjie.org.cn ~]# 

2>.拷貝數據庫配置文件

[root@node202.yinzhengjie.org.cn ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@node202.yinzhengjie.org.cn ~]# 
[root@node202.yinzhengjie.org.cn ~]# chown ldap:ldap /var/lib/ldap/DB_CONFIG
[root@node202.yinzhengjie.org.cn ~]# 
[root@node202.yinzhengjie.org.cn ~]# ll -d /var/lib/ldap/DB_CONFIG 
-rw-r--r-- 1 ldap ldap 845 Jun 18 01:59 /var/lib/ldap/DB_CONFIG
[root@node202.yinzhengjie.org.cn ~]# 
[root@node202.yinzhengjie.org.cn ~]# cat  /var/lib/ldap/DB_CONFIG 
# $OpenLDAP$
# Example DB_CONFIG file for use with slapd(8) BDB/HDB databases.
#
# See the Oracle Berkeley DB documentation
#   <http://www.oracle.com/technology/documentation/berkeley-db/db/ref/env/db_config.html>
# for detail description of DB_CONFIG syntax and semantics.
#
# Hints can also be found in the OpenLDAP Software FAQ
#       <http://www.openldap.org/faq/index.cgi?file=2>
# in particular:
#   <http://www.openldap.org/faq/index.cgi?file=1075>

# Note: most DB_CONFIG settings will take effect only upon rebuilding
# the DB environment.# one 0.25 GB cache
set_cachesize 0 268435456 1# Data Directory
#set_data_dir db# Transaction Log settings
set_lg_regionmax 262144
set_lg_bsize 2097152
#set_lg_dir logs# Note: special DB_CONFIG flags are no longer needed for "quick"
# slapadd(8) or slapindex(8) access (see their -q option). 
[root@node202.yinzhengjie.org.cn ~]# 
[root@node202.yinzhengjie.org.cn ~]# 
[root@node202.yinzhengjie.org.cn ~]# cat /var/lib/ldap/DB_CONFIG    ? ? #DB_CONIFG中主要是關于Berkeley DB的相關的一些配置

3>.啟動OpenLDAP Server

[root@node202.yinzhengjie.org.cn ~]# systemctl start slapd
[root@node202.yinzhengjie.org.cn ~]# 
[root@node202.yinzhengjie.org.cn ~]# systemctl enable slapd
Created symlink from /etc/systemd/system/multi-user.target.wants/slapd.service to /usr/lib/systemd/system/slapd.service.
[root@node202.yinzhengjie.org.cn ~]# 
[root@node202.yinzhengjie.org.cn ~]# systemctl status slapd
● slapd.service - OpenLDAP Server DaemonLoaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled)Active: active (running) since Tue 2019-06-18 02:01:32 EDT; 11s agoDocs: man:slapdman:slapd-configman:slapd-hdbman:slapd-mdbfile:///usr/share/doc/openldap-servers/guide.htmlMain PID: 19568 (slapd)CGroup: /system.slice/slapd.service└─19568 /usr/sbin/slapd -u ldap -h ldapi:/// ldap:///

Jun 18 02:01:31 node202.yinzhengjie.org.cn systemd[1]: Starting OpenLDAP Server Daemon...
Jun 18 02:01:31 node202.yinzhengjie.org.cn runuser[19553]: pam_limits(runuser:session): wrong limit value 'unlimited ' for limit t… 'hard'
Jun 18 02:01:31 node202.yinzhengjie.org.cn runuser[19553]: pam_unix(runuser:session): session opened for user ldap by (uid=0)
Jun 18 02:01:31 node202.yinzhengjie.org.cn runuser[19553]: pam_unix(runuser:session): session closed for user ldap
Jun 18 02:01:31 node202.yinzhengjie.org.cn slapd[19566]: @(#) $OpenLDAP: slapd 2.4.44 (Jan 29 2019 17:42:45) $mockbuild@x86-01.bsys.centos.org:/builddir/build/BUILD/openldap-2.../slapd
Jun 18 02:01:32 node202.yinzhengjie.org.cn slapd[19566]: tlsmc_get_pin: INFO: Please note the extracted key file will not be prote...sions.
Jun 18 02:01:32 node202.yinzhengjie.org.cn slapd[19568]: slapd starting
Jun 18 02:01:32 node202.yinzhengjie.org.cn systemd[1]: Started OpenLDAP Server Daemon.
Hint: Some lines were ellipsized, use -l to show in full.
[root@node202.yinzhengjie.org.cn ~]# 
[root@node202.yinzhengjie.org.cn ~]#
[root@node202.yinzhengjie.org.cn ~]# systemctl status slapd        #slapd即standard alone ldap daemon,該進程默認監聽389端口

4>.查看監聽端口

[root@node202.yinzhengjie.org.cn ~]# ss -ntl
State       Recv-Q Send-Q                        Local Address:Port                                       Peer Address:Port              
LISTEN      0      128                                       *:22                                                    *:*                  
LISTEN      0      100                               127.0.0.1:25                                                    *:*                  
LISTEN      0      128                                       *:389                                                   *:*                  
LISTEN      0      128                                      :::22                                                   :::*                  
LISTEN      0      128                                      :::389                                                  :::*                  
[root@node202.yinzhengjie.org.cn ~]# 
[root@node202.yinzhengjie.org.cn ~]# 

?

六.設置ldap管理員(root)密碼

1>.生成一個LDAP管理用戶root密碼

[root@node202.yinzhengjie.org.cn ~]# slappasswd       #使用改名了,配置你的密碼,他會根據計算,給你算出一個字符串。
New password:         #我這里輸入的密碼為"yinzhengjie"
Re-enter new password: 
{SSHA}demsoYhw/y4Rz9Pgbpv6KBBzuVQ1t53J            #這個字符串就是根據你輸入的密碼得到的,一會我們會用到他。
[root@node202.yinzhengjie.org.cn ~]# 

2>.自定義LDAP配置屬性

[root@node202.yinzhengjie.org.cn ~]# cat passwd.ldif    #這里的文件名稱隨意起,但文件后綴最好以 ldif 結尾。
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW:{SSHA}demsoYhw/y4Rz9Pgbpv6KBBzuVQ1t53J
[root@node202.yinzhengjie.org.cn ~]# 以上配置文件關鍵參數說明:ldif即LDAP Data Interchange Format,是LDAP中數據交換的一種文件格式。文件內容采用的是key-value形式,注意value后面不能有空格。上面內容中dn即distingush nameolc即Online Configuration,表示寫入LDAP后不需要重啟即可生效changetype: modify表示修改一個entry,changetype的值可以是add,delete, modify等。add: olcRootPW表示對這個entry新增了一個olcRootPW的屬性olcRootPW:{SSHA}demsoYhw/y4Rz9Pgbpv6KBBzuVQ1t53J指定了屬性值

3>.初始化LDAP配置

[root@node202.yinzhengjie.org.cn ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f passwd.ldif     #使用ldapadd命令講我們上一步自定義的文件屬性寫入LADP中
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"[root@node202.yinzhengjie.org.cn ~]# 
[root@node202.yinzhengjie.org.cn ~]# 

4>.導入schema

[root@node202.yinzhengjie.org.cn ~]# ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=collective,cn=schema,cn=config"SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=corba,cn=schema,cn=config"SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=core,cn=schema,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)additional info: olcAttributeTypes: Duplicate attributeType: "2.5.4.2"SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=duaconf,cn=schema,cn=config"SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=dyngroup,cn=schema,cn=config"SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=java,cn=schema,cn=config"SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=misc,cn=schema,cn=config"SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=nis,cn=schema,cn=config"SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=openldap,cn=schema,cn=config"SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=pmi,cn=schema,cn=config"SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=ppolicy,cn=schema,cn=config"[root@node202.yinzhengjie.org.cn ~]# 
[root@node202.yinzhengjie.org.cn ~]# ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done      #schema包含為了支持特殊場景相關的屬性,可根據選擇導入,這里先全部導入

?

七.設定默認域

1>.先使用slappasswd生成一個密碼

[root@node202.yinzhengjie.org.cn ~]# slappasswd
New password:       #我這里輸入的密碼為"ADMIN"
Re-enter new password: 
{SSHA}76TjdXHIDRFDRzfyi0t/tsYLmkyY3TPD
[root@node202.yinzhengjie.org.cn ~]# 

2>.自定義LDAP配置屬性

[root@node202.yinzhengjie.org.cn ~]# cat domain.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=yinzhengjie,dc=org,dc=cn" read by * nonedn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=yinzhengjie,dc=org,dc=cndn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=yinzhengjie,dc=org,dc=cndn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW:{SSHA}76TjdXHIDRFDRzfyi0t/tsYLmkyY3TPD  #這里需要用上面生成的密碼來替換dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange bydn="cn=Manager,dc=yinzhengjie,dc=org,dc=cn" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=yinzhengjie,dc=org,dc=cn" write by * read
[root@node202.yinzhengjie.org.cn ~]# olcAccess即access,該key用于指定目錄的ACL即誰有什么權限可以存取什么olcRootDN設定管理員root用戶的distingush name注意替換上面文件內容中cn為具體的域信息olcRootPW用上面新生成的密碼替換

3>.使用咱們上一步自定義的ldif配置文件,寫入ldap服務器

[root@node202.yinzhengjie.org.cn ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f domain.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"modifying entry "olcDatabase={2}hdb,cn=config"modifying entry "olcDatabase={2}hdb,cn=config"modifying entry "olcDatabase={2}hdb,cn=config"modifying entry "olcDatabase={2}hdb,cn=config"[root@node202.yinzhengjie.org.cn ~]# 

?

八.添加基本目錄

1>.自定義LDAP配置屬性

[root@node202.yinzhengjie.org.cn ~]# cat basedomain.ldif
dn: dc=yinzhengjie,dc=org,dc=cn
objectClass: top
objectClass: dcObject
objectclass: organization
o: yinzhengjie org cn
dc: yinzhengjiedn: cn=Manager,dc=yinzhengjie,dc=org,dc=cn
objectClass: organizationalRole
cn: Manager
description: Directory Managerdn: ou=People,dc=yinzhengjie,dc=org,dc=cn
objectClass: organizationalUnit
ou: Peopledn: ou=Group,dc=yinzhengjie,dc=org,dc=cn
objectClass: organizationalUnit
ou: Group
[root@node202.yinzhengjie.org.cn ~]# 

2>.使用咱們上一步自定義的ldif配置文件,寫入ldap服務器

[root@node202.yinzhengjie.org.cn ~]# ldapadd -x -D cn=Manager,dc=yinzhengjie,dc=org,dc=cn -W -f basedomain.ldif
Enter LDAP Password:     #密碼為"ADMIN"
adding new entry "dc=yinzhengjie,dc=org,dc=cn"adding new entry "cn=Manager,dc=yinzhengjie,dc=org,dc=cn"adding new entry "ou=People,dc=yinzhengjie,dc=org,dc=cn"adding new entry "ou=Group,dc=yinzhengjie,dc=org,dc=cn"[root@node202.yinzhengjie.org.cn ~]# 

3>.測試是否成功

[root@node202.yinzhengjie.org.cn ~]# ldapsearch -LLL -W -x -D "cn=Manager,dc=yinzhengjie,dc=org,dc=cn" -H ldap://localhost -b "dc=yinzhengjie,dc=org,dc=cn"
Enter LDAP Password:   #密碼為"ADMIN"
dn: dc=yinzhengjie,dc=org,dc=cn
objectClass: top
objectClass: dcObject
objectClass: organization
o: yinzhengjie org cn
dc: yinzhengjiedn: cn=Manager,dc=yinzhengjie,dc=org,dc=cn
objectClass: organizationalRole
cn: Manager
description: Directory Managerdn: ou=People,dc=yinzhengjie,dc=org,dc=cn
objectClass: organizationalUnit
ou: Peopledn: ou=Group,dc=yinzhengjie,dc=org,dc=cn
objectClass: organizationalUnit
ou: Group[root@node202.yinzhengjie.org.cn ~]# 

?

九.LDAP基本使用

  可以使用ldapadmin作為LDAP的圖形管理工具,下載地址:http://www.ldapadmin.org/download/ldapadmin.html

?

?

  參考鏈接:https://blog.frognew.com/2017/05/openldap-install-notes.html#ldapadmin。

轉載于:https://www.cnblogs.com/yinzhengjie/p/11020700.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/448610.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/448610.shtml
英文地址,請注明出處:http://en.pswp.cn/news/448610.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

expected at least 1 bean which qualifies as autowire candidate. Dependency a...

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 啟動 sringboot 項目報錯&#xff1a; expected at least 1 bean which qualifies as autowire candidate for this dependency. 原因…

李洋瘋狂C語言之break和continue的區別

1、break (1) 只能在循環體內和switch語句體內使用break語句。 (2) 當break出現在循環體中的switch語句體內時&#xff0c;其作用只是跳出該switch語句體。 (3) 當break出現在循環體中&#xff0c;但并不在switch語句體內時&#xff0c;則在執行break后&#xff0c;跳出本層…

Install OpenCL on Debian, Ubuntu and Mint orderly

Libraries – can’t have enough If you read different types of manuals how to compile OpenCL software on Linux, then you can get dizzy of all the LD-parameters. Also when installing the SDKs from AMD, Intel and NVIDIA, you get different locations for libra…

linux7 配置mysql5.7字符集編碼

linux 安裝后 mysql5.7 字符集默認是拉丁&#xff0c;不能存儲中文&#xff0c;修改步驟如下&#xff1a; 在 vim /etc/mysql/my.cnf 修改配置文件 在[mysqld] 下添加如下配置 character-set-serverutf8 init_connectSET NAMES utf8 重啟mysql服務 systemctl restart mysqld.…

解決:java.io.IOException: invalid constant type: 15

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 啟動 dubbo 服務報錯&#xff1a; java.io.IOException: invalid constant type: 15 我的情況是項目本身 是用的1.7 。而我自己用的…

liunx常用命令筆記

安裝軟件教程 linux安裝java&#xff1a;https://www.cnblogs.com/lamp01/p/8932740.html linux安裝mysql&#xff1a;https://www.cnblogs.com/daemon-/p/9009360.html linux安裝redis&#xff1a;https://blog.csdn.net/qq_30764991/article/details/81564652 linux安裝nginx…

李洋瘋狂C語言之編程實現統計某年某月份的天數

今天的題目&#xff1a;編程實現統計某年某月的天數 例如&#xff1a; 輸入&#xff1a;2017.7 輸出&#xff1a;31天 先附上我自己想的方法&#xff0c;由于幾個功能放一起太繁瑣&#xff0c;于是我想把他們分為三個函數&#xff0c;分別來實現這個功能&#xff1a; #incl…

MQ 之 RocketMQ

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 RocketMQ 是出自 A 公司的開源產品&#xff0c;用 Java 語言實現&#xff0c;在設計時參考了 Kafka&#xff0c;并做出了自己的一些改進…

好久沒敲代碼了(強行補上今天的博客。。。)

流水賬日記&#xff08;哈哈&#xff09; 今天沒課&#xff0c;早上好好的睡了個懶覺&#xff08;雖然還是很困- -&#xff09;&#xff1b; 哥幾個把昨天買的排骨洗了做了個排骨湯&#xff0c;雖然不如家里做的好吃&#xff0c;但對此時的我們來說已經是美味了&#xff0c;晚…

Ubuntu下使用AMD APP編寫OpenCL程序

對于Ubuntu或其近親&#xff08;Lubuntu、Kubuntu、Mint等&#xff09;編寫OpenCL程序也不會太難。由于本例用的是AMD APP SDK&#xff0c;因此需要AMD的GPU以及相關驅動。首先&#xff0c;去AMD官網下載GPU驅動——AMD Catalyst。如果你用的是APU并且還有一塊獨立顯卡的話&…

jdk的安裝與配置

Linux一、安裝JDK 從sun網站上直接下載JDK&#xff1a;http://java.sun.com/j2se/1.4.2/download.html提供了兩個下載j2re-1_4_2_10-linux-i586.bin 13.75 MB, j2re-1_4_2_10-linux-i586-rpm.bin 13.27 MB&#xff1a;1、RPM in self-extracting file (j2re-1_4_2_10-linux…

李洋瘋狂C語言之n個人報數,報到3的退出,最后留在場上的是原來的第幾位(約瑟夫環)

今天老師布置了個題目&#xff0c;約瑟夫環&#xff0c;俗稱猴子選大王。n個人報數&#xff0c;報到3的退出&#xff0c;最后留在場上的時原來的第幾位 #include <stdio.h>int main() {int i, n, q, p 0; //計數 i ,人數 n ,報數 p ,場上人數 qprintf ("input…

搭建Vue腳手架(vue-cli)并創建一個項目

1、 安裝nodejs環境 官網下載&#xff1a;https://nodejs.org/en/download/ 一直默認就行&#xff0c;路徑可以改變但要記得到 安裝完成后cmd&#xff0c;輸入node -v ,npm -v 如果能看到node和npm的版本號了&#xff0c;說明已經安裝成功 2、安裝vue-cli 有npm和cnpm兩種方式…

NPM 使用介紹

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 NPM是隨同NodeJS一起安裝的包管理工具&#xff0c;能解決NodeJS代碼部署上的很多問題&#xff0c;常見的使用場景有以下幾種&#xff1a…

人生致命的八個經典問題

問題一&#xff1a;如果你家附近有一家餐廳&#xff0c;東西又貴又難吃&#xff0c;桌上還爬著蟑螂&#xff0c;你會因為它很近很方便&#xff0c;就一而再、再而三地光臨嗎&#xff1f; 回答&#xff1a;你一定會說&#xff0c;這是什么爛問題&#xff0c;誰那么笨&#xff0c…

RabbitMQ學習總結(5)——發布和訂閱實例詳解

2019獨角獸企業重金招聘Python工程師標準>>> 一、Publish/Subscribe&#xff08;發布/訂閱&#xff09;&#xff08;using the Java Client&#xff09; 在前面的教程中,我們創建了一個work Queue&#xff08;工作隊列&#xff09;。工作隊列背后的假設是每個任務是…

iOS有哪些數據類型/基本數據類型?

簡述 本文主要探究使用OC作為iOS開發語言時&#xff0c;我們能使用哪些數據類型。 一切類型始于C。 C語言的類型 基本數據類型&#xff1a; 基本數據類型&#xff08;fundamental data types&#xff09;也叫原始數據類型&#xff08;primitive data types&#xff09; 整型、字…

李洋瘋狂C語言之將”you are come from shanghai ”倒置為”shanghai from come are you”,將句子中的單詞位置倒置,而不改變單詞內部結構

題目: 編寫一個C函數,將”you are come from shanghai ”倒置為”shanghai from come are you”,及將句子中的單詞位置倒置,而不改變單詞內部結構 #include <stdio.h> #include <string.h> void change(char *p1, char *p2); //函數聲明 int main() {char str[] …

馬桶怎么清洗才干凈無異味?

方法/步驟 在馬桶水箱中一定要放上潔廁寶&#xff1a; 潔廁寶里面含有多種去除馬桶中雜質以及異味的功能&#xff0c;另外它還帶有香香的味道&#xff0c;我們一按沖馬桶的按鈕&#xff0c;放出來的總是藍色的水&#xff0c;十分的美觀和好看&#xff0c;但是這并不是花瓶般的作…

白話解說:阻塞和非阻塞,同步和異步

阻塞和非阻塞&#xff0c;同步和異步是node.js里經常遇到的詞匯&#xff0c;舉例說明&#xff1a; 我要看足球比賽&#xff0c;但是媽媽叫我燒水&#xff0c;電視機在客廳&#xff0c;燒水要在廚房。家里有2個水壺&#xff0c;一個是普通的水壺&#xff0c;另一個是水開了會叫的…