OpenSuse - 架設 LDAP Server 認證伺服器

1、前言

本次實作為採用 YaST 來安裝及設定 LDAP Server,LDAP (Lightweight Directory Access Protocol): 輕量級目錄存取協定,運作於 TCP/IP 四層上,何以叫輕量級? 主要原因,若是把 LDAPX.500 這個運作於 OSI 七層的重量級協定,二相比較之下才叫輕量級,詳細資訊可以參考 RFC2251RFC2252RFC2253RFC2254RFC2255RFC2256RFC2829RFC2830RFC3377 等相關文件。




文章目錄

1、前言
2、實作環境
3、LDAP Server 安裝及設定
          步驟1.安裝 LDAP Server 套件
          步驟2.設定 LDAP Server 設定檔
          步驟3.確認 LDAP Server 服務是否啟動
4、LDAP Client 安裝及設定
          步驟1.設定 LDAP Client
          步驟2.檢查 LDAP User/Group Module
          步驟3.建立 LDAP 使用者帳號
          步驟4.驗證 LDAP 使用者帳號
5、LDAP Browser 設定
6、參考

LDAP 名詞解釋

  • Attribute (屬性): 即 LDIF 資料內冒號的左邊稱之。
  • Schema (綱要): LDAP 目錄資料定義,當您 新增 / 修改 LDAP 目錄資料時系統會利用 Schema 來檢查語法是否符合定義。
  • DIT (Directory Information Tree): 名錄資訊樹,想像為 dc=weithenn,dc=org。
  • Referral (引薦) / Reference (委託): 上層及下層 LDAP 連結關系 (想像為 DNS 主網域跟子網域的關系),詳細可參考 RFC3296。
  • Replication (複製): Master LDAP Data copy to Slave LDAP 動作稱之。
  • Entry (項目): 可想像為 DIT 的內部或外部節點。
  • Binding (繫結): LDAP 進行認證時的動作稱之。
  • ObjectClass (物件類別): 指定要採用那個物件類別 (ex.organizationalUnit 內有一堆屬性可使用密碼、電話.....)。

LDAP目錄結構組成

  • DN,Distinguished Name: 識別名稱,LDAP 中一條記錄的位置。
  • RDN,Relative Distinguished Name: 相對識別名稱,指的就是 CN 及 CN 的值 ex.cn=weithenn 獨一無二的屬性。
  • CN,Common Name / uid: 顯示名稱,一條 LDAP 記錄的名字 / ID。
  • OU,Organizational Unit: 組織,一條 LDAP 記錄所屬組織。
  • DC,Domain Componet: 網域元件,一條 LDAP 記錄所屬區域。

了解 LDAP 目錄結構之後,一條包含 CN 的 DN 記錄大概長得如下,在 weithenn.org 網域內 people 組織中使用者 weithenn。
dn: cn=weithenn,ou=people,dc=weithenn,dc=org

2、實作環境

  • OpenSuse 11.1
  • yast2-ldap-server-2.17.17-1.1
  • openldap2-2.4.12-5.5.1
  • pam_ldap
  • nss_ldap
  • LDAP Server IP:192.168.1.10
  • LDAP Domain: weithenn.org

3、LDAP Server 安裝及設定

步驟1.安裝 LDAP Server 套件

於桌面環境中輸入指令 yast2 來開啟 YaST2 Control Center 來安裝 LDAP Server 套件,步驟如下:

開啟【YaST2 Control Center】,點選【Software】 >> 【Add-On Products】。


點選【OpenSUSE URL】 >> 【Run Software Manager...】。


點選【Available】 >> 輸入【ldap-server】 >> 點選【yast2-ldap-server】 >> 【Install】 >> 【Apply】來安裝 ldap-server 套件。

點選【Available】 >> 輸入【openldap2】 >> 點選【openldap2】 >> 【Install】 >> 【Apply】來安裝 openldap2 套件。


步驟2.設定 LDAP Server 設定檔

於桌面環境中輸入指令 yast2 ldap-server 指令來開啟 LDAP Server Configuration - YaST 用來設定 LDAP Server,步驟如下:(本次實作使用 TLS 傳輸加密設定)。

開啟【LDAP Server Configuration - YaST】,Start LDAP Server【Yes】 >> 【Next】。


在 TLS Settings 視窗中按下【Next】鍵。


在 Basic Database Settings 視窗中:
  • Database Type: hdb
  • Base DN: dc=weithenn,dc=org
  • Administrator DN: cn=root (勾選 Append Base DN)
  • LDAP Administrator Password: 設定 LDAP 管理員密碼
  • Database Directory: LDAP DB 存放路徑
  • 勾選 Use this database as the default for OpenLDAP clients後,按下【Next】

確定剛才設定 LDAP Server 相關資料是否正確後,按下【Finish】鍵。


步驟3.確認 LDAP Server 服務是否啟動

完成後確定 LDAP Server 服務是否啟動及是否 Listen LDAP Service Port 389。
#netstat -tnl | grep :389
 tcp        0      0 0.0.0.0:389        0.0.0.0:*           LISTEN
 tcp        0      0 :::389                  :::*           LISTEN

