快速部署ldap服務

                 快速部署ldap服務html

                                     做者:尹正傑java

版權聲明:原創做品,謝絕轉載!不然將追究法律責任。node

 

 

一.LDAP概述sql

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>.什麼是DN
      DN(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 DN
      LADP目錄樹的最頂部就是根,也就是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的配置模式centos

LDAP服的結果重要功能以下:
  a>.基本的目錄查詢服務;
  b>.目錄查詢代理服務;
  c>.異機複製的數據;
  d>.分佈式的目錄服務

1.本地基本的目錄查詢服務
  在這種配置模式下,你的slapd只爲你本地域提供目錄服務。他不會以任何方式與別的目錄服務器交互。

2.帶有指針(Referrals)的本地目錄服務
  即目錄查詢代理服務,相似DNS轉發服務器
  在這種配置模式下,你爲你的本地域運行了一個LDAP服務器,而且將它配置成爲當客戶的請求超出你的本地域的處理能力的時候可以返回一個指針,該指針指向一個具有處理客戶請求能力的更高級的服務器地址。你能夠本身運行這一服務,也可使用已提供給你的一個。
  若是你想運行本地目錄服務而且參與全局的目錄,那麼運行這種模式。例如:openldap做爲微軟活動目錄的代理查詢服務。。

3.同步複製的目錄服務
  slurpd守護成是用來將主slapd上的改變傳播到一個或多個從屬的slapd上。 
  這種配置模式能夠在前面的兩種配置模式之一和起來使用,在前面的兩種狀況中,單獨的slapd不能提供足夠的可用性和可靠性。

4.分佈式的目錄服務
  在這種配置模式下,本地的服務被分割成多個更小的服務,每個均可能被複制,而且經過上級(superior)或者下級(subordinate)指針(referral)粘合起來。

 

四.LDAP服務的應用領域api

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 Resolution

Dependencies Resolved

===========================================================================================================================================
 Package                               Arch                        Version                              Repository                    Size
===========================================================================================================================================
Installing:
 openldap-clients                      x86_64                      2.4.44-21.el7_6                      updates                      190 k
 openldap-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 k

Transaction Summary
===========================================================================================================================================
Install  2 Packages (+1 Dependent package)
Upgrade  1 Package

Total 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 transaction
  Updating   : 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 Daemon
   Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-06-18 02:01:32 EDT; 11s ago
     Docs: man:slapd
           man:slapd-config
           man:slapd-hdb
           man:slapd-mdb
           file:///usr/share/doc/openldap-servers/guide.html
 Main 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 name
    olc即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 * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=yinzhengjie,dc=org,dc=cn

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=yinzhengjie,dc=org,dc=cn


dn: 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 by
  dn="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: yinzhengjie

dn: cn=Manager,dc=yinzhengjie,dc=org,dc=cn
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=yinzhengjie,dc=org,dc=cn
objectClass: organizationalUnit
ou: People

dn: 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: yinzhengjie

dn: cn=Manager,dc=yinzhengjie,dc=org,dc=cn
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=yinzhengjie,dc=org,dc=cn
objectClass: organizationalUnit
ou: People

dn: 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。

相關文章
相關標籤/搜索