Solaris for ISPs 管理手冊

第 5章 使用目錄服務

SolarisTM for ISPsTM 使用 SunTM Directory Services 為 SunTM Internet AdministratorTM 和一些服務儲存元件軟體資訊及登入資訊。這一份資訊包含了標準物件類別和支援 Solaris for ISPs 功能新定義的物件。

這一章提供了 Solaris for ISPs 資訊樹狀結構,從指令行在樹狀中製作登錄,以及需要的存取權控制的資訊。針對機制延伸本身的資訊,請參閱第 6章, Solaris for ISPs 目錄服務機制

Sun Directory Services 提供下列工具來使用及管理目錄:

Sun Directory Services 書籍,Sun Directory Service 3.1 管理手冊Sun Directory Service 3.1 使用者手冊, 包含了啟動及使用這些工具的完整資訊。在 CD-ROM 產品中的 AnswerBook2 提供這些資訊。指令行程式的文件在線上援助頁的第一節 (/opt/SUNWconn/man)。

Solaris for ISPs 目錄結構

Solaris for ISPs 在目錄資訊樹狀 (DIT) 需要一個特定的結構,它是在安裝及配置時建立的。所需的結構是由兩種命名內文組成,參照為「開放式系統網際連接」(OSI),「樹狀和領域元件」(DC) 樹狀。 兩種樹狀的部份是平行的。這種平行結構有助於領域名稱從一個 DNS 要求透過 DC 樹狀對應到 OSI 樹狀中實際的內容登錄。

OSI 樹狀結構

OSI 樹狀包含了 Solaris for ISPs 的實際登錄,它的元件服務、服務的管理者及服務的使用者。需要的結構顯示如圖 圖 5-1

圖 5-1 Solaris for ISPs OSI 樹狀

Graphic

在 OSI 樹狀中,領域 sun.com 的登錄是以登錄與區別名稱 o=sun,c=us 表示。這個登錄稱為root 領域,並且表示 Solaris for ISPs 客戶的職業。您要在安裝目錄服務時指定 root 領域的名稱。

在 root 領域之下是四個必要的organizationalUnit登錄:

群組, 及服務節點在每個您定義的領域登錄下是必要的。管理者節點只存在於 root 領域下。

圖 5-2圖示在每個組織單位下典型的登錄集。

圖 5-2 OSI 樹狀登錄

Graphic

organizationalUnit登錄eng是一個領域登錄範例。這可能是 ISP 的公司客戶,或是任何對 ISP 有虛擬領域主機服務的人。領域必須有兩個登錄: 一個在 OSI 樹狀以及另外一個在 DC 樹狀,用於領域名稱對應。請參閱"建立領域登錄"針對適當的建立這兩個登錄的資訊。

像 root 領域,領域必須要有某些organizationalUnit登錄在內。像顯示在圖 5-3群組, 和服務登錄也是在 root 下領域所必要的。

圖 5-3 在 OSI 樹狀中的領域結構

Graphic

當在 OSI 樹狀中建立一個領域登錄時,您也必須建立登錄給群組服務。當您為此領域配置服務時, 服務登錄是製作在服務組織單位之下。 這個領域的使用者資訊格式ispSubscriber登錄在組織單位之下。


註解 -

在這一版的 Solaris for ISPs 中,管理者登錄只有製作在 root 領域之下。當您透過 GUI 設定登錄時,Sun Internet Administrator 會建立這些登錄。


DC 樹狀結構

DC (領域元件) 樹狀對應領域名稱格式 (例如,sun.com) 到 OSI 樹狀中相對應登錄的區別名稱。如顯示在圖 5-4,DC 通常比較明顯而且比 OSI 樹狀單純。

圖 5-4 Solaris for ISPs DC 樹狀

Graphic

圖 5-4中,登錄 dc=sun,dc=com 對應到 OSI 樹狀中的 o=sun,c=us 登錄。在此的eng領域從 eng.sun.com 對應到領域名稱伺服器 (DNS) 。

