4,594 瀏覽數

LDAP-安裝

LDAP(安裝)

Step 1. 首先檢查 OpenLDAP是否安裝

[root@benjr ~]# rpm -avq | grep ldap
openldap
openldap-clients
openldap-servers
nss_ldap

這些套件主要包含了 OpenLDAP 所必須的函式庫,應用程式以及工具.

  • openldap
    這套件包含了 OpenLDAP Server 以及 Client 應用程式所需的函式庫和工具.
  • openldap-clients
    這套件包含了檢視,查詢,修改 OpenLDAP Server 目錄服務的命令列工具.
  • openldap-servers
    這套件包含了 OpenLDAP Server 的主程式,Standalone LDAP Daemon (/usr/sbin/slapd)) 以及 Standalone LDAP Update Replication Daemon (/usr/sbin/slurpd) 以及設定 OpenLDAP 的工具.
  • nss_ldap
    必主要是想要用 OpenLDAP 做身分驗證的 Linux Clinet 所必備的套件.

檢查一下是否安裝.沒有安裝就繼續下一個步驟.安裝完成請跳至第三個步驟.

Step 2. 安裝 OpenLDAP

在 RHEL 5 DVD 光碟片中的目錄 Server 可以找到所需的程式

[root@benjr ~]# mount /media/rhel5
[root@benjr ~]# rpm -ivh  /media/rhel5/openldap…..rpm
[root@benjr ~]# rpm -ivh /media/rhel5/openldap-clients…..rpm
[root@benjr ~]# rpm -ivh /media/rhel5/openldap-servers…..rpm
[root@benjr ~]# rpm -ivh /media/rhel5/nss_ldap….rpm

Step 3. 檢查 OpenLDAP 服務是否啟動

預設 openldap 是關閉的,想要在開機時啟動 openldap 使用 chkconfig 將 Runlevel 2,3,4,5 都在開機時啟動服務.

[root@benjr ~]# chkconfig ldap on
[root@benjr ~]# chkconfig –list ldap
ldap      0:off   1:off   2:on   3:on   4:on   5:on   6:on

現在我們也可以直接將 openldap 服務啟動.

[root@benjr ~]# service ldap start
Starting ldap services:                   [ OK ]

Step 4. OpenLDAP 的設定檔

openldap 的設定檔位於 /etc/openldap 目錄中,其中有兩個主要的設定檔以及一個目錄.

  • /etc/openldap/ldap.conf
    主要是給客戶端應用程式 (clients Application) 來使用.如 ldapsearch,ldapadd 等程式.
  • /etc/openldap/slapd.conf
    這就是 openldap Daemon 服務主要的設定檔,接下來就會講述這一個設定檔.
  • /etc/openldap/schema/
    schema 目錄是一個很重要的目錄,系統支援屬性皆定義在此.

現在來看看 /etc/openldap/slapd.conf 的內容.

[root@benjr ~]# vi /etc/openldap/slapd.conf
# $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v 1.8.8.7 2001/09/27 20:00:31 kurt Exp $
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include  /etc/openldap/schema/core.schema
include  /etc/openldap/schema/cosine.schema
include  /etc/openldap/schema/inetorgperson.schema
include  /etc/openldap/schema/nis.schema
include  /etc/openldap/schema/redhat/rfc822-MailMember.schema
include  /etc/openldap/schema/redhat/autofs.schema
include  /etc/openldap/schema/redhat/kerberosobject.schema
………………略……………………………
##################################################
# ldbm database definitions
##################################################
database dbd
suffix  "dc=benjr,dc=tw"
#suffix  "o=fortop,c=tw"
rootdn  "cn=root,dc=benjr,dc=tw"
#rootdn  "cn=root,o=fortop,c=tw"
# Cleartext passwords, especially for the rootdn, should
# be avoided.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
#rootpw  secret
rootpw  {SSHA}83DJ4KVwqlk1uh9k2uDb8+NT1U4RgkEs   
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd/tools. Mode 700 recommended.
directory /var/lib/ldap
# Indices to maintain
index objectClass,uid,uidNumber,gidNumber,memberUid eq
index cn,mail,surname,givenname   eq,subinitial
# Replicas to which we should propagate changes
#replica host=ldap-1.example.com:389 tls=yes
# bindmethod=sasl saslmech=GSSAPI
# authcId=host/ldap-master.example.com@EXAMPLE.COM

一開始有許多的 include ,這些是關於 schema 我們稍後再談.

