Sun Java System Web Proxy Server 4.0.4 管理指南

設定用戶端安全性需求

執行所有步驟保護伺服器的安全性之後,即可為用戶端設定其他安全性需求。

用戶端認證對於 SSL 連線並非必要,但卻能加強確保加密資訊能傳送給正確的收件人。您可以在反向代理伺服器中使用用戶端認證,以確定您的內容伺服器不會與未經授權的代理伺服器或用戶端共用資訊。

本小節包含下列主題:

要求用戶端認證

您可以為 Administration Server 和每個伺服器實例啟用偵聽通訊端,以要求用戶端認證。啟用用戶端認證時,需要提供用戶端憑證,然後伺服器才能針對查詢傳送回應。

Proxy Server 支援的用戶端憑證認證方式,是將用戶端憑證中的 CA,與可信任 CA (能簽署用戶端憑證) 加以比對。您可以藉由 [Security] 標籤,在 [Manage Certificates] 頁面上檢視可信任 CA (能簽署用戶端憑證) 的清單。

您可以對 Proxy Server 進行配置,拒絕不具有來自可信任 CA 用戶端憑證的所有用戶端。若要接受或拒絕信任的 CA,必須為 CA 設定用戶端信任。如需更多資訊,請參閱管理憑證

若憑證已過期,Proxy Server 會記錄錯誤、拒絕憑證並向用戶端傳回訊息。您也可以在 [Manage Certificates] 頁面上檢視哪些憑證已經過期。

您可以對伺服器進行配置,以便從用戶端憑證收集資訊並使其與 LDAP 目錄中的使用者項目匹配。此程序可以確定用戶端具有有效的憑證,且在 LDAP 目錄中有對應項目。而且還可以確定用戶端憑證與 LDAP 目錄中的憑證相匹配。若要瞭解如何執行此操作,請參閱將用戶端憑證對映到 LDAP

您可以將用戶端憑證和存取控制結合使用,以便除了來自可信任的 CA 以外,與憑證關聯的使用者還必須與存取控制規則 (ACL) 相匹配。如需更多資訊,請參閱使用存取控制檔案

Procedure申請用戶端認證

  1. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Preferences] 標籤。

  2. 按一下 [Edit Listen Sockets] 連結。

  3. 按一下要求用戶端認證的偵聽通訊端連結。

  4. 使用 [Client Authentication] 下拉式清單要求針對偵聽通訊端進行用戶端認證,然後按一下 [OK]。

反向代理伺服器中的用戶端認證

在反向代理伺服器中,您可以根據下列任一分析藍本配置用戶端認證:

如需有關如何配置這些分析藍本的資訊,請參閱在反向代理伺服器中設定用戶端認證

在反向代理伺服器中設定用戶端認證

安全反向代理伺服器中的用戶端認證可以進一步確保連線的安全。下列指示說明如何根據所選擇的分析藍本配置用戶端認證。


備註 –

每個分析藍本都假設您同時具有安全的用戶端至代理伺服器連線,以及代理伺服器至內容伺服器連線。


Procedure配置 Proxy-Authenticates-Client 分析藍本

  1. 請依照第 14 章, 使用反向代理伺服器中「設定反向代理伺服器」的指示,配置安全的用戶端至代理伺服器以及安全的代理伺服器至內容伺服器分析藍本。

  2. 從 Server Manager 存取伺服器實例,然後按一下 [Preferences] 標籤。

  3. 按一下 [Edit Listen Sockets] 連結,然後在所顯示的表格中,按一下所需偵聽通訊端的連結。

    (使用 [Add Listen Socket] 連結可配置和增加偵聽通訊端。)

  4. 指定用戶端認證需求:

    1. 若要允許具有有效憑證之所有使用者進行存取,請執行下列操作:

      在 [Security] 區段中,使用 [Client Authentication] 設定來要求對此偵聽通訊端進行用戶端認證。如果尚未安裝伺服器憑證,則不會顯示此設定。

    2. 若要僅允許具有有效憑證,且在存取控制中指定為可接受使用者的使用者進行存取,請執行下列操作:

      1. 在 [Security] 區段中,保持 [Client Authentication] 設定為關閉狀態。如果尚未安裝伺服器憑證,則不會顯示此設定。

      2. 在此伺服器實例的 Server Manager [Preferences] 標籤上,按一下 [Administer Access Control] 連結。

      3. 選取 [ACL],然後按一下 [Edit] 按鈕。

        此時會顯示 [Access Control Rules For] 頁面 (若出現提示則請先認證)。

      4. 開啟存取控制 (若尚未選取 [Access control Is On] 核取方塊,請加以選取)。

      5. 將 Proxy Server 設定為以反向代理伺服器身份進行認證。

        如需更多資訊,請參閱設定反向代理伺服器

      6. 在所需的存取控制規則上按一下 [Rights] 連結,於下方框架內指定存取權限,然後按一下 [Update] 更新此項目。

      7. 按一下 [Users/Groups] 連結。在下方框架中,指定使用者和群組、選取 SSL 做為認證方法,然後按一下 [Update] 更新此項目。

      8. 在上方框架中按一下 [Submit] 以儲存項目。

        如需有關設定存取控制的更多資訊,請參閱第 8 章, 控制對伺服器的存取

