Sun Java System Application Server Enterprise Edition 8.1 2005Q2 管理指南

安全性簡介

安全性實質上就是資料保護:如何在儲存或傳輸資料時防止對資料進行未授權的存取或紐a。Application Server 具有基於 J2EE 標準的動態可延伸安全性架構。它內置的安全性功能包括密碼學、認證與授權以及公開金鑰基礎架構。Application Server 是基於 Java 安全性模型建置的,該安全性模型使用了一個沙箱,應用程式可以在沙箱中安全地執行,而不會給系統或使用者帶來潛在的危險。本節論述以下主題:

瞭解應用程式和系統安全性

從廣泛意義上講,應用程式安全性有兩種:

除了應用程式安全性以外,還有影響 Application Server 系統中所有應用程式的系統安全性

程式安全性受應用程式開發者的控制,因此本文件不對其進行論述;宣告性安全性受應用程式開發者的控制要少一些,本文件中只偶爾涉及到宣告性安全性。本文件主要針對系統管理員,因此主要論述系統安全性。

管理安全性的工具

Application Server 提供了以下用於管理安全性的工具:

Java 2 Platform, Standard Edition (J2SE) 提供了兩個用於管理安全性的工具:

如需有關使用 keytoolpolicytool 和其他 Java 安全性工具的更多資訊,請參閱位於以下位置的「Java 2 SDK Tools and Utilities」:http://java.sun.com/j2se/1.4.2/docs/tooldocs/tools.html#security

在 Enterprise Edition 中,還可以使用另外兩個實作網路安全服務 (NSS) 的工具來管理安全性。如需有關 NSS 的更多資訊,請至 http://www.mozilla.org/projects/security/pki/nss/。用於管理安全性的工具包括:

如需有關使用 certutilpk12util 和其他 NSS 安全性工具的更多資訊,請參閱位於以下位置的「NSS Security Tools」:http://www.mozilla.org/projects/security/pki/nss/tools

管理密碼安全性

在 Application Server 的此發行版本中,包含特定網域規格的 domain.xml 檔案最初包含純文字形式的 Sun Java System Message Queue 代理程式密碼。domain.xml 檔案中包含此密碼的元素為 jms-host 元素的 admin-password 屬性。由於在安裝期間不能變更此密碼,因此它不會對安全性產生很大的影響。

但是,您可以使用 管理主控台 增加使用者和資源,並為這些使用者和資源指定密碼。部分密碼將以純文字形式寫入 domain.xml 檔案,例如用於存取資料庫的密碼。將這些純文字形式的密碼保存在 domain.xml 檔案中可能會破壞安全性。透過執行以下程序,您可以加密 domain.xml 中的任何密碼,包括 admin-password 屬性或資料庫密碼。

Procedure加密 domain.xml 中的密碼

  1. domain.xml 檔案常駐的目錄 (依預設,此目錄為 domain-dir/config) 中,執行以下 asadmin 指令:


    asadmin create-password-alias --user admin alias-name
    

    例如,


    asadmin create-password-alias --user admin jms-password

    螢幕將顯示輸入密碼提示 (在本範例中為 admin)。請參閱 create-password-aliaslist-password-aliasesdelete-password-alias 指令的線上手冊,以取得更多資訊。

  2. 移除並替代 domain.xml 中的密碼。使用 asadmin set 指令可以完成此作業。使用 set 指令實現此目的的範例如下:


    asadmin set --user admin server.jms-service.jms-host.
    default_JMS_host.admin-password=${ALIAS=jms-password}
  3. 重新啟動相關網域的 Application Server。

保護具有編碼密碼的檔案

某些檔案包含需要使用檔案系統許可權進行保護的編碼密碼。這些檔案包括:

Procedure變更主密碼

主密碼 (MP) 是全局性的共用密碼。它從不用於認證,也從不會在網路上傳輸。此密碼是全局安全性的要塞點;使用者可以選擇在需要時手動輸入此密碼,也可以將其隱藏在檔案中。它是系統中最敏感的資料。使用者可以透過移除此檔案強制系統提示輸入 MP。變更主密碼後,系統會將其重新儲存到主密碼金鑰存放區中。

  1. 停止網域的 Application Server。使用 asadmin change-master-password 指令會提示輸入舊密碼和新密碼,然後重新加密所有附屬項目。例如,


    asadmin change-master-password>
    Please enter the master password>
    Please enter the new master password>
    Please enter the the new master password again>
  2. 重新啟動 Application Server。


    注意 – 注意 –

    此時,不能啟動正在執行的伺服器實例並且不能重新啟動正在執行的伺服器實例,除非已變更這些實例所對映的節點代理程式上的 SMP。如果在變更伺服器實例的 SMP 之前重新啟動了該伺服器實例,它將無法啟動。


  3. 一次停止一個節點代理程式及其相關伺服器。再次執行 asadmin change-master-password 指令,然後重新啟動節點代理程式及其相關伺服器。

  4. 繼續對下一個節點代理程式執行這些步驟,直到對所有節點代理程式均已執行這些步驟。這樣可以完成輪替變更。

Procedure變更管理員密碼

管理密碼安全性中論述了如何加密管理員密碼。強烈建議您加密管理員密碼。若要在加密管理員密碼之前變更管理員密碼,請使用 asadmin set 指令。使用 set 指令實現此目的的範例如下:


asadmin set --user admin 
server.jms-service.jms-host.default_JMS_host.admin-password=new_pwd

還可以使用 管理主控台 變更管理員密碼,如以下程序所示。

  1. 在 管理主控台 樹形元件中,展開 [配置] 節點。

  2. 選取要配置的實例:

    • 若要配置特定實例,請展開該實例的配置節點。例如,對於預設實例 server,請展開 [server-config] 節點。

    • 若要為所有實例配置預設設定,請展開 [default-config] 節點。

  3. 展開 [安全性] 節點。

  4. 展開 [範圍] 節點。

  5. 選取 [admin-realm] 節點。

  6. 在 [編輯範圍] 頁面中,按一下 [管理使用者] 按鈕。

  7. 選取名為 admin 的使用者。

  8. 輸入新密碼並確認密碼。

  9. 按一下 [儲存] 以儲存新密碼,或者按一下 [關閉] 以關閉頁面而不儲存新密碼。

指定安全性職責

將為以下角色指定安全性職責:

應用程式開發人員

應用程式開發者負責:

應用程式部署者可以使用 deploytool 等工具編輯應用程式部署描述元。「The J2EE 1.4 Tutorial」中的「Security」一章詳細論述了這些安全性作業,您可以從以下 URL 中檢視該指導文件:http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html

應用程式部署人員

應用程式部署人員負責:

應用程式部署者可以使用 deploytool 等工具編輯應用程式部署描述元。「The J2EE 1.4 Tutorial」中的「Security」一章詳細論述了這些安全性作業,您可以從以下 URL 中檢視該指導文件:http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html

系統管理員

系統管理員負責:

系統管理員使用 管理主控台 管理伺服器安全性設定,並使用 certutil 管理憑證。本文件主要適用於系統管理員。