LDAP 的架構如同 DNS 是以階層式的架構來做管理,所以一開始我們需要為自己的 LDAP 定一個 Domain 通常使用自己公司的網域名稱.不過沒硬性規定命名方式.這邊我以我的網域 benjr.tw  為範例   
suffix  "dc=benjr,dc=tw"
接下來我們需要為 LDAP 設定一個管理者 
rootdn  "cn=root,dc=benjr,dc=tw"
其管理者 CN 可為任意,為後面所接的 domain 必須為剛剛所指定 benjr.tw ,這管理者將會是這 LDAP 的最高權限管理者.

在 LDAP 目錄中每一個物件都有一個唯一個 DN(Distinguished Name) ,他是由條目 (entry) 與屬性 (attribute) 所集合組成的.所以一開始的管理者也是一個 DN ,其後面固定為 Domain 而這 DN 必須是唯一的 DN.

接下來是為這管理者設定密碼.這裡的密碼不是以明碼的方式來呈現,所以無法直接在這裡輸入,需使用指令slappasswd 來建立雜湊演算法的密碼, 而 slappasswd 除了預設的 SSHA 可用外還提供了 {CRYPT},{MD5},{SMD5},{SHA} 等 on-way hash 方式來當密碼,可以用 -h scheme 來指定.可以用 slappasswd 指令來產生管理者的密碼

[root@benjr ~]# slappasswd
New password
Re-enter new password
{SSHA}83DJ4KVwqlk1uh9k2uDb8+NT1U4RgkEs

接下來再拷到 /etc/openldap/sldap.conf  的 rootpw 即可(怎麼拷,可以用滑鼠的左右鍵來做).

root 管理使用者密碼
rootpw  {SSHA}83DJ4KVwqlk1uh9k2uDb8+NT1U4RgkEs

重新啟動 openldap

[root@benjr ~]# service ldap restart
Stopping slapd:   [  OK  ]
Checking configuration files for slapd:  bdb_db_open: Warning – No DB_CONFIG file found in directory /var/lib/ldap: (2)
Expect poor performance for suffix dc=benjr,dc=tw.
config file testing succeeded   [  OK  ]
Starting slapd:                         [  OK  ]

系統預設使用的資料庫是 dbd ,但一開始我們的 DB_CONFIG 檔案是不存於目錄 /var/lib/ldap 下,而 DB_CONFIG 這個檔案設定了 index 的快取數量並且可以調整系統效能,直接從 /etc/openldap/DB_CONFIG.example 複製即可.

[root@benjr ~]# cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

在使用 ldapsearch,ldapadd 等指令時我們可以指定 BDN(Base Distinguished Name),也就是篩選條件.不過每次都要自己輸入 BDN 不是很聰明的作法. ldapsearch, ldapadd 這些指令會依據 /etc/openldap/ldap.conf 所指定的 BDN(Base Distinguished Name) 作為篩選條件.所以先將 /etc/openldap/ldap.conf 做修改.方式只要把 /etc/openldap/ldap.conf 的 BASE 改成 /etc/openldap/slapd.conf 所指定的網域即可.

[root@benjr ~]# vi /etc/openldap/ldap.conf
BASE dc=benjr,dc=tw

檢查 openldap server 是否正常啟動且設定是否正確

[root@benjr ~]# ldapsearch -x -b ' ' -s base '(objectclass=*)' namingContexts
                            .
                            .
dn:
namingContexts:dc=benjr,dc=tw
                            .
                            .

你至少會看到以上兩行,這樣就大致完成了 LDAP 伺服器端的安裝,但是 LDAP 中沒有任何一筆資料的存在.接下來的一章就是要在 LDAP 中新增資料了LDAP-帳號伺服器 http://benjr.tw/27692

6 個網友的想法 “LDAP-安裝

  1. 自動參照通知: LDAP-用於 samba PDC 認證 | Benjr.tw

  2. 自動參照通知: LDAP-郵件通訊錄 | Benjr.tw

  3. 自動參照通知: LDAP – GUI 操作介面 | Benjr.tw

  4. 自動參照通知: LDAP-帳號伺服器 | Benjr.tw

  5. 自動參照通知: LDAP | Benjr.tw

  6. 在 ubuntu 要使用 openldap 需要透過 apt-get 安裝下列套件

    $apt-get install slapd ldap-utils
    $apt-get install libpam-ldap libnss-ldap
    

發表迴響