針對如何製作兩個領域登錄的詳細資訊,請參閱"建立領域登錄"

從指令行製作目錄登錄

如何建立目錄服務登錄的一般資訊是在Sun Directory Service 3.1 管理手冊第五章,“載入及維護目錄資訊”。這一節介紹如何建立 Solaris for ISPs 需要的特定登錄的指示。

針對如何利用 Deja 工具建立目錄登錄的資訊,請參閱 SunTM Internet AdministratorTM 線上解說。

建立目錄登錄: 一般程序

Sun Directory Services 有下列的指令行公用程式用來建立和修改目錄登錄:

這些目錄服務指令行公用程式需要 root 存取權。在參考文件手冊頁 (第一節)有完整的資訊。

ldapaddldapmodify兩者都可以從指令行或設定的檔案獲得輸入。因為登錄的資訊可能冗長及複雜,隨後的區段會描述需要文字檔案的格式。

在每個條件中,建立一個登錄 (或是多個登錄) 需要下列步驟:

  1. 寫一個檔案設定登錄要在目錄中製作。這個檔案的格式設定在參考文件手冊頁的ldif(4)

  2. 獲得 root 存取權並且用ldapadd建立登錄,用登錄資訊設定檔案。

在每個條件中,ldapadd指令格式應該為:

# ldapadd -D "BindDN" -w 密碼 -f 檔案

其中BindDN是鏈結到目錄與寫入存取權到目錄樹狀的這個部份的區別名稱 (DN) ,密碼則是鏈結密碼。替換檔案選項為您建立ldif檔案的名稱。

ldif(4)檔案的結構

對每一個您增加在指令行的登錄,您會建立一個ldif格式檔案以便保留有關登錄的資訊。這些是簡單的文字檔案帶有一或多個目錄登錄,每個登錄以單一空白行區隔。每個登錄有它的結構: 下列是範例。


註解 -

只有指示屬性會在範例中顯示。大部份的物件類別有數個選擇性的屬性,對您特殊登錄的使用設定比較適當。


dn: ou=wcgate1,ou=eng,o=sun,c=US 
ou: wcgate1 
associateddomain: wcgate1.eng.sun.com 
objectclass: organizationalUnit 
objectclass: domainRelatedObject

其中

dn

表示所建立登錄的區別名稱。

ou

是所建立登錄的命名屬性。普通命名屬性包括commonNameorganizationalUnit(ou),和domainComponent(dc)。

associatedDomain

包含在 DC 樹狀中相對應的領域名稱 (以點為符號)。請參閱"Solaris for ISPs 目錄結構"有關 OSI 樹狀如何與 DC 樹狀交談的資訊。請參閱"建立領域登錄"有關給領域建立兩個交叉參考登錄的資訊

可能有許多屬性:值成對在這個位置,一行一個。

objectClass

是登錄的物件類別 (形態)。可能有許多objectClass登錄,這個範例顯示兩個。

針對可用物件類別和屬性的詳細資訊,請參閱本指南的第 6章, Solaris for ISPs 目錄服務機制,和第八章,“ 配置目錄機制,”在Sun Directory Service 3.1 管理手冊

建立領域登錄

要在目錄中建立一個領域,您必須建立兩個平行領域登錄,一個在 OSI 樹狀另一個在 DC 樹狀,然後在 OSI 樹狀中的領域登錄之下建立必要的organizationalUnit登錄。