確定 LDAP Server 服務當系統重新開機時是否會自動啟動。
#chkconfig --list ldap
 ldap                      0:off  1:off  2:off  3:on   4:off  5:on   6:off


4、LDAP Client 安裝及設定

步驟1.設定 LDAP Client

於桌面環境中輸入指令 yast2 ldap-client 指令來開啟 LDAP Client Configuration - YaST 用來設定 LDAP Client,步驟如下:

開啟【LDAP Client Configuration - YaST】,點選【Use LDAP】項目,在相關欄位依序填入資訊後,點選【Advanced Configuration...】鍵。
  • Addresses of LDAP Servers: 192.168.1.10
  • LDAP Base DN: dc=weithenn,dc=org

在 Client Settings 頁籤中,輸入或選擇到正確的 LDAP 相關資訊
  • User Map: dc=weithenn,dc=org
  • Password Map: dc=weithenn,dc=org
  • Group Map: dc=weithenn,dc=org
  • Password Change Protocol: crypt
  • Group Member Attribute: member

切換到 Administration Settings 頁籤中,輸入或選擇到正確的 LDAP 相關資訊
  • Configuration Base DN: ou=ldapconfig,dc=weithenn,dc=org
  • Administrator DN: cn=root,dc=weithenn,dc=org (勾選 Append Base DN)
  • 勾選【Create Default Configuration Objects
  • 勾選【Home Directories on This Machine
  • 按下【OK】鍵

系統提示需安裝使用者驗證 pam_ldap、nss_ldap 相關套件 >> 按下【 Install】來安裝使用者驗證相關套件 >>【OK】。

步驟2.檢查 LDAP User/Group Module

於桌面環境中輸入指令 yast2 ldap-client 指令來開啟 LDAP Client Configuration - YaST 用來設定 LDAP Client,步驟如下:

開啟【LDAP Client Configuration - YaST】 >> 【Advanced Configuration】 >> 【Administration Settings】 >> 【Configure User Management Settings】,查看【groupconfiguration】內容。


查看【userconfiguration】內容 >> 按下【Configure Template】 >> 查看【User Template】內容。



步驟3.建立 LDAP 使用者帳號

於桌面環境中輸入指令 yast2 users 指令來開啟 User and Group Administration - YaST 用來設定 LDAP User/Group Account,步驟如下:

開啟【User and Group Administration - YaST】,點選【Users】 >> 【Set Filter】 >> 【LDAP Users】,準備建立 LDAP 使用者帳號。


彈出【詢問 LDAP 管理者密碼】視窗,待驗證成功後即可準備建立 LDAP 使用者帳號。


驗證成功後,點選【Add】來建立 LDAP 使用者帳號。


在 New LDAP User 視窗中,填入 LDAP 使用者帳號資訊後,按下【Plug-Ins】
  • First Name: 填入使用者名,本例為 ldap
  • Last Name: 填入使用者姓,本例為 user1
  • Username: 填入使用者帳號,本例為 ldapuser1
  • Password: 設定 ldapuser1 使用者密碼

確認 Plug-In 項目【LDAP Attributes】有勾選後,按下【OK】鍵。


完成新增 LDAP 使用者帳號 ldapuser1 的動作 。


步驟4.驗證 LDAP 使用者帳號

驗證剛才新增的 LDAP 使用者帳號 ldapuser1 系統是否能正確識別及是否能使用 SSH 登入 (透過 LDAP Client 對 LDAP Server 進行帳號驗證)。

使用 id 指令
#id ldapuser1
 uid=1000(ldapuser1) gid=100(users) groups=100(users)

使用 finger 指令
#finger ldapuser1
 Login: ldapuser1                         Name: ldap user1
 Directory: /home/ldapuser1              Shell: /bin/bash
 Last login Mon May  3 22:07 (CST) on :0
 No Mail.
 No Plan.

測試能否 SSH 登入系統
#ssh ldapuser1@localhost
 The authenticity of host 'localhost (127.0.0.1)' can't be established.
 RSA key fingerprint is 8a:ca:67:b3:4f:63:99:37:d3:a0:cf:bd:df:63:d4:58.
 Are you sure you want to continue connecting (yes/no)? yes
 Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
 Password:
 Last login: Tue Mar  2 09:02:05 2010 from 192.168.1.10
 Have a lot of fun...
 ldapuser1@weithennldap:~> id
 uid=1000(ldapuser1) gid=100(users) groups=100(users)


5、LDAP Browser 設定

若您之後要修改 LDAP 相關屬性內容或LDAP 使用者帳號資訊...等,可利用 LDAP Browser 輕鬆進行內容修改,於桌面環境中輸入指令 yast2 ldap_browser 指令來開啟 LDAP Browser - YaST 用來設定 LDAP User/Group Account,步驟如下: (您可對需要修改的 LDAP 屬性 Attribute 進行修改)。

開啟【LDAP Browser - YaST】 >> 【驗證 LDAP 管理員密碼】 >> 查看 LDAP Tree



6、參考