Procedure配置 Content Server-Authenticates-Proxy 分析藍本

  1. 請依照設定反向代理伺服器中的指示,配置安全的用戶端至代理伺服器以及安全的代理伺服器至內容伺服器分析藍本。

  2. 在內容伺服器上開啟用戶端認證。

    您可以修改此分析藍本,建立用戶端與 Proxy Server 之間的不安全連線,以及與內容伺服器的安全連線,這樣內容伺服器便會對此 Proxy Server 進行認證。若要執行上述操作,必須關閉加密功能,並要求代理伺服器僅依照以下所述的程序初始化憑證。

Procedure配置 Proxy-Authenticates-Client and Content Server-Authenticates-Proxy 分析藍本

  1. 請依照配置 Proxy-Authenticates-Client 分析藍本中的指示,配置 Proxy-Authenticates-Client 分析藍本。

  2. 在內容伺服器上開啟用戶端認證。

將用戶端憑證對映到 LDAP

本小節說明 Proxy Server 採用何種程序,將用戶端憑證對映至 LDAP 目錄中的項目。將用戶端憑證對映至 LDAP 之前,還必須配置必要的 ACL。如需更多資訊,請參閱第 8 章, 控制對伺服器的存取

伺服器收到來自用戶端的請求時,會在處理前索取用戶端的憑證。某些用戶端會在向伺服器傳送申請的同時傳送用戶端憑證。

伺服器將嘗試檢視該 CA 是否與 Administration Server 中的某個可信任 CA 匹配。如果不存在相符的項目,Proxy Server 將會結束連線。如果存在相符的項目,伺服器將繼續處理請求。

伺服器驗證憑證是來自可信任的 CA 之後,便會透過執行下列操作將憑證對映至 LDAP 項目:

伺服器使用憑證對映檔案 (稱為 certmap.conf) 來確定 LDAP 搜尋的執行方式。對映檔案將告知伺服器要採用用戶端憑證中的哪些值,如一般使用者名稱、電子郵件地址等。伺服器將使用這些值來搜尋 LDAP 目錄中的使用者項目,但伺服器必須先確定要從 LDAP 目錄中的何處開始搜尋。憑證對映檔案也會告訴伺服器開始搜尋的位置。

一旦伺服器知道從何處開始搜尋以及所搜尋的內容之後,便會在 LDAP 目錄 (第二個點) 中執行搜尋。如果找不到任何相符項目或找到多個相符項目,並且設定對映必須驗證憑證,則搜尋將會失敗。

下表列出了預期的搜尋結果運作方式。您可以在 ACL 中指定預期的運作方式。例如,您可以指定找不到相符憑證時,Proxy Server 就只接受您。如需有關如何設定 ACL 喜好設定的更多資訊,請參閱使用存取控制檔案

表 5–1 LDAP 搜尋結果

LDAP 搜尋結果 

憑證驗證「開啟」 

憑證驗證「關閉」 

未找到項目 

認證失敗 

認證失敗 

恰好找到一個項目 

認證失敗 

認證成功 

找到多個項目 

認證失敗 

授權失敗 

伺服器在 LDAP 目錄中找到相符的項目和憑證之後,即可使用該資訊處理作業事件。例如,某些伺服器使用憑證到 LDAP 的對映來確定對某個伺服器的存取權限。

使用 certmap.conf 檔案

憑證對映用於確定伺服器在 LDAP 目錄中查找使用者項目的方式。您可以使用 certmap.conf 檔案來配置將憑證 (依名稱指定) 對映至 LDAP 項目的方式。您可以編輯此檔案並增加項目,以便與 LDAP 目錄的組織相符,並列出您希望使用者擁有的憑證。您可根據 subjectDN 中所使用的使用者 ID、電子郵件地址或其他值,對使用者進行認證。特別是,對映檔案可定義以下資訊:

憑證對映檔案位於以下位置:

server-root/userdb/certmap.conf

該檔案包含了一個或多個已命名對映,每個對映都套用於不同的 CA。對映具有下列語法:

certmap name issuerDNname :property [ value]