要在 eng.sun.com 之下建立領域wcgate1,請執行下列步驟:

  1. 編輯一個文字檔案(例如,domain.ldif)並輸入 OSI 樹狀登錄的資料:

    dn: ou=wcgate1,ou=eng,o=sun,c=US 
    ou: wcgate1 
    associateddomain: wcgate1.eng.sun.com 
    objectclass: organizationalUnit 
    objectclass: domainRelatedObject 

    要注意登錄的associatedDomain屬性包含了以點為符號 ( DNS 樣式) 的DC 樹狀登錄名稱。

  2. 為 DC 樹狀登錄新增到domain.ldif的資料:

    dn: dc=wcgate1,dc=eng,dc=sun,dc=com 
    dc: wcgate1
    associatedname: ou=wcgate1,ou=eng,o=sun,c=US 
    描述: 針對 wcgatel.eng.sun.com 的 DNS 對 DN 對應 
    labeleduri: ldap:///ou=wcgate1,ou=eng,o=sun,c=US??sub 
    objectclass: 領域 
    objectclass: labeledURIObject

    要注意登錄的associatedName屬性包含了 OSI 樹狀登錄的區別名稱。labeledURI屬性包含一樣的資訊 ( 與 RFC 2255 中設定的一樣)。

  3. 新增到domain.ldif的資料給所需要的服務組織單位登錄:

    dn: ou=223 服務,ou=wcgate1,ou=eng,o=sun,c=US 
    ou: 服務 
    objectclass: organizationalUnit
  4. 新增到domain.ldif的資料給所需要的組織單位登錄:

    dn: ou=人,ou=wcgate1,ou=eng,o=sun,c=US 
    ou: 人 
    objectclass: organizationalUnit 
  5. 新增到domain.ldif的資料給所需要的群組組織單位登錄:

    dn: ou=群組,ou=wcgate1,ou=eng,o=sun,c=US 
    ou: 群組 
    objectclass: organizationalUnit
  6. 儲存並關閉domain.ldif

  7. 以下列指令獲得 root 存取權並在目錄新增登錄,以您自己所有的替換結合 DN 及密碼:

    # ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f domain.ldif

當您的ldapadd完成時,目錄看起來像圖 5-5

圖 5-5 領域增加的目錄結構

Graphic

建立使用者登錄

Solaris for ISPs 使用者來自多種組合:

在接下來幾節中,提供了藉由建立簡單登錄以便加入並建立複雜使用者登錄的指示。

建立基本使用者登錄

在您建立使用者登錄之前,領域及組織單位登錄必須存在。一旦您建立那些登錄,您可以編輯一個文字檔案 (例如,people.ldif) 並且輸入使用者的資料。基本的使用者登錄有單一物件類別ispSubscriber,及少數的指示屬性。基本使用者檔案看起來像:

dn: cn=Jane Doe (jldoe),ou=人,ou=wcgate1,ou=eng,o=sun,c=US 
commonname: Jane Doe (jldoe) 
sn: Doe
uid: jldoe 
userpassword: 隱藏 
objectclass: ispSubscriber 

其中

dn

是使用者登錄的區別名稱。

commonName

是一個使用者登錄 (ispSubscriber物件類別)的命名屬性。針對 Solaris for ISPs 使用者及管理者而言,commonName屬性的值得自於名字 姓氏 (userid)。

sn

是使用者的姓氏。

uid

是使用者的登入名稱。

userPassword

是密碼,如果您和 UNIX 帳戶共用密碼資訊,則限制為八個字元。這個值是用您在目錄服務管理主控台設定的加密方法所產生的。

objectClass: ispSubscriber

是這個使用者登錄的物件類別形態。

您可以藉由在檔案以不同的屬性值增加資料區塊來建立任何數量的使用者登錄。當完成時,請儲存並關閉people.ldif。以下列指令獲得 root 存取權並且在目錄增加使用者登錄,以您自己所有的替換結合 DN 及密碼:

# ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f people.ldif

增加 FTP 和全球資訊網虛擬主機資訊

SunTM Internet FTP ServerTM 和 SunTM WebServerTM (SWS) 中可使用的特殊配置之虛擬主機所需的資訊,只在資料檔案增加三個屬性:

gidnumber: 60001 
uidnumber: 60001 
ispcontentdirectory: jldoe

其中

gidNumber

是設定給這個使用者在 FTP 和全球資訊網服務虛擬主機領域的 UNIX 群組 ID 。

uidNumber

是設定給這個使用者在 FTP 和全球資訊網服務虛擬主機領域的 UNIX 群組 ID。

ispContentDirectory

是這個使用者的內容檔案所在的位置 (對應到關聯的領域文件根) 。


