概括了解 AIX 5L? 操作系統 V5.3 TL5 更新中輕量級目錄訪問協議(Lightweight Directory Access Protocol,LDAP)的相關增強功能。這些增強功能包括對 Active Directory 的支持、多個基本專有名稱 (DN) 支持,以及擴展的基本 DN 格式。
引言
對于 AIX 5L? 操作系統,基于輕量級目錄訪問協議 (LDAP) 的用戶管理越來越受到廣泛的關注。通常,客戶端可以使用 LDAP 或帶 Kerberos 的 LDAP 來實現他們的身份驗證和用戶管理需求。LDAP 為維護系統配置和策略信息提供了一種集中的機制。這使得客戶端可以僅使用一組用戶標識配置信息來配置和管理多個系統,并且可以簡化系統管理工作。AIX 5L LDAP 客戶端支持對各種系統的用戶、組和網絡信息的管理數據庫進行集中式管理。
術語
在本文中,我們將使用到下列術語和定義:
表 1. 術語術語 描述
Active Directory 服務 Microsoft? Active Directory Server 提供的目錄服務
AIX 5L V5.3 TL 05 AIX 5L Service Release Technology Level 05
LDAP 輕量級目錄訪問協議,一種用于用戶安全存儲庫和身份驗證機制的開放標準
SFU Microsoft's Services For UNIX? 軟件模塊,它以接近于符合 RFC 2307 的 LDAP 服務器的方式提供 Active Directory 配置
AIX 5L LDAP 用戶管理概述
本部分描述了 AIX 5L 操作系統 V5.3 在 TL5 更新之前的 LDAP 用戶管理特性。在下面的文檔中對所有的特性進行了詳細的描述:AIX? 文檔“Configuring an AIX Client System for User Authentication and Management through LDAP”白皮書、以及 Integrating AIX 5L into Heterogeneous LDAP Environments IBM 紅皮書(請參見參考資料部分)。
AIX 操作系統是 20 世紀 90 年代首批引入基于 LDAP 的用戶管理的操作系統之一。在 Request for Comment (RFC) 2307 成為維護用戶或組信息的標準方法后,各種操作系統都需要為目錄支持提供更標準化的方法。為了符合 RFC 2307 標準,對 AIX 5L 基于 LDAP 的用戶管理進行了相應的改造,允許客戶端管理 AIX 5L 系統以及符合 RFC 2307 的其他平臺類型的系統。
AIX 5L 基于 LDAP 的用戶管理中一些重要的部分包括:
支持 AIX 5L 用戶和組屬性全集
當選擇 AIX 5L 操作系統平臺作為 LDAP 服務器(以及 AIX 5L 媒體中包含的 LDAP 軟件)時,AIX 5L 操作系統比 RFC 2307 支持更多的屬性,并且對用戶登錄提供了附加的控制功能。AIX 5L 操作系統提供了完整的密碼和登錄控制。(有些屬性是 AIX 5L 中所特有的,在 AIX 5L Version 5.3 安全指南中對其進行了說明。請參見參考資料部分。)
AIX 5L 操作系統在其 LDAP 實現中支持下列數據庫:
RFC 2307 指定的信息和其他用戶或組信息
高級統計配置表
與 AIX 5L 用戶管理命令和工具的無縫集成
可以使用客戶所熟悉的一組相同的命令和系統管理工具 (SMIT) 接口來完成 LDAP 相關的管理工作。AIX 5L 操作系統提供了相應的接口以包括 LDAP,從而為 LDAP 客戶端和服務器提供簡單的配置。
AIX 5L 操作系統還提供了一些工具,用于將配置信息從本地文件遷移到 LDAP 數據庫。
支持自動加載
AIX 5L 操作系統為用戶提供了自動加載功能,使得用戶可以使用網絡文件系統 (NFS) 建立自己的 home 目錄。
多服務器配置和故障轉移功能
可以對 AIX 5L 操作系統進行配置以使用多個 LDAP 服務器來檢索配置信息,并且可以確定這些服務器的優先級,這樣一來,為 LDAP 服務器信息提供了冗余保護。如果主 LDAP 服務器出現了故障,那么 AIX 5L 操作系統將自動故障轉移到另一臺服務器。
受支持的 LDAP 服務器
可以通過將 AIX 5L 服務器配置為 LDAP 服務器的客戶端,從而實現 AIX 5L LDAP 用戶管理。AIX 5L 基于 LDAP 的用戶和組管理支持下列類型的目錄服務器:
IBM Tivoli? Directory Server,推薦的 LDAP 服務器
非 IBM 的目錄服務器
Microsoft Active Directory Server
IBM Tivoli Directory Server
建議您使用 IBM Tivoli Directory Server 進行 AIX 5L LDAP 用戶或組管理。IBM Tivoli Directory Server 具有符合 RFC 2307 的內置模式支持,并且提供了擴展的 AIX 5L 用戶和組屬性。IBM Tivoli Directory Server 提供了三種類型的與用戶或組相關的模式:AIX、rfc2307 和 rfc2307aix。
模式類型 rfc2307aix 完全符合 RFCS 2307 規范,所以可以對其他的操作系統(如 Linux)進行配置以使用該信息。這種模式還提供了 AIX 5L 特定的擴展信息,如附加的用戶控制、統計策略等等。建議將 rfc2307aix 模式類型用于用戶和組對象。
不鼓勵使用 AIX 模式類型,除非您希望服務器支持 AIX 5L 操作系統 V5.1 和更早版本的系統。AIX 5L 之外的操作系統可能無法使用 AIX 模式類型的 IBM Tivoli Directory Server 進行用戶管理。
非 IBM 目錄服務器
可以對 AIX 5L 服務器進行配置以使用非 IBM LDAP 服務器,但具有一定的限制。AIX 5L 操作系統支持符合 RFC 2307 的 LDAP 服務器的配置。其配置的復雜性和支持的級別有所差別,并且在下面的部分中進行了詳細的描述。
符合 RFC 2307 的目錄服務器
可以對 AIX 5L LDAP 客戶端進行配置以使用非 IBM LDAP 服務器進行用戶或組管理。如果目錄服務器支持符合 RFC 2307 模式的用戶或組信息,那么這樣做是可行的。這些服務器還需要支持 LDAP Version 3 協議。
AIX 5L 客戶端對這類服務器的操作不支持用戶或組管理的完整功能。因為這些服務器通常不支持 AIX 5L 特定的用戶或組屬性,所以 AIX 5L 操作系統中一些很好的用戶控制功能將無法使用。。
不符合 RFC 2307 的目錄服務器
AIX 5L 操作系統不支持不符合 RFC 2307 的目錄服務器。然而,如果這類服務器包含所需的屬性組,AIX 5L 操作系統可以按照 RFC 2307 中指定的那樣與它們一起工作(假設該信息以不兼容的方式存儲)。在這些情況下,管理員必須通過在 AIX 5L 客戶端創建映射文件,將目錄中的自定義信息映射為 RFC 2307 相關的信息。AIX 5L 操作系統提供的模式映射機制正是為了解決這個問題。
有關模式文件格式和模式文件使用的更詳細信息,請參見 AIX 5L 安全指南中的“LDAP Attribute Mapping File Format”(參考資料)。
Microsoft Active Directory
可以對 AIX 5L LDAP 客戶端進行配置以使用 Active Directory 服務。對于不同的 Microsoft? Windows? 發行版,基于 Active Directory 的用戶和組信息也不相同。正因為這樣,所以管理員應該完整地閱讀本部分內容,并在 AIX 5L LDAP 客戶端上建立所需的配置。
在 Windows 2000 和 Windows 2003 發行版中,Active Directory 可以通過 Windows Service For UNIX 包將用戶和組信息映射為 UNIX 模式類型。要使得 AIX 5L 客戶端能夠通過基于 Active Directory 的信息進行身份驗證,客戶必須在基于 Active Directory 服務的系統中安裝“Windows Services for UNIX”,然后配置 AIX 5L 客戶端。稍后將提供有關這一配置的更詳細信息。
AIX 5L 操作系統支持運行于 Windows 2000 和 2003 之上的安裝了 Services for UNIX 模式版本 3.0 和 3.5 的 Active Directory 服務。
對于基于 Windows 2003 R2 的 Active Directory,不需要附加的 Windows Services for UNIX (SFU) 層。Windows 2003 R2 UNIX 支持模式與 Services for UNIX 3.0 和 3.5 中定義的模式不同。AIX 5L 操作系統需要 APAR IY91514 以支持 Windows 2003 R2 模式的 Active Directory。要檢查是否安裝了這個 APAR,可以運行下面的命令: # instfix -ik APAR IY91514
由于 AIX 5L 操作系統和 Windows 系統在用戶和組管理上存在差別,所以當使用 Active Directory 作為中央 LDAP 服務器時,并非所有的 AIX 5L 命令都能夠正常使用。無法使用的命令包括 mkuser 和 mkgroup。其他大多數用戶和組管理命令可以正常使用,這取決于對 AIX 5L 操作系統綁定到 Active Directory 的標識所賦予的訪問權限。這些命令包括:
lsuser
chuser
rmuser
lsgroup
chgroup
rmgroup
id
groups
passwd
chpasswd(僅適用于 unix_auth 模式)
對 AIX 5L 客戶端進行配置以使用 Windows 服務器
對于 Windows 服務器,AIX 5L 操作系統支持兩種用戶身份驗證機制:LDAP 身份驗證和 Kerberos 身份驗證。使用其中任何一種機制時,AIX 5L 操作系統支持針對 Active Directory 通過 LDAP 協議進行用戶標識,而不需要在 AIX 5L 操作系統中存在對應的用戶帳戶。
在配置 AIX 5L 操作系統之前,必須在 Windows 服務器端完成下列操作步驟:
Active Directory 必須安裝了 UNIX 支持模式。
Active Directory 必須包含支持 UNIX 的用戶。
對于 Kerberos 身份驗證,必須在 Windows 服務器上創建主機主體。
有關在 Active Directory 中安裝這些模式,并為 Active Directory 用戶提供 UNIX 支持,請參考相關的 Microsoft 文檔。
對于 LDAP 身份驗證,管理員可以使用 mksecldap 命令將 AIX 5L LDAP 客戶端配置為使用 Active Directory 服務器,在使用 IBM Tivoli Directory Server 時也要進行這樣的配置。mksecldap 命令查詢服務器,發現遠程服務器是基于 Active Directory 的,然后對 AIX 5L 操作系統進行相應的配置。
對于 Kerberos 身份驗證,除了 LDAP 之外還必須配置 Kerberos。
下面的部分詳細描述了使用 Windows 服務器進行 LDAP 身份驗證和 Kerberos 身份驗證的配置步驟。
配置 AIX 5L 以使用 unix_auth 模式與 Active Directory 協同工作 # mksecldap -c -h -a
-p
其中:
Active Directory hostname 是您的 Windows Active Directory 服務器。
cn=binduser,cn=users,dc=ADdomain,dc=abc,dc=com 是一個示例綁定憑據。它可以是 Active Directory 中定義的一個用戶帳戶。要成功地進行身份驗證,該用戶必須擁有對 Active Directory 用戶的 UNIX 密碼的讀權限,要讓用戶更改他們的密碼,還必須擁有對 Active Directory 用戶的 UNIX 密碼的寫權限。
密碼 指的是上面的 binduser 帳戶的密碼。
這將對 AIX 5L 操作系統進行配置以使用所指定的 Active Directory 服務器。身份驗證模式將設置為 unix_auth。secldapclntd 守護進程將使用 cn=binduser,cn=users,dc=ADdomain,dc=abc,dc=comcn 標識綁定到 Active Directory。您可以使用 Active Directory 中定義的另一個有效的用戶來替換 cn=binduser,cn=users,dc=ADdomain,dc=abc,dc=comcn。這個 Windows 用戶帳戶應該僅由 UNIX 客戶端系統使用,以綁定到 Active Directory 服務器。
在 mksecldap 命令成功返回之后,檢查 /etc/security/ldap/ldap.cfg 文件以確保 userbasedn 和 groupbasedn 指向所需的基本專有名稱 (DN)。在缺省情況下,mksecldap 保存從 Active Directory 中找到的具有有效用戶和組的******個基本 DN,并且將這個基本 DN 保存到 /etc/security/ldap/ldap.cfg 文件。
例如,如果您的大部分用戶和組位于 cn=users 容器中,并且 userbasedn 和 groupbasedn 指向其他地方,那么可以手動更正 userbasedn 和 groupbasedn。在將該更改保存到 /etc/security/ldap/ldap.cfg 文件之后,重新啟動 secldapclntd 守護進程以使得該更改生效,如下所示。# restart-secldapclntd
AIX 5L 操作系統還支持多個基本 DN。支持多個基本 DN 部分中提供了更詳細的信息。
要驗證是否正確配置了 AIX 5L LDAP 客戶端,可以運行 lsuser 命令以列出 Active Directory 中定義的用戶:# lsuser –R LDAP
,其中 username 應該是 Active Directory 中定義的有效用戶。
要允許 Windows 用戶登錄到 AIX 5L 操作系統,管理員需要通過在 AIX 5L 操作系統中運行下列命令,對用戶的 SYSTEM 和 registry 屬性進行正確設置: # chuser -R LDAP SYSTEM=LDAP registry=LDAP foo
其中,foo 是 Active Directory 中定義的一個示例用戶。 在完成該更改之后,用戶 foo 就可以登錄到 AIX 5L 操作系統。
請注意,當用戶的 Windows 密碼更改時,Windows 2000 和 2003 服務器會為這些支持 UNIX 的用戶設置 UNIX 密碼。該用戶可以使用這個密碼登錄到 AIX 5L 操作系統,直到 AIX 5L 操作系統對這個密碼進行了更改。在撰寫本文時,當用戶的 Windows 密碼更改時,Window 2003 R2 不會設置 UNIX 密碼。在這些情況下,root 用戶必須在 AIX 5L 操作系統中運行 passwd 命令,以便為 Windows 用戶設置 UNIX 密碼,從而使他們能夠登錄到 AIX。
如果要讓所有的 Windows 用戶都能夠登錄到 AIX 5L 操作系統,對每個用戶進行這樣的操作可能非常麻煩。在這些情況下,管理員可以手動編輯 /etc/security/user 文件,并將 default 節的 SYSTEM 和 registry 屬性設置為 LDAP。如果 default 節中不包含這些屬性,那么需要添加它們。修改后的 default 節應該與下面所示類似: default:
...
SYSTEM = "LDAP"
registry = LDAP
...
如果已將 default 節更改為 LDAP,這些本地定義的用戶可能無法登錄到 AIX 5L 操作系統,除非將他們的 SYSTEM 設置為 compat,registry 設置為 files。管理員必須找出這些帳戶,并為每個用戶運行下面的命令以進行相應的更改。 # chuser SYSTEM=compat registry=files
配置 AIX 5L 以使用 ldap_auth 身份驗證模式與 Active Directory 協同工作 # mksecldap -c -h -a
-p -A ldap_auth
其中:
Active Directory hostname 是您的 Windows Active Directory 服務器。
cn=binduser,cn=users,dc=ADdomain,dc=abc,dc=com 是一個示例綁定憑據。它可以是 Active Directory 中定義的一個用戶帳戶。
密碼 指的是上面的 binduser 帳戶的密碼。
要驗證是否正確配置了 AIX 5L 操作系統,可以運行 lsuser 命令以列出 Active Directory 中定義的用戶: # lsuser -R LDAP
其中 username 應該是 Active Directory 中定義的有效用戶。
注意:如果您尚未安裝 APAR IY91514(請參見 Microsoft Active Directory 部分,以了解如何查看是否安裝了該 APAR),那么可能無法 將 AIX 5L spassword 屬性映射為正確的 Active Directory 密碼屬性。這可能導致身份驗證失敗,即使您使用了正確的密碼。請按照下面的步驟對映射進行更正:
編輯 /etc/security/ldap/sfu30user.map 文件,找到以單詞 spassword 開頭的行,例如 spassword SEC_CHAR msSFU30Password s
,將 msSFU30Password 替換為 unicodePwd。雖然上面的示例中顯示的是 msSFU30Password,但也可能是其他的內容。
這一行變成了: spassword SEC_CHAR unicodePwd s
保存該文件。
重新啟動 secldapclntd 守護進程以使上面的更改生效: # restart-secldapclntd
要允許 Windows 用戶登錄到 AIX 5L 操作系統,管理員需要通過在 AIX 5L 操作系統中運行下列命令,對用戶的 SYSTEM 和 registry 屬性進行正確設置: # chuser -R LDAP SYSTEM=LDAP registry=LDAP foo
其中,foo 是 Active Directory 中定義的一個示例用戶。
在完成該更改之后,用戶 foo 就可以使用其 Windows 密碼登錄到 AIX 5L 操作系統。
如果要讓所有的 Windows 用戶都能夠登錄到 AIX 5L 操作系統,為每個用戶進行上述的操作可能非常麻煩。在這些情況下,管理員可以手動編輯 /etc/security/user 文件,并將 default 節的 SYSTEM 和 registry 屬性設置為 LDAP。如果 default 節中不包含這些屬性,那么需要添加它們。default 節應該與下面所示類似:
default:
...
SYSTEM = "LDAP"
registry = LDAP
...
如果已將 default 節更改為 LDAP,這些本地定義的用戶可能無法登錄到 AIX 5L 操作系統,除非將他們的 SYSTEM 設置為 compat,registry 設置為 files。管理員需要找出這些帳戶,并為每個用戶運行下面的命令以進行相應的更改。 # chuser SYSTEM=compat registry=files
AIX 5L 操作系統的 passwd 命令支持更改 Windows 用戶 unicodePwd 密碼。如果 Windows Active Directory 需要通過 LDAP 進行密碼更改,則必須通過安全連接來實現。有關在 AIX 5L 操作系統中配置 SSL 以使用 Active Directory 的詳細信息,請參閱“Integrating AIX into Heterogeneous LDAP Environments”紅皮書(參見參考資料部分)。要更改 unicodePwd 密碼,AIX 5L 操作系統還需要 APAR IY91922。要檢查是否安裝了這個 APAR,可以運行下面的命令: # instfix -ik APAR IY91922
配置 AIX 5L 操作系統以通過 Windows 密鑰分發中心使用 Kerberos 身份驗證
除了通過 LDAP 對用戶進行身份驗證之外,AIX 5L 還支持通過 Kerberos 協議對 Windows 進行身份驗證。使用 Kerberos 的好處是不需要通過網絡傳輸密碼,從而提高了安全性。Kerberos 和 LDAP 的結合允許通過 Windows 密鑰分發中心 (KDC) 使用 Kerberos 進行用戶身份驗證,而 LDAP 用戶標識通過 Active Directory 完成。因為用戶信息來自于 Active Directory,所以不需要在 AIX 5L 操作系統上創建相應的用戶標識。這種配置需要在 AIX 5L 操作系統上創建 KRB5ALDAP 復合加載模塊。請按照下面的步驟配置 AIX 5L 操作系統。
安裝 Network Authentication Services (NAS) 文件集。
必須從 AIX 5L Expansion Pack CD 中安裝下面的 NAS 文件集:
krb5.client
krb5.lic
配置 AIX 5L 操作系統以使用 Windows KDC。
運行 configure.krb5 命令。 /usr/krb5/sbin/config.krb5 -C -r -d -c
-s
例如: # /usr/krb5/sbin/config.krb5 -C -r ADDOMAIN.ABC.COM -d abc.com -c
win2003.abc.com -s win2003.abc.com
Initializing configuration...
Creating /etc/krb5/krb5_cfg_type...
Creating /etc/krb5/krb5.conf...
The command completed successfully.
對于 Kerberos 領域名,Windows KDC 要求其全部是大寫字母。這些設置將會保存到 /etc/krb5/krb5.conf 文件。
Windows 僅支持 des-cbc-md5 和 des-cbc-crc 加密。編輯 /etc/krb5/krb5.conf 文件的 libdefaults 節以刪除所有其他的加密機制,該節應該與如下所示類似:
[libdefaults]
default_realm = ADDOMAIN.ABC.COM
default_keytab_name = FILE:/etc/krb5/krb5.keytab
default_tkt_enctypes = des-cbc-md5 des-cbc-crc
default_tgs_enctypes = des-cbc-md5 des-cbc-crc
同步 AIX 和 Windows 服務器的時鐘。
使用有效的 Windows 用戶運行 /usr/krb5/bin/kinit 命令,并確保該命令成功返回。還需確保 /usr/krb5/bin/klist 命令顯示了該用戶的 Kerberos 憑據,如下所示: # /usr/krb5/bin/kinit foo
Password for foo@ADDOMAIN.ABC.COM:
# /usr/krb5/bin/klist
Ticket cache: FILE:/var/krb5/security/creds/krb5cc_0
Default principal: foo@ADDOMAIN.ABC.COM
Valid starting Expires Service principal
11/27/06 15:33:55 11/28/06 01:33:28 krbtgt/ADDOMAIN.ABC.COM@ADDOMAIN.ABC.COM
Renew until 11/28/06 15:33:55
#
配置 AIX 5L LDAP 以使用 Active Directory。
要使用 mksecldap 命令對 AIX 5L LDAP 進行配置以使用 Active Directory,請按照前面的“配置 AIX 5L 以使用 unix_auth 模式與 Active Directory 協同工作”部分中的說明進行操作。不要為用戶設置 SYSTEM 和 registry 屬性,不要修改 /etc/security/user 文件的 default 節。
創建 KRB5ALDAP 復合加載模塊。
向 /usr/lib/security/methods.cfg 文件中手動追加下列內容。 KRB5A:
program = /usr/lib/security/KRB5A
options = authonly
KRB5ALDAP:
options = db=LDAP,auth=KRB5A
或者,如果不需要 TGT 驗證,可以按照如下所示設置復合加載模塊。在這些情況下,您可以省略步驟 5 和 6,直接轉到步驟 7。
KRB5A:
program = /usr/lib/security/KRB5A
options = tgt_verify=no
KRB5ALDAP:
options = db=LDAP,auth=KRB5A
在 Windows 服務器上創建 AIX 5L 主體。
在 Windows 服務器上創建一個用戶帳戶。使用 AIX 5L 主機名作為用戶名,例如 aixhost。
通過在 Windows 服務器上運行 ktpass 命令,將該帳戶映射為 AIX 5L 主機主體,并將 ktpass 命令的 keytab 輸出到一個文件。
ktpass – princ host/aixhost.ibmabc.com@ADDOMAIN.ABC.COM –mapuser
aixhost –pass password –out aixhost.keytab
將 aixhost.keytab 文件復制到 AIX 系統,并使用 ktutil 工具將密鑰添加到 AIX keytab。
# /usr/krb5/sbin/ktutil
ktutil: rkt aixhost.keytab
ktutil: wkt /etc/krb5/krb5.keytab
ktutil: q
允許 Windows 用戶登錄到 AIX 5L 操作系統。
要允許 Windows 用戶使用 KRB5ALDAP 機制登錄到 AIX 5L 操作系統,管理員需要在 AIX 5L 操作系統中運行下面的命令: # chuser -R KRB5ALDAP SYSTEM=KRB5ALDAP registry=KRB5ALDAP foo
其中,foo 是一個示例用戶。
在進行了更改之后,Windows 用戶可以使用他們的 Windows 密碼登錄到 AIX 5L 操作系統。不需要在 AIX 5L 操作系統中創建相應的用戶。用戶的標識信息來自于 Windows Active Directory。
如果要讓所有的 Windows 用戶都能夠登錄到 AIX 5L 操作系統,為每個用戶進行上述的操作可能非常麻煩。在這些情況下,管理員可以手動編輯 /etc/security/user 文件,并將 default 節的 SYSTEM 和 registry 屬性設置為 KRB5ALDAP。如果 default 節中不包含這些屬性,那么需要添加它們。default 節應該與下面所示類似: default:
...
SYSTEM = KRB5ALDAP
registry = KRB5ALDAP
...
如果已將 default 節更改為 KRB5ALDAP,這些本地定義的用戶可能無法登錄到 AIX 5L 操作系統,除非將他們的 SYSTEM 設置為 compat,registry 設置為 files。管理員需要找出這些帳戶,并為每個用戶運行下面的命令以進行相應的更改。 # chuser SYSTEM=compat registry=files
在對 KRB5ALDAP 機制進行配置之后,用戶無法使用他們舊的 unix_auth 模式 LDAP 密碼登錄到 AIX 5L 操作系統。不過,如果用戶使用了 ldap_auth 模式,則可以繼續使用相同的密碼登錄到 AIX 5L 操作系統。這是因為 ldap_auth 使用了 Windows 本身的密碼,而 unix_auth 模式則使用了不同的密碼。
有關 Active Directory 的注意事項
本部分內容簡要地介紹了您在為 AIX 5L 客戶端使用 Microsoft Active Directory 作為 LDAP 服務器時可能碰到的一些問題。
在 Active Directory 中支持多個密碼
可以看出,Active Directory 在其數據庫中為用戶提供了四種不同的密碼屬性:
userPassword
unixUserPassword
msSFU30Password
unicodePwd
因此,相對于 Active Directory,AIX 5L 操作系統上的密碼管理可能是個問題。對于密碼管理來說,客戶應該使用哪個屬性并不確定。AIX 5L LDAP 屬性映射功能允許客戶對這個方面進行研究,并根據他們的需求對密碼管理進行自定義。
AIX 5L 操作系統支持兩種身份驗證機制:unix_auth 和 ldap_auth。下面是可以用于這些身份驗證模式的密碼管理策略:
unix_auth 模式身份驗證
使用 AIX 5L 身份驗證的 unix_auth 模式時,Active Directory 需要加密格式的密碼。在進行身份驗證時,從 Active Directory 中檢索到加密的密碼,并將其與用戶輸入的加密格式的密碼進行比較。缺省情況下,在操作 Windows 2000 和 2003 時,AIX 5L 操作系統使用 Active Directory 中的 msSFU30Password 屬性,而在操作 Windows 2003 R2 時,則使用 userPassword 屬性。
如果要使用不同的密碼,那么管理員需要手動修改 /etc/security/ldap/sfu30user.map 文件(或 /etc/security/ldap/sfur2user.map,如果 Active Directory 運行于 Windows 2003 R2 上)。查找以單詞 spassword 開頭的行,并將該行的第三個字段更改為所需的 Active Directory 密碼屬性名稱。有關更詳細的信息,請參閱 AIX 5L 安全指南中的“LDAP Attribute Mapping File Format”。在進行了更改之后,運行 mksecldap 命令以配置 AIX 5L LDAP 客戶端。如果已經配置了 AIX 5L 客戶端,可以運行 restart-secldapclntd 命令,重新啟動 secldapclntd 守護進程以使該更改生效。
在這種身份驗證的模式中,AIX 5L 客戶端不能使用 unicodePwd 屬性,因為它采用的是 unicode 格式,而不是 unix_auth 身份驗證模式所需的加密格式。
使用 unix_auth 身份驗證模式的缺點是,AIX 5L 和 Windows 系統的密碼完全不同。如果用戶從 AIX 5L 客戶端更改密碼,就會出現這種情況。盡管用戶可以從 AIX 5L 客戶端使用 passwd 命令將他們的密碼設置為與 Windows 密碼相同的密碼,但是當用戶在 AIX 5L 操作系統中更改他們的密碼時,AIX 5L 客戶端不支持自動更改其 Windows 密碼。
ldap_auth 身份驗證模式
使用 ldap_auth 模式時,AIX 5L 操作系統通過使用用戶標識信息和所提供的密碼對服務器執行 LDAP 綁定操作,以便對用戶進行身份驗證。要實現這種類型的基于 Active Directory 服務器的身份驗證,必須將 AIX 5L 密碼映射為 Active Directory 的 unicodePwd 屬性。在將 AIX 5L LDAP 配置為使用 ldap_auth 模式時,mksecldap 會將密碼屬性映射為 Active Directory 的 unicodePwd 屬性。該特性需要 APAR IY91514,如果尚未安裝,請參見 Microsoft Active Directory 以手動更改密碼映射。
當用戶登錄到 Windows 系統時,將使用 unicodePwd 屬性。通過將 AIX 5 L 密碼映射為 unicodePwd,Active Directory 中定義的用戶可以使用相同的密碼登錄到 Windows 系統和 AIX 5L 系統。AIX 5L 操作系統僅支持在 ldap_auth 模式中使用 unicodePwd。這樣做還允許用戶從 AIX 5L 系統更改密碼,該更改將會在 AIX 5L 和 Windows 系統中生效。
使用 Active Directory 組屬性進行組管理
與密碼問題類似,Microsoft Services for UNIX 定義了與多個組成員相關的屬性:
memberUid
msSFU30MemberUid
msSFU30PosixMember
memberUid 和 msSFU30MemeberUid 屬性接受用戶帳戶名,而 msSFU30PosixMember 僅接受完整的 DN。例如,對于用戶帳戶 foo(其名字為 bar),它在 Active Directory 中的定義如下:
memberUid:foo
msSFU30MemberUid:foo
msSFU30PosixMember:cn=foo bar,cn=users,dc=ADdomain,dc=abc,dc=com
可以對 AIX 5L LDAP 客戶端進行配置,以使用這些屬性。您可以與 Active Directory 管理員討論,以確定使用哪些屬性。建議使用 memberUid 或 msSFU30MemberUid 代替 msSFU30PosixMember,因為前者將節省存儲空間和網絡流量,并具有更好的性能。在缺省情況下,mksecldap 對 AIX 5L LDAP 客戶端進行配置以便對運行于 Windows 2000 和 2003 的 Active Directory 使用 msSFU30PosixMember 屬性,對運行于 Windows 2003 R2 的 Active Directory 使用 memberUid 屬性。這種選擇是因為 Active Directory 的行為,當在 Windows 中將用戶添加到組中時,它會選擇相應的屬性。您的組織策略可能需要使用非缺省的組成員屬性以支持多種平臺。
與密碼中的情況一樣,AIX 5L 管理員可以對 LDAP 客戶端進行配置,以使用不同的組成員屬性。通過手動編輯組映射文件,您可以更改映射。對于運行于 Windows 2000 和 2003 的 Active Directory,組映射文件為 /etc/security/ldap/sfu30group.map;對于運行于 Windows 2003 R2 的 Active Directory,組映射文件為 /etc/security/ldap/sfur2group.map。查找以單詞“users”開頭的行,并使用組成員所需的屬性名稱替換其中的第三個字段。有關更詳細的信息,請參見 AIX 5L 安全指南中的“LDAP Attribute Mapping File Format”。
在完成更改后,執行 mksecldap 命令對 AIX 5L LDAP 客戶端進行配置。如果已經配置了 AIX 5L 客戶端,可以運行 restart-secldapclntd 命令以重新啟動 secldapclntd 守護進程使得更改生效。
多個組織單元
Active Directory 支持分布于不同子樹的用戶信息。大多數 Active Directory 用戶定義于 cn=users,... 子樹,但有一些可能定義在其他位置。Active Directory 服務器還可以定義多個組織單元,其中每一個組織單元包含一組用戶。AIX 5L 操作系統的多個基本 DN 的支持特性可用于針對這種 Active Directory 服務器進行配置。有關該特性更詳細的信息,請繼續閱讀接下來的部分。
支持多個基本 DN
在 AIX 5L TL5 更新之前,LDAP 用戶管理僅支持一個基本 DN。例如,您可以在 /etc/security/ldap/ldap.cfg 文件中僅指定一個用戶基本 DN。在存在多個子樹的情況下,userbasedn 屬性必須指向 AIX 5L 操作系統中所有可見用戶的子樹的公共父節點。這需要所有的子樹都位于相同的后綴中,因為后綴之間不存在公共父節點。
AIX 5L Version 5.3 TL 5 更新實現支持多個基本 DN。在 /etc/security/ldap/ldap.cfg 文件中,可以為每個實體***多指定 10 個基本 DN。根據其在 /etc/security/ldap/ldap.cfg 文件中出現的順序確定這些基本 DN 的優先級。根據這些基本 DN 的優先級執行 AIX 5L 命令的操作。
將根據其優先級對基本 DN 執行查詢操作,如 lsuser 命令,直到找到了匹配的帳戶。
如果搜索了所有的基本 DN 而沒有找到匹配項,將返回一個錯誤。如果查詢所有的基本 DN,那么將返回每個基本 DN 的所有帳戶。
將僅對******個匹配的帳戶執行修改操作,如 chuser 命令。
將僅對******個匹配的帳戶執行刪除操作,如 rmuser 命令。
將僅對第一個基本 DN 執行創建操作,如 mkuser 命令。AIX 5L 操作系統不支持為其他基本 DN 創建帳戶。
AIX 5L LDAP 客戶端不支持在 Active Directory 中創建用戶和組。
目錄服務器管理員的職責是維護沒有沖突的帳戶數據庫。如果相同的帳戶存在多個定義,分別位于不同的子樹中,那么對于 AIX 5L 操作系統來說,只有第一個帳戶是可見的。搜索操作僅返回第一個匹配的帳戶。與之類似,將僅對第一個匹配的帳戶執行修改或刪除操作。
當使用 mksecldap 命令配置 LDAP 客戶端時,將查找基本 DN 并將其保存到 /etc/security/ldap/ldap.cfg 文件。如果對于一個實體,LDAP 服務器中存在多個可用的基本 DN,那么 mksecldap 可隨機使用任何一個。如果 AIX 5L LDAP 客戶端要使用多個基本 DN,在成功地執行 mksecldap 對 AIX 5L LDAP 客戶端進行配置之后,您需要手動編輯 /etc/security/ldap/ldap.cfg 文件。在文件中找到合適的基本 DN 定義,并添加所需的附加基本 DN。對于每個實體,AIX 5L LDAP 客戶端***多支持 10 個基本 DN,任何附加的基本 DN 將會被忽略。
下面的示例顯示了 /etc/security/ldap/ldap.cfg 中的兩個用戶基本 DN。
userbasedn: CN=Users,DC=ADdomain,DC=abc,DC=com
userbasedn: OU=sales,OU=DomainControllers,DC=ADdomain,DC=abc,DC=com
AIX 5L 客戶端還為每個基本 DN 支持用戶定義的篩選器和搜索范圍?;?DN 可以具有自己的篩選器和范圍,并且可以與其同等的基本 DN 有所不同。篩選器可用于定義一組對 AIX 5L 操作系統可見的帳戶。對 AIX 5L 操作系統來說,只有那些滿足篩選器的帳戶才是可見的。
接下來的部分將提供更多有關多個基本 DN 格式和篩選器格式的信息。
擴展的基本 DN 格式
在 TL5 更新級別和更新的版本中,AIX 5L 操作系統 V5.3 還支持使用擴展的基本 DN 格式將自定義的 filter 和 scope 字段與每個基本 DN 關聯起來,字段之間使用“?”字符分隔。scope 和 filter 屬性是可選的。在 AIX 5L 中,支持下列基本 DN 格式:
userbasedn:ou=people, cn=aixdata
userbasedn:ou=people, cn=aixdata?scope
userbasedn:ou=people, cn=aixdata??filter
userbasedn:ou=people, cn=aixdata?scope?filter
******種格式代表了 secldapclntd 守護進程所使用的缺省格式。分別通過使用 scope 屬性或 filter 屬性,第二種和第三種格式允許對搜索進行限定。第四種格式允許同時使用范圍和篩選器。
scope 屬性接受下列取值:
sub
one
base
如果沒有指定 scope 字段,其缺省值為 sub。
filter 屬性允許進一步對 LDAP 服務器中定義的條目進行限定。您可以使用該篩選器僅使得那些具有某種特性的用戶對系統來說是可見的。下面介紹了一些有效的篩選器格式,其中 attribute 是一個 LDAP 屬性的名稱,而 value 指定了搜索條件。value 可以為通配符“*”。
(attribute=value)
(&(attribute=value)(attribute=value))
(|(attribute=value)(attribute=value))
附錄 A. Service for UNIX 3.0 和 3.5 模式映射
下面是面向運行于安裝了 Microsoft Service for UNIX Version 3.0 或 3.5 的 Windows 2000 和 2003 服務器上的 Active Directory 的用戶和組屬性映射文件。AIX 5L V5.3 TL5 更新中附帶了該映射文件。
表 2. /etc/security/ldap/sfu30user.mapusername SEC_CHAR msSFU30Name s
id SEC_INT msSFU30UidNumber s
pgrp SEC_CHAR msSFU30GidNumber s
home SEC_CHAR msSFU30HomeDirectory s
shell SEC_CHAR msSFU30LoginShell s
gecos SEC_CHAR msSFU30Gecos s
spassword SEC_CHAR msSFU30Password s
lastupdate SEC_INT msSFU30ShadowLastChange s
maxage SEC_INT msSFU30ShadowMax s
minage SEC_INT msSFU30ShadowMin s
maxexpired SEC_INT msSFU30ShadowExpire s
pwdwarntime SEC_INT msSFU30ShadowWarning s
#spassword SEC_CHAR unicodePwd s
***后的注釋行顯示了用于 ldap_auth 身份驗證模式的密碼映射。
表 3. /etc/security/ldap/sfu30group.mapgroupname msSFU30Name msSFU30Name s
id SEC_INT msSFU30GidNumber s
users SEC_LIST msSFU30PosixMember s
#users SEC_LIST msSFU30MemberUid s
***后的注釋行顯示了替代的組成員屬性映射。
附錄 B. Windows 2003 R2 模式映射
下面是面向運行于使用 Windows R2 模式的 Windows 2000 R2 上的 Active Directory 的用戶和組屬性映射文件。這些映射僅作為參考,在附帶提供時可能進行了更改。
表 4. Windows 2003 R2 模式的用戶屬性映射username SEC_CHAR uid s
id SEC_INT uidNumber s
pgrp SEC_CHAR gidNumber s
home SEC_CHAR unixhomeDirectory s
shell SEC_CHAR loginShell s
gecos SEC_CHAR gecos s
spassword SEC_CHAR userPassword s
lastupdate SEC_INT shadowLastChange s
maxage SEC_INT shadowMax s
minage SEC_INT shadowMin s
maxexpired SEC_INT shadowExpire s
pwdwarntime SEC_INT shadowWarning s
#spassword SEC_CHAR unixuserPassword s
#spassword SEC_CHAR unicodePwd s
表 5. Windows 2003 R2 模式的組屬性映射
groupname SEC_CHAR cn s
id SEC_INT gidNumber s
users SEC_LIST memberUid s
附錄 C. 重要的 APAR
IY91514
要使 AIX 5L 操作系統與運行于 Windows 2003 R2 上使用新的 UNIX 模式的 Active Directory 協同工作,需要使用這個 APAR。
IY91922
支持 ldap_auth 模式密碼更改。如果 Windows Active Directory 需要通過 LDAP 進行密碼更改,則必須通過安全連接來實現。有關在 AIX 5L 操作系統上配置 SSL 以使用 Active Directory 的信息,請參閱 Integrating AIX into Heterogeneous LDAP Environments IBM 紅皮書(參見參考資料部分)。
在對 KRB5ALDAP 機制進行配置之后,用戶無法使用他們舊的 unix_auth 模式 LDAP 密碼登錄到 AIX 5L 操作系統。不過,如果用戶使用了 ldap_auth 模式,則可以繼續使用相同的密碼登錄到 AIX 5L 操作系統。這是因為 ldap_auth 使用了 Windows 本身的密碼,而 unix_auth 模式則使用了不同的密碼。
有關 Active Directory 的注意事項
本部分內容簡要地介紹了您在為 AIX 5L 客戶端使用 Microsoft Active Directory 作為 LDAP 服務器時可能碰到的一些問題。
在 Active Directory 中支持多個密碼
可以看出,Active Directory 在其數據庫中為用戶提供了四種不同的密碼屬性:
userPassword
unixUserPassword
msSFU30Password
unicodePwd
因此,相對于 Active Directory,AIX 5L 操作系統上的密碼管理可能是個問題。對于密碼管理來說,客戶應該使用哪個屬性并不確定。AIX 5L LDAP 屬性映射功能允許客戶對這個方面進行研究,并根據他們的需求對密碼管理進行自定義。
AIX 5L 操作系統支持兩種身份驗證機制:unix_auth 和 ldap_auth。下面是可以用于這些身份驗證模式的密碼管理策略:
unix_auth 模式身份驗證
使用 AIX 5L 身份驗證的 unix_auth 模式時,Active Directory 需要加密格式的密碼。在進行身份驗證時,從 Active Directory 中檢索到加密的密碼,并將其與用戶輸入的加密格式的密碼進行比較。缺省情況下,在操作 Windows 2000 和 2003 時,AIX 5L 操作系統使用 Active Directory 中的 msSFU30Password 屬性,而在操作 Windows 2003 R2 時,則使用 userPassword 屬性。
如果要使用不同的密碼,那么管理員需要手動修改 /etc/security/ldap/sfu30user.map 文件(或 /etc/security/ldap/sfur2user.map,如果 Active Directory 運行于 Windows 2003 R2 上)。查找以單詞 spassword 開頭的行,并將該行的第三個字段更改為所需的 Active Directory 密碼屬性名稱。有關更詳細的信息,請參閱 AIX 5L 安全指南中的“LDAP Attribute Mapping File Format”。在進行了更改之后,運行 mksecldap 命令以配置 AIX 5L LDAP 客戶端。如果已經配置了 AIX 5L 客戶端,可以運行 restart-secldapclntd 命令,重新啟動 secldapclntd 守護進程以使該更改生效。
在這種身份驗證的模式中,AIX 5L 客戶端不能使用 unicodePwd 屬性,因為它采用的是 unicode 格式,而不是 unix_auth 身份驗證模式所需的加密格式。
使用 unix_auth 身份驗證模式的缺點是,AIX 5L 和 Windows 系統的密碼完全不同。如果用戶從 AIX 5L 客戶端更改密碼,就會出現這種情況。盡管用戶可以從 AIX 5L 客戶端使用 passwd 命令將他們的密碼設置為與 Windows 密碼相同的密碼,但是當用戶在 AIX 5L 操作系統中更改他們的密碼時,AIX 5L 客戶端不支持自動更改其 Windows 密碼。
ldap_auth 身份驗證模式
使用 ldap_auth 模式時,AIX 5L 操作系統通過使用用戶標識信息和所提供的密碼對服務器執行 LDAP 綁定操作,以便對用戶進行身份驗證。要實現這種類型的基于 Active Directory 服務器的身份驗證,必須將 AIX 5L 密碼映射為 Active Directory 的 unicodePwd 屬性。在將 AIX 5L LDAP 配置為使用 ldap_auth 模式時,mksecldap 會將密碼屬性映射為 Active Directory 的 unicodePwd 屬性。該特性需要 APAR IY91514,如果尚未安裝,請參見 Microsoft Active Directory 以手動更改密碼映射。
當用戶登錄到 Windows 系統時,將使用 unicodePwd 屬性。通過將 AIX 5 L 密碼映射為 unicodePwd,Active Directory 中定義的用戶可以使用相同的密碼登錄到 Windows 系統和 AIX 5L 系統。AIX 5L 操作系統僅支持在 ldap_auth 模式中使用 unicodePwd。這樣做還允許用戶從 AIX 5L 系統更改密碼,該更改將會在 AIX 5L 和 Windows 系統中生效。