第一行用於指定項目的名稱以及形成 CA 憑證中區別名稱的屬性。name 為任意名稱,可依照您的喜好加以定義。不過,issuerDN 必須與核發用戶端憑證之 CA 的核發者 DN 完全相符。例如,以下兩個核發者 DN 行僅在分隔屬性的空格上有所差異,但伺服器將其視為兩個不同的項目:

certmap sun1 ou=Sun Certificate Authority,o=Sun,c=UScertmap sun2 ou=Sun Certificate Authority, o=Sun, c=US


備註 –

如果您使用的是 Sun Java System Directory Server,在確定核發者 DN 符合情況遇到問題時,請檢查 Directory Server 錯誤記錄以取得有用的資訊。


已命名對映中的第二行和隨後的行可以使屬性與值相匹配。certmap.conf 檔案具有六項預設特性。您也可以使用憑證 API 來自訂特性。預設特性為:

表 5–2 x509v3 憑證的屬性

屬性 

說明 

c

國家/地區 

o

組織 

cn

共用名稱 

l

位置 

st

狀態 

ou

組織單元 

uid

UNIX/Linux 使用者 ID 

email

電子郵件地址 

如需有關這些特性的更多資訊,請參閱對映範例中所述範例。

建立自訂特性

用戶端憑證 API 可用來建立您自己的特性。建立自訂對映後,就可以參照以下格式的對映:

name:library path_to_shared_libraryname :InitFN name_of_ init_function

例如︰

certmap default1 o=Sun Microsystems, c=US default1:library /usr/sun/userdb/plugin.so default1:InitFn plugin_init_fn default1:DNComps ou o c default1:FilterComps l default1:verifycert on

對映範例

certmap.conf 檔案中應至少包含一個項目。下列範例說明了 certmap.conf 的不同使用方式。

範例 #1 只有一個預設對映的 certmap.conf 檔案

certmap default defaultdefault:DNComps ou, o, cdefault:FilterComps e, uiddefault:verifycert on

以此為例,伺服器在包含 ou=orgunit, o=org, c=country 項目的 LDAP 分支點開始搜尋,其中斜體文字將由用戶端憑證中主體 DN 的值所替代。

然後,伺服器會使用憑證上電子郵件地址和使用者 ID 的值,在 LDAP 目錄中搜尋相符的項目。找到相符的項目時,伺服器會比對用戶端傳送的憑證與儲存在目錄中的憑證,以驗證該憑證。

範例 #2 具有兩個對映的 certmap.conf 檔案

以下範例檔案中包括兩個對映:一個用於預設,另一個用於美國郵政局。

certmap default defaultdefault:DNCompsdefault:FilterComps e, uid

certmap usps ou=United States Postal Service, o=usps, c=USusps:DNComps ou,o,cusps:FilterComps eusps:verifycert on

伺服器收到美國郵政局以外的人傳來憑證時會使用預設對映,該對映會從 LDAP 樹狀結構的頂層開始,搜尋與用戶端電子郵件地址和使用者 ID 相符的項目。如果憑證來自美國郵政服務,則伺服器會從包含組織單位的 LDAP 分支開始搜尋相符的電子郵件地址。此外,伺服器還會驗證該憑證。其他憑證則不加以驗證。


注意 – 注意 –

憑證中的核發者 DN (即 CA 的資訊) 必須與對映第一行中所列的核發者 DN 相同。在前一個範例中,來自核發者 DN (即 o=United States Postal Service,c=US) 的憑證就不相符,因為 DN 中 oc 屬性之間沒有空格。


範例 #3 搜尋 LDAP 資料庫

下列範例使用 CmapLdapAttr 特性在 LDAP 資料庫中搜尋名為 certSubjectDN 的屬性,該屬性的值與用戶端憑證中的整個主體 DN 完全相符。本範例假設 LDAP 目錄中包含具有 certSubjectDN 屬性的項目。

certmap myco ou=My Company Inc, o=myco, c=USmyco:CmapLdapAttr certSubjectDNmyco:DNComps o, c myco:FilterComps mail, uid myco:verifycert on

如果用戶端憑證的主題為:

uid=Walt Whitman, o=LeavesOfGrass Inc, c=US

伺服器將首先搜尋包含以下資訊的項目:

certSubjectDN=uid=Walt Whitman, o=LeavesOfGrass Inc, c=US

如果找到一個或多個匹配的項目,伺服器將繼續驗證各項目。如果找不到相符的項目,伺服器會使用 DNComps FilterComps 來搜尋相符的項目。在本範例中,伺服器會在 o=LeavesOfGrass Inc, c=US 之下的所有項目中搜尋 uid=Walt Whitman