註解 -

設定uidNumbergidNumber屬性的值需要現存的 UNIX 帳戶適當設定對虛擬 FTP 領域共用存取權。請參閱 Sun Internet FTP Server 線上解說針對定義虛擬主機配置的資訊。


您可以藉由在檔案以不同的屬性值增加資料區塊來建立任何數量的使用者登錄。當完成時,請儲存並關閉people.ldif。以下列指令獲得 root 存取權並且在目錄增加使用者登錄,以您自己所有的替換結合 DN 及密碼:

# ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f people.ldif

如果您已經建立好這些登錄,您必須執行一個ldapmodify。尋找手冊頁的ldapmodify(1)並跟隨指示。

增加遠程使用者資訊

針對一個透過 RADIUS 伺服器獲得 ISP 服務存取權的使用者,其登錄必須支援其他的物件類別 (remoteUser) 並且有幾個屬性增加到登錄資訊。


註解 -

內定 Solaris for ISPs 配置指定 root 領域為 RADIUS 使用者登錄的搜尋基礎。如果您有不同的配置,可以利用目錄服務管理主控台配置 RADIUS 並輸入適用您搜尋基礎的值。


ldif檔案中其他行是:

objectclass: remoteUser
authsuffixname: @ispxpress
grpcheckinfo: authSuffixName
grpcheckinfo: userPassword
authserviceprotocol: Framed-User
framedrouting: None
framedprotocol: PPP
grpreplyinfo: authServiceProtocol
grpreplyinfo: framedProtocol
grpreplyinfo: framedRouting 

其中

objectClass: remoteUser

針對利用 RADIUS 伺服器存取服務的使用者是必要的物件類別。

authsuffixname: @ispxpress

是加在使用者的使用者名稱的字尾,以便 RADIUS 伺服器在不同領域中辨識有相同uid的登錄。對特定的使用者輸入適當的字尾。

grpcheckinfo: authSuffixName

指示 RADIUS 伺服器在選取登錄作辨證之前要先確認authSuffixName屬性值。

grpcheckinfo: userPassword

指示 RADIUS 伺服器在選取登錄作辨證之前要先確認userPassword屬性值。

authserviceprotocol: Framed-User

如果您使用內定 RADIUS 配置,請完全按照所示輸入這屬性。正確的值是由您網路存取權伺服器的配置所決定。

framedrouting: None

如果您使用內定 RADIUS配置,請完全按照所示輸入這屬性。正確的值是由您網路存取權伺服器的配置所決定。

framedprotocol: PPP

如果您使用內定 RADIUS 配置,請完全按照所示輸入這屬性。正確的值是由您網路存取權伺服器的配置所決定。

grpreplyinfo: authServiceProtocol

告訴 RADIUS 伺服器在它的回覆訊息包含authServiceProtocol屬性的值。

grpreplyinfo: framedProtocol

告訴 RADIUS 伺服器在它的回覆訊息包含framedProtocol屬性的值。

grpreplyinfo: framedRouting

告訴 RADIUS 伺服器在它的回覆訊息包含framedRouting屬性的值。

您可以藉由在檔案以不同的屬性值增加資料區塊來建立任何數量的使用者登錄。當完成時,請儲存並關閉people.ldif。以下列指令獲得 root 存取權並且在目錄增加使用者登錄,以您自己所有的替換結合 DN 及密碼:

# ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f people.ldif

如果您已經建立這些登錄,您必須執行一個ldapmodify。尋找手冊頁的ldapmodify(1)並跟隨指示。

完整ldif檔案

對一個複合使用者而言完整的ldif檔案看起來像:

dn: cn=Jane Doe (jldoe),ou=人,ou=wcgate1,ou=eng,o=sun,c=US 
commonname: Jane Doe (jldoe) 
sn: Doe
uid: jldoe 
userpassword: 隱藏 
gidnumber: 60001 
uidnumber: 60001 
objectclass: ispSubscriber 
objectclass: remoteUser
ispcontentdirectory: /home/users/jldoe
authsuffixname: @ispxpress
grpcheckinfo: authSuffixName
grpcheckinfo: userPassword
authserviceprotocol: Framed-User
framedrouting: 無
framedprotocol: PPP
grpreplyinfo: authServiceProtocol
grpreplyinfo: framedProtocol
grpreplyinfo: framedRouting 

建立群組登錄

在您建立群組登錄之前,若干的登錄必須存在:

一旦您建立了那些登錄,您可以啟動一個文字檔 (例如,groups.ldif) 並且輸入群組的資料。典型的資料集如下:

dn: cn=isp-gp1,ou=群組,ou=wcgate1,ou=eng,o=sun,c=US 
cn: isp-grp1
objectclass: groupOfNames
成員: cn=Ed Anchor (定錨點),ou=人,ou=wcgate1,ou=eng,o=sun,c=US
成員: cn=April Shower (顯示者),ou=人,ou=wcgate1,ou=eng,o=sun,c=US
成員: cn=Chili Jones (relleno),ou=人,ou=wcgate1,ou=eng,o=sun,c=US

其中

dn

是所建立群組的區別名稱。

cn

是群組登錄的相對區別名稱。

objectClass

物件類別groupOfNames識別這個形態的登錄。

成員

每個成員屬性是以現存的使用者登錄的區別名稱為值。

您可以藉由在檔案增加資料來建立任何數量的群組登錄。當完成時,請儲存並關閉groups.ldif。以下列指令獲得 root 存取權並且在目錄增加群組,以您自己所有的替換結合 DN 及密碼:

# ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f groups.ldif

Solaris for ISPs 存取權控制

Solaris for ISPs 為目錄服務設定存取權控制,以確保由確認安全性防止它人存取的軟體部份適當存取。這些存取權控制的主要用意是在限制寫入權時,所有的實體有讀取存取權。重要的是您不用變更現有的存取權控制,或是您可能導入安全性風險或導致 Solaris for ISPs 失敗。

請記住,存取權控制規則是次序有別的。當 Sun Directory Services 檢查存取權時,會使用第一個可應用於要求的規則。其餘的規則會被略過。因此,不要變更檔案中規則的次序。當建立一個新規則時,要小心別應用到現有的 Solaris for ISPs 資訊並且使一些現有的存取權控制失效。


註解 -

如果您以管理者身份結合到目錄,存取權控制檢查會關閉。


一般來說,對 Solaris for ISPs 的特殊資訊是儲存在 Solaris for ISPs 機制延伸所定義的登錄支援物件類別。這些類別的名稱開頭都是字串“isp.”在存取權配置檔案中的任何包含類似物件類別 (或屬性) 的規則就可能是一個Solaris for ISPs規則,也因而對任何變更都有分別。存取權控制規則定義在/etc/opt/SUNWconn/ldap/current/dsserv.acl.conf

針對 Sun Directory Services 存取權控制的完整資訊,請參閱第一章,“ 目錄觀念介紹,”和第四章,“配置一個目錄伺服器,”在Sun Directory Service 3.1 管理手冊

下列幾節是描述由 Solaris for ISPs 存取權控制保護的一般行為。片語“has access”指示與登錄的 DN 及密碼結合到目錄會給予存取權的指示格式。

規則啟動 Sun Internet Administrator 功能

Sun Internet Administrator 需要下列種類的存取權來工作:

規則啟動服務功能

各種 Solaris for ISPs 服務都需要記錄及存取儲存在它們的服務登錄之下的配置資訊 (那些位在子領域和虛擬領域中服務節點之下的登錄)。因此,每個在 DIT 部份都有它需要寫入建立及修改登錄的存取權和資訊,包括它自己的服務登錄。

規則啟動適當的使用者存取權

使用者 (使用者及管理者) 對他們的密碼屬性有寫入存取權,但無法變更登錄的其他部份。但是,任何對 Sun Internet Administrator 有管理存取權的管理者擁有整體存取權並且可以變更任何登錄。