Sun Java System Portal Server 6 Secure Remote Access 管理指南 2004Q2 |
第 2 章
閘道本章說明與閘道相關的概念,與順利執行閘道時所需的資訊。關於配置閘道的資訊,請參閱第 9 章,「配置閘道」。
本章涵蓋下列主題:
閘道簡介閘道在源自網際網路的遠端使用者階段作業與您的企業內部網路之間提供了介面與安全界線。透過單一介面至遠端使用者,閘道可經由內部網路伺服器和應用程式伺服器安全地顯示內容。
建立閘道設定檔閘道設定檔包含與閘道配置相關的所有資訊,例如閘道傾聽的連接埠、SSL 選項與代理伺服器選項。
當您安裝閘道時,如果您選擇預設值,則會建立名為「default」的預設閘道設定檔。與預設設定檔對應的配置檔會出現在:
/etc/opt/SUNWps/platform.conf.default
其中 /etc/opt/SUNWps 是所有 platform.conf.* 檔案的預設位置。
如需關於 platform.conf 檔案之內容的更多訊息,請參閱了解 platform.conf 檔案。
您可以:
建立閘道設定檔
- 以管理員的身份登入 Sun Java System Identity Server 管理主控台。
- 選取「服務配置」標籤。
- 按一下「SRA 配置」下「閘道」旁的箭頭。
閘道頁面會顯示在右邊的窗格中。
- 按一下「新建」。
建立新閘道設定檔頁面會顯示。
- 輸入新閘道設定檔名稱。
- 選取欲使用的設定檔,以在下拉式清單中建立新設定檔。
在預設情況下,您建立的任何新設定檔都是以預先封裝的預設設定檔為基礎。如果您已經建立自訂的設定檔,則可以從下拉清單中選擇該設定檔。新的設定檔會繼承所選設定檔的所有屬性。
- 按一下「建立」。
會建立新的設定檔,而您會回到「閘道」頁面,新的設定檔會列在此處。
- 如果您想要讓變更生效,請使用新的閘道設定檔名稱重新啟動閘道:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
若要配置「閘道」,請參閱第 9 章,「配置閘道」。
了解 platform.conf 檔案platform.conf 檔案依預設值位於:
/etc/opt/SUNWps
platform.conf 檔案包含閘道所需的詳細資訊。本節提供一個範例 platform.conf 檔案,並說明所有的項目。
在配置檔中包含所有機器特定詳細資料的優點,就是共用的設定檔可以被在多個機器上執行的閘道共享。
範例如下:
#
# Copyright 11/28/00 Sun Microsystems, Inc. All Rights Reserved.
# "@(#)platform.conf1.38 00/11/28 Sun Microsystems"
#
gateway.user=noaccess
gateway.jdk.dir=/usr/java_1.3.1_06
gateway.dsame.agent=http://pserv2.iportal.com:8080/sunportal/RemoteConfigServlet
portal.server.protocol=http
portal.server.host=pserv2.iportal.com
portal.server.port=8080
gateway.protocol=https
gateway.host=siroe.india.sun.com
gateway.port=333
gateway.trust_all_server_certs=true
gateway.trust_all_server_cert_domains=false
gateway.virtualhost=siroe1.india.sun.com 10.13.147.81
gateway.virtualhost.defaultOrg=o=root,dc=test,dc=com
gateway.notification.url=/notification
gateway.retries=6
gateway.debug=error
gateway.debug.dir=/var/opt/SUNWps/debug
gateway.logdelimiter=&&
gateway.external.ip=10.12.147.71
gateway.certdir=/etc/opt/SUNWps/cert/portal
gateway.allow.client.caching=true
gateway.userProfile.cacheSize=1024
gateway.userProfile.cacheSleepTime=60000
gateway.userProfile.cacheCleanupTime=300000
gateway.bindipaddress=10.12.147.71
gateway.sockretries=3
gateway.enable.accelerator=false
gateway.enable.customurl=false
gateway.httpurl=http://siroe.india.sun.com
gateway.httpsurl=https://siroe.india.sun.com
gateway.favicon=https://siroe.india.sun.com
gateway.logging.password=ALKJDF123SFLKJJSDFU
portal.server.instance=
gateway.cdm.cacheSleepTime
gateway.cdm.cacheCleanUpTime
表 2-1 列出並說明在 platform.conf 檔中所有的欄位
在 chroot 環境中執行閘道若要在 chroot 環境中提供較高安全性,chroot 目錄內容必須盡可能縮小。例如,如果有任何城市允許使用者修改 chrooted 目錄內的檔案,chrooted 將不會保護伺服器不被攻擊者在 chroot 樹結構下修改檔案。不應該使用解譯語言編寫 CGI 程式,例如 bourne shell、c-shell、korn shell 或 perl,而是應該是編譯的二進位程式以使在 chroot 目錄樹下不會出現解譯器。
安裝 chroot
- 登入為終端機視窗中的根使用者,複製下列的檔案到外部來源,例如網路上的電腦、備份的磁帶或磁碟片。
cp /etc/vfstab external-device
cp /etc/nsswitch.conf external-device
cp /etc/hosts external-device
- 從 mkchroot script 執行:
portal-server-install-root/SUNWps/bin/chroot
注意
在 mkchroot script 在執行開始後無法藉由按下 Ctrl-C 來終止。
在執行 mkchroot script 後若出錯請參閱 mkchroot 腳本執行失敗。
提示您登入不同的根目錄 (new_root_directory)。此程序檔會建立新的目錄。
在下列的實例中,/safedir/chroot 是 new_root_directory。
- 使用下面的指令以手動裝載 platform.conf 檔案中提到的 Java 目錄到 chroot 目錄:
mkdir -p /safedir/chroot/java-dir
mount -F lofs java-dir /safedir/chroot/java-dir
在 Solaris 9 則執行下列動作:
mkdir -p /safedir/chroot/usr/lib/32
mount -F lofs /usr/lib/32 /safedir/chroot/usr/lib/32
mkdir -p /safedir/chroot/usr/lib/64
mount -F lofs /usr/lib/64 /safedir/chroot/usr/lib/64
若要在系統啟動時裝載此目錄,則新增對應的項目於 /etc/vfstab中:
java-dir - /safedir/chroot/java-dir lofs - no -
對於 Solaris 9:
/usr/lib/32 - /safedir/chroot/usr/lib/32 lofs - no -
/usr/lib/64 - /safedir/chroot/usr/lib/64 lofs - no -
- 鍵入下列的指令以重新啟動閘道:
mkchroot 腳本執行失敗
在執行 mkchroot 腳本時發生錯誤事件,腳本將會把檔案復原成初始的狀態。
在下面的範例中,/safedir/chroot 是 chroot 目錄。
如果遇到下面的錯誤訊息:
Not a Clean Exit
- 複製程序安裝 chroot 步驟 1 中的備份檔案到它們原來的位置,並執行下列指令:
umount /safedir/chroot/usr/java1.2
umount /safedir/chroot/proc
umount /safedir/chroot/dev/random
- 移除 /safedir/chroot 目錄。
在 chroot 環境中重新啟動閘道當閘道機器重新開機時,在 chroot 環境中依照這些步驟啟動閘道。
若要在 chroot 環境中重新啟動閘道
建立閘道的多重實例使用 gwmultiinstance 程序檔以建立閘道的新實例。最好在建立閘道設定檔之後執行此程序檔。
- 以 root 使用者身份登入並導覽至以下目錄:
gateway-install-root/SUNWps/bin/
- 執行多重實例程序檔:
./gwmultiinstance
- 選擇下列安裝選項之一:
1) Create a new gateway instance (建立新的閘道實例)
2) Remove a gateway instance (移除一個閘道實例)
3) Remove all gateway instances (移除所有閘道實例)
4) Exit (結束)
如果您選擇 1,則請回答下列問題:
What is the name of the new gateway instance? (新閘道實例的名稱為何?)
What protocol will the new gateway instance use? (此新閘道實例將會使用哪個通訊協定?)[https]
What port will the new gateway instance listen on? (新閘道實例將會在哪個連接埠上傾聽?)
What is the fully qualified hostname of the portal server? (伺服器的完全合格主機名稱為何?)
What port should be used to access the portal server? (應該使用哪個連接埠以存取入口伺服器?)
What protocol should be used to access the portal server? (應該使用哪個通訊協定以存取入口伺服器?)[http]
What is the portal server deploy URI? (什麼是入口伺服器佈署 URI?)
What is the organization DN? (組織的 DN 為何?)[dc=iportal,dc=com]
What is the identity server URI? (識別伺服器 URI 為何?)[/amserver]
What is the identity server password encryption key? (識別伺服器密碼加密金鑰為何?)
Please provide the following information needed for creating a self-signed certificate: (請提供下列所需資訊以建立自簽證書:)
What is the name of your organization? (您的組織名稱為何?)
What is the name of your division? (您的分部名稱為何?)
What is the name of your city or locality? (您的城市或地區名稱為何?)
What is the name of your state or province? (您的州名或省名為何?)
What is the two-letter country code? (您的兩個字母國碼為何?)
What is the password for the Certificate Database? Again? (證書資料庫的密碼為何? 再試一次?)
What is the password for the logging user? Again? (記錄使用者的密碼為何? 再試一次?)
Have you created the new gateway profile in the admin console? (您在管理主控台是否已經建立新的閘道設定檔?)[y]/n
Start the gateway after installation? (安裝後啟動閘道?)[y]/n
- 以新的閘道設定檔名稱啟動閘道的新實例。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
其中 gateway-profile-name 是新的閘道實例。
除了閘道設定檔以外,AMConfig-.instance-name.properties 檔案會建立在 /etc/opt/SUNWam/config 目錄中。
如果 portal.server.instance 特性在 platform.conf 檔案中存在,則對應的 AMConfig-instance-name.properties 檔案會由閘道讀取。如果 portal.server.instance 特性在 platform.conf 檔案中不存在,則預設的 AMConfig 檔案 (AMConfig.properties) 會由閘道讀取。
建立多重介面閘道實例
如果您建立多重介面閘道實例,其為一個 Portal Server 上的多重閘道,您必須修改 platform.conf 檔案如下:
gatewaybindipaddress = 0.0.0.0
使用相同的 LDAP 建立閘道實例
如果您建立的是使用相同 LDAP 的多重閘道實例,在所有隨後的閘道上建立第一個閘道之後:
在 /etc/opt/SUNWam/config/ 中,與閘道第一個安裝的實例同步修改 AMConfig-instance-name.properties 中的下列區域:
- 使用第一個閘道採用的相同字串,替代用來加密與解密密碼的密鑰。
am.encryption.pwd= string_key_specified_in gateway-install
- 替代應用程式認證模組之共用密碼的密鑰。
com.iplanet.am.service.secret= string_key_specified_in gateway-install
- 在 /etc/opt/SUNWam/config/ums 中與 Portal-Identity Server 第一個安裝的實例同步修改 serverconfig.xml 中的下列區域:
<DirDN> cn=puser,ou=DSAME Users,dc=sun,dc=net</DirDN>
<DirPassword>string_key_specified_in gateway-install</DirPassword>
<DirDN>cn=dsameuser,ou=DSAME Users,dc=sun,dc=net</DirDN>
<DirPassword>string_key_specified_in gateway-install </DirPassword>
- 重新啟動 amserver 服務。
啟動和停止閘道在預設情況下,閘道以使用者 noaccess 啟動。
啟動閘道
- 安裝閘道並建立需要的設定檔後,執行下面的指令以啟動閘道:
gateway-install-root/SUNWps/bin/gateway -n default start
default 是在安裝時建立的預設閘道設定檔。您可以稍後建立自己的設定檔,並且用新的設定檔重新啟動閘道。請參閱建立閘道設定檔。
如果您有多閘道實例,請使用:
gateway-install-root/SUNWps/bin/gateway start
此指令會啟動所有在該特定機器上配置的閘道實例。
停止閘道
重新啟動閘道一般而言,您不需要重新啟動閘道。但如果下列事件發生,您就需要重新啟動閘道:
使用不同的設定檔重新啟動閘道
重新啟動「閘道」:
gateway-install-root/SUNWps/bin/gateway -n new-gateway-profile-name start
若要重新啟動閘道
在終端機視窗中,連線為根使用者並執行下列動作之一:
配置閘道監視程式
您可以配置監視程式監視閘道狀態的時間間隔。時間間隔預設為 60 秒。若要變更,在 crontab 中編輯下面的行:
0-59 * * * * gateway-install-root/SUNWps/bin/
/var/opt/SUNWps/.gw.5 > /dev/null 2>&1
請參閱 crontab 的線上說明以配置 crontab 項目。
指定虛擬主機虛擬主機是指向相同機器 IP 和主機名稱的額外主機名稱。例如,如果一個主機名稱 a.b.c 指向主機 IP 位址 192.155.205.133,您可以新增另一個主機名稱 c.d.e 指向相同的 IP 位址。
若要指定虛擬主機
- 以根使用者身份登入並編輯所需閘道實例的 platform.conf 檔:
/etc/opt/SUNWps/platform.conf.gateway-profile-name
- 新增下列項目:
gateway.virtualhost=fully-qualified-gateway-host gateway-ip-address fully- qualified-reverse-proxyhost
gateway.enable.customurl=true (此值的預設值設定為 false。)
- 重新啟動「閘道」:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
如果不指定此值,則閘道會預設回一般的運作方式。
指定代理伺服器以聯絡 Identity Server您可以指定「閘道」用以聯絡 SRA Core 支援 (RemoteConfigServlet) 的主機代理伺服器,該 SRA 支援部署在 Portal Server 上。「閘道」使用此代理伺服器連絡 Portal Server 與 Identity Server。
若要指定代理伺服器
使用 Web 代理伺服器您可以使用協力廠商的 Web 代理伺服器,配置閘道以聯絡 HTTP 資源。網路伺服器位於客戶端與網際網路之間。
Web 代理伺服器配置
不同的代理伺服器可能用於不同的網域和子網域。這些項目告訴閘道在特定的網域中,應該使用哪個代理伺服器以聯絡特定的子網域。指定在閘道中的代理伺服器配置運作方式如下:
關於為網域和子網域配置代理伺服器的資訊,請參閱建立網域與子網域的代理伺服器清單
若要配置「使用代理伺服器」選項,請參閱啟用 Web 代理伺服器的使用
圖 2-1 顯示在閘道服務中,如何在代理伺服器配置的基礎下解決 Web 代理伺服器的訊息。
圖 2-1 Web 代理伺服器管理
在圖 2-1 中,如果「使用代理伺服器」是啟用的,且要求的 URL 列於「請勿使用 Web 代理伺服器 URL」清單中,則閘道會直接連到目標主機。
如果「使用代理伺服器」是啟用的,且要求的 URL 未列於「請勿使用 Web 代理伺服器 URL」清單中,則閘道會透過指定的代理伺服器連到目標主機。此代理伺服器 (如果有指定) 可以從「網域和子網域的代理伺服器」清單中查看。
如果「使用代理伺服器」停用,且請求的 URL 有列於「使用 Web 代理伺服器」清單中,則閘道會使用列在「網域和子網域的代理伺服器」清單中的代理伺服器資訊連接目標主機。
如果「使用代理伺服器」是停用的,且要求的 URL 未列於「請勿使用 Web 代理伺服器 URL」清單中,則閘道會直接連線到目標主機。
如果您的情況不符合上述任何一項,且無法使用直接連線,閘道會顯示一個錯誤,說明連線無法使用。
語法
domainname [web_proxy1:port1]|subdomain1 [web_proxy2:port2]|......
範例
sesta.com wp1:8080|red wp2:8080|yellow|* wp3:8080
* 是符合所有資料的萬用字元
其中,
sesta.com 是網域名稱而 wp1 是在 8080 連接埠上連接的代理伺服器。
red 是子網域名稱而 wp2 是在 8080 連接埠上連接的代理伺服器。
yellow 是子網域。由於沒有指定代理伺服器,因此會使用指定給網域的代理伺服器,即為在 8080 連接埠上的 wp1。
* 表示所有其他子網域必須在 8080 連接埠上使用 wp3 。
處理 Web 代理伺服器資訊
當客戶端嘗試存取特定的 URL 時,在 URL 中的主機名稱符合在「網域和子網域的代理伺服器」清單中的項目。符合請求主機名稱之最長字尾的項目會被考慮。例如,考慮請求的主機名稱是 host1.sesta.com
在「網域和子網域的代理伺服器」清單中考量下列項目:
com p1| host1 p2 | host2 | * p3
sesta.com p4 | host5 p5 | * p6
florizon.com | host6
abc.sesta.com p8 | host7 p7 | host8 p8 | * p9
host6.florizon.com p10
host9.sesta.com p11
siroe.com | host12 p12 | host13 p13 | host14 | * p14
siroe.com | host15 p15 | host16 | * p16
* p17
閘道在內部對映的項目顯示於表 2-2 中。
表 2-2 在「網域和子網域的代理伺服器」清單中的對映項目
號碼
「網域和子網域的代理伺服器」清單中的項目
代理伺服器
描述
1
com
p1
指定於清單中。
2
host1.com
p2
指定於清單中。
3
host2.com
p1
由於沒有指定代理伺服器給 host2,會使用主機的代理伺服器。
4
*.com
p3
指定於清單中。
5
sesta.com
p4
指定於清單中。
6
host5.sesta.com
p5
指定於清單中。
7
*.sesta.com
p6
指定於清單中。
8
florizon.com
直接
詳細資料,請參閱第 14 項的描述。
9
host6.florizon.com
–
詳細資料,請參閱第 14 項的描述。
10
abc.sesta.com
p8
指定於清單中。
11
host7.abc.sesta.com
p7
指定於清單中。
12
host8.abc.sesta.com
p8
指定於清單中。
13
*.abc.sesta.com
p9
指定於清單中。在 abc.sesta.com 網域下,除了 host7 和 host8 之外的主機,p9 會用作代理伺服器。
14
host6.florizon.com
p10
與第 9 個項目相同。第 9 個項目表示直接連線,而此項目表示應該使用代理伺服器 10。若遇到像這樣有兩個項目的情況,含有代理伺服器資訊的項目視為是一個有效的項目。請忽略另一個項目。
15
host9.sesta.com
p11
指定於清單中。
16
siroe.com
直接
由於並沒有指定代理伺服器給 siroe.com,因此會嘗試直接連線。
17
host12.siroe.com
p12
指定於清單中。
18
host13.siroe.com
p13
指定於清單中。
19
host14.siroe.com
直接
由於並沒有指定代理伺服器給 host14 或給 siroe.com,因此會嘗試直接連線。
20
*.siroe.com
p14
請參閱第 23 項描述。
21
host15.siroe.com
p15
指定於清單中。
22
host16.siroe.com
直接
由於並沒有指定代理伺服器給 host16 和給 siroe.com,因此會嘗試直接連線。
23
*.siroe.com
p16
與第 20 個項目類似。但是指定的代理伺服器不同。這種情形下,無法知道閘道的實際運作方式。可能會使用兩個代理伺服器。
24
*
p17
如果沒有其他的項目符合請求的 URL,就會使用 p17 作為代理伺服器。
注意
相對於在「網域和子網域的代理伺服器」清單中使用「|」分隔各項,單獨列出每一項更加簡單。例如,不使用如下的輸入方式:
sesta.com p1 | red p2 | * p3
您可以將其指定為:
sesta.com p1
red.sesta.com p2
*.sesta.com p3
如此會簡化陷入重複項目或任何其他含糊的情況。
以「網域和子網域的代理伺服器」清單為基礎覆寫
「網域和子網域的代理伺服器」清單中的項目也會被 Rewriter 使用。Rewriter 會重新寫入符合「網域和子網域的代理伺服器」清單中列出的網域的所有 URL。
警告
在「網域和子網域的代理伺服器」清單中的 * 項目不會考慮重新寫入。例如,在範例表 2-2 中第 24 個項目就不被考慮。
請參閱第 3 章,「Proxylet 和 Rewriter」。
預設網域與子網域
當在 URL 中的目標主機不是完整限定的主機名稱,會使用預設的網域和子網域以使其有完整合格的名稱。
假設管理主控台中「預設網域」欄位內的項目是:
red.sesta.com
在上面的範例中,sesta.com 是預設的網域而 red 是預設的子網域。
如果要求的 URL 是 host1,則使用預設的網域和子網域以解決 host1.red.sesta.com。然後會在「網域和子網域的代理伺服器」清單中查詢 host1.sesta.com。
使用自動代理伺服器配置若要忽略「網域和子網域的代理伺服器」清單中的資訊,請啟用「自動代理伺服器配置」功能。若要配置此部分,請參閱啟用自動代理伺服器配置支援。
使用自動代理伺服器配置 (PAC) 檔案時請注意下列幾點:
- js.jar 必須位於閘道機器上的 $JRE_HOME/lib/ext 目錄中,否則閘道無法剖析 PAC 檔案。
- 閘道在開機時取得 PAC 檔案 (從閘道設定檔自動代理伺服器配置檔案位置欄位中指定的位置)。若要配置位置,請參閱指定自動代理伺服器配置檔案位置 。
- Portal Server、閘道、Netlet、Proxylet 和 Jchardet 使用 Rhino 軟體剖析 PAC 檔案。您可以從 SUNWrhino 套裝軟體安裝該軟體。
如果您想要閘道使用直接連線連到主機,請返回到「直接」。請參閱含有傳回 DIRECT 或 NULL 的範例。
- 當指定多個代理伺服器時,閘道僅使用第一個返回的代理伺服器。閘道不會在指定給主機的多個代理伺服器之間嘗試修復錯誤或負載平衡。
- 閘道忽略 SOCKS 代理伺服器並嘗試直接連線,同時假設該主機是企業內部網路的一部分。
- 若要指定代理伺服器,讓其通往任何不屬於內部企業網路的主機,請使用代理伺服器類型 "STARPROXY"。這是 PAC 檔案格式的副檔名,與在閘道設定檔的「網域和子網域的代理伺服器」部分中的 * proxyHost:port 相似。請參閱含有傳回 STARPROXY 的範例。
使用範例 PAC 檔案
下列範例顯示列在「網域和子網域的代理伺服器」清單中的 URL 和對應的 PAC 檔案。
含有傳回 DIRECT 或 NULL 的範例
網域和子網域使用這些代理伺服器:
*intranet1.com proxy.intranet.com:8080
intranet2.com proxy.intranet1.com:8080
the corresponding PAC file is:
// Start of the PAC File
function FindProxyForURL(url, host) {
if (dnsDomainIs(host, ".intranet1.com")) {
return "DIRECT";
}
if (dnsDomainIs(host, ".intranet2.com")) {
return "PROXY proxy.intranet1.com:8080";
}
return "NULL";
}
//End of the PAC File
含有傳回 STARPROXY 的範例
網域和子網域使用這些代理伺服器:
the corresponding PAC file is:
// Start of the PAC File
function FindProxyForURL(url, host) {
if (dnsDomainIs(host, ".intranet1.com")) {
return "DIRECT";
}
if (dnsDomainIs(host, ".intranet2.com")) {
return "PROXY proxy.intranet1.com:8080;" +
"PROXY proxy1.intranet1.com:8080";
}
return "STARPROXY internetproxy.intranet1.com:80";
}
//End of the PAC File
在這個情況下,如果是位於 .intranet2.com 網域,則閘道會連絡 proxy.intranet1.com:8080。如果 proxy.intranet1.com:8080 代理伺服器無法使用,請求會失敗。閘道不會修復錯誤和連絡 proxy1.intranet1.com:8080。
使用 Netlet 代理伺服器封包在閘道是解密的,並會傳送到目標伺服器。然而,閘道需要透過非軍事區 (DMZ) 和企業內部網路之間的防火牆,存取所有的 Netlet 目標主機。這需要在防火牆中開啟大量的連接埠。Netlet 代理伺服器可用於最小化在防火牆中開啟的連接埠數目。
藉由延伸用戶端的安全通道,透過閘道到存在於企業內部網路的 Netlet 代理伺服器,Netlet 強化閘道和企業內部網路之間的安全性。使用代理伺服器,Netlet 封包會由代理伺服器解密,之後會傳送至目標。
下列原因可說明 Netlet 代理伺服器非常有用:
- 新增其他的安全性層級。
- 透過內部防火牆在有效大小的部署環境中,最小化額外 IP 位址和閘道連接埠的使用。
- 限制閘道和入口伺服器之間開啟的連接埠數目為 1。此連接埠數目可在安裝期間配置。
- 延伸客戶端和閘道間的安全通道,最多到如圖 2-2 中「包含配置的 Netlet 代理伺服器」部分所顯示的 Portal Server。透過資料加密,Netlet 代理伺服器提供強化的安全益處,但可能會增加系統資源的使用。請參閱「Sun Java Enterprise System 安裝指南」以取得更多關於安裝 Netlet 代理伺服器的詳細資料。
您可以:
- 選擇在 Portal Server 節點上或個別節點上安裝 Netle 代理伺服器。
- 使用管理主控台安裝多個 Netlet 代理伺服器並配置給單一閘道。這對於負載平衡很有用。請參閱啟用並建立 Netlet 代理伺服器清單。
- 在單一機器上配置多個 Netlet 代理伺服器實例。
- 將閘道的多重實例指向 Netlet 代理伺服器的單一安裝。
- 通道 Netlet 會透過 Web 代理伺服器。若要配置此部分,請參閱啟用透過 Web 代理伺服器的 Netlet 通道。
圖 2-2 顯示在有和沒有安裝 Netlet 代理伺服器的情況下,閘道和 Portal Server 的三個範例實作。元件包含一個用戶端、兩個防火牆、位於兩個防火牆之間的閘道、Portal Server 和 Netlet 目標伺服器。
第一個方案顯示沒有安裝 Netlet 代理伺服器的閘道和 Portal Server。此處資料加密僅從用戶端延伸到閘道。在第二防火牆中開啟一個連接埠給每個 Netlet 連線請求。
第二個方案顯示在 Portal Server 上安裝 Netlet 代理伺服器的閘道和 Portal Serve。在此情況中,資料加密從用戶端一直延伸到 Portal Server。既然所有 Netlet 連線都是通過 Netlet 代理伺服器傳送的,在 Netlet 請求中的第二防火牆只需要開啟一個連接埠。
第三個方案顯示有在個別節點上安裝 Netlet 代理伺服器的閘道和 Portal Server。在個別節點上安裝 Netlet 代理伺服器會減少 Portal Server 節點上的負載。同樣的,在第二個防火牆中僅需要開啟兩個連接埠。其中一個連接埠提供給 Portal Server 使用,另一個連接埠傳送 Netlet 請求到 Netlet 代理伺服器。
圖 2-2 Netlet 代理伺服器的實作
建立 Netlet 代理伺服器的實例
使用 nlpmultiinstance 程序檔以在 Portal Server 或個別節點上,建立 Netlet 代理伺服器的新實例。最好在建立閘道設定檔之後執行此程序檔:
- 登入為根使用者並導覽至以下目錄:
netlet-install-dir/SUNWps/bin
- 執行多重實例程序檔:
./nlpmultiinstance
- 回答 nlpmultiinstance 程序檔所問的問題:
- What is the name of the new netlet proxy instance? (新 netlet 代理伺服器實例的名稱為何?)
- 如果您有一個實例以同樣的名稱配置在此節點上,系統會問您是否要使用相同的配置給此 proxy 代理伺服器實例。
- 如果您的回答為是,請回答這兩個問題:
- 如果您的回答為否,則請回答下列問題:
- What protocol will the new netlet proxy instance use? (新的 Netlet 代理伺服器實例會使用什麼通訊協定?)
- What port will the new netlet proxy instance listen on? (新的 Netlet 代理伺服器實例將會使用哪個連接埠傾聽?)
- What is the name of your organization? (您的組織名稱為何?)
- What is the name of your division? (您的分部名稱為何?)
- What is the name of your city or locality? (您的城市或地區名稱為何?)
- What is the name of your state or province? (您的州名或省名為何?)
- What is the two-letter country code? (您的兩個字母國碼為何?)
- What is the password for the certificate Database? (您證書資料庫的密碼為何?)
- What is the password for the logging user? (記錄使用者的密碼為何?)
- Have you created the new gateway profile in the admin console? (您在管理主控台是否已經建立新的閘道設定檔?)
- If you answered yes, start the netlet proxy after installation? (如果您的回答為是,要在安裝後啟動 Netlet 代理伺服器?)
- 以請求的閘道設定檔名稱啟動 netlet 代理伺服器的新實例:
netlet-proxy-install-root/SUNWps/bin/netletd -n gateway-profile-name start
其中 gateway-profile-name 是對應到所需閘道實例的設定檔名稱。
啟用 Netlet 代理伺服器
在 Identity Server 管理主控台中的 SRA 配置下,透過閘道服務啟動 Netlet 代理伺服器。請參閱啟用並建立 Netlet 代理伺服器清單。
重新啟動 Netlet 代理伺服器
每次代理伺服器意外結束時,您可以配置 Netlet 代理伺服器以重新啟動。您可以排程一個監視程式程序以監視 Netlet 代理伺服器,如果效能降低就重新啟動。
您也可以手動重新啟動 Netlet 代理伺服器。
重新啟動 Netlet 代理伺服器
在終端機視窗中,連線為根使用者並執行下列動作之一:
配置 Netlet 代理伺服器監視程式
您可以配置監視程式監視 Netlet 代理伺服器狀態的時間間隔。時間間隔預設為 60 秒若要執行此步驟,在 crontab 中編輯下面的行:
0-59 * * * * netlet-install-dir/bin/checkgw /var/opt/SUNWps/.gw 5 > /dev/null 2>&1
使用 Rewriter 代理伺服器Rewriter 代理伺服器安裝在企業內部網路中。取代嘗試直接擷取資料內容,閘道會傳送所有請求給 Rewrite 代理伺服器,而 Rewriter 代理伺服器會獲取並傳回內容給閘道。
使用 Rewriter 代理伺服器有兩個優點:
如果您沒有指定 Rewriter 代理伺服器,當使用者嘗試存取企業內部網路的其中一台電腦,閘道元件會直接連線至企業內部網路的電腦。
如果您使用 Rewriter 代理伺服器作為負載平衡器,請確定 Rewriter 的 platform.conf.instance_name 指向負載平衡器 URL。也確認負載平衡器主機指定在 Portal Servers 清單中。
如果您的每個閘道實例(在入口節點上不是必要) 都有 Rewriter 代理伺服器的多重實例, 在 platform.conf 中,代替 Rewrite 代理伺服器的單一連接埠項目,以 host-name:port 形式輸入每個 Rewriter 代理伺服器的細節。
建立 Rewriter 代理伺服器的實例
使用 rwpmultiinstance 程序檔以在 Portal Server 節點上建立 Rewriter 代理伺服器的新實例。最好在建立閘道設定檔之後執行此程序檔。
- 登入為根使用者並導覽至以下目錄:
rewriter-proxy-install-root/SUNWps/bin
- 執行多重實例程序檔:
./rwpmultiinstance
- 回答 nlpmultiinstance 程序檔所問的問題:
- What is the name of the new rewriter proxy instance? (新 Rewriter 代理伺服器實例的名稱為何?)
- 如果您有 Rewriter 代理伺服器且是在此節點上以同樣的名稱配置,系統會問您是否要使用相同的配置給此 Rewriter 代理伺服器實例。
- 如果您的回答為是,請回答這兩個問題:
- 如果您的回答為否,則請回答下列問題:
- What protocol will the new rewriter proxy instance use? (新的 rewriter 代理伺服器實例會使用什麼通訊協定?)
- What port will the new rewriter proxy instance listen on? (新的 rewriter 代理伺服器實例將會使用哪個連接埠傾聽?)
- What is the name of your organization? (您的組織名稱為何?)
- What is the name of your division? (您的分部名稱為何?)
- What is the name of your city or locality? (您的城市或地區名稱為何?)
- What is the name of your state or province? (您的州名或省名為何?)
- What is the two-letter country code? (您的兩個字母國碼為何?)
- What is the password for the certificate Database? (您證書資料庫的密碼為何?)
- What is the password for the logging user? (記錄使用者的密碼為何?)
- Have you created the new gateway profile in the admin console? (您在管理主控台是否已經建立新的閘道設定檔?)
- If you answered yes, start the rewriter proxy after installation? (如果您的回答為是,要在安裝後啟動 rewriter 代理伺服器?)
- 以請求的閘道設定檔名稱啟動 Rewriter 代理伺服器的新實例:
rewriter-proxy-install-root/SUNWps/bin/rwproxyd -n gateway-profile-name start
其中 gateway-profile-name 是對應到所需閘道實例的設定檔名稱。
啟用 Rewriter 代理伺服器
在 Identity Server 管理主控台中,在「SRA 配置」下透過閘道服務啟用 Rewriter 代理伺服器。請參閱啟用並建立 Rewriter 代理伺服器清單。
重新啟動 Rewriter 代理伺服器
每次代理伺服器意外結束時您可以配置重新啟動 Rewriter 代理伺服器。您可以排程一個監視程式程序來監視並在發生時重新啟動。
您也可以手動重新啟動 Rewriter 代理伺服器。
重新啟動 Rewriter 代理伺服器
在終端機視窗中,連線為根使用者並執行下列動作之一:
若要配置 Rewriter 代理伺服器監視程式
您可以配置監視程式監視 Rewriter 代理伺服器狀態的時間間隔。時間間隔預設為 60 秒若要執行此步驟,在 crontab 中編輯下面的行:
0-59 * * * * rewriter-proxy-install-root/bin/checkgw /var/opt/SUNWps/.gw 5 > /dev/null 2>&1
使用含有閘道的反向代理伺服器代理伺服器會傳送網際網路內容至企業內部網路,而反向代理伺服器則傳送企業內部網路內容至網際網路。反向代理伺服器的部署會配置為傳送網際網路內容以達成載入平衡與快取的效果。
若要啟用反向代理伺服器
- 以根使用者身份登入並編輯所需閘道實例的 platform.conf 檔:
/etc/opt/SUNWps/platform.conf.gateway-profile-name
- 新增下列項目:
gateway.virtualhost=fully-qualified-gateway-host gateway-ip-address fully- qualified-reverse-proxyhost
gateway.enable.customurl=true (此值的預設值設定為 false。)
gateway.httpurl=http reverse-proxy-URL
gateway.httpsurl=https reverse-proxy-URL
gateway.httpurl 將用於覆寫在連接埠接收的回應,其中連接埠在閘道設定檔會列示為 HTTP 連接埠。
gateway.httpsurl 將用於覆寫在連接埠接收的回應,其中連接埠在閘道設定檔會列示為 HTTPS 連接埠。
- 重新啟動「閘道」:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
如果不指定此值,則閘道會預設回一般的運作方式。
取得用戶端資訊當閘道轉寄用戶端請求到任何內部伺服器時,閘道會新增 HTTP 標頭到 HTTP 請求。您可以使用這些標頭以取得額外的用戶端資訊並偵測閘道的出現狀態。
若要檢視 HTTP 標頭,請設定 platform.conf 檔案的項目為 gateway.error=message,然後使用 servlet API 中的 request.getHeader()。以下表格列出 HTTP 標頭中的資訊
表 2-3 HTTP 標頭中的訊息
標頭.
語法
描述
PS-GW-PDC
X-PS-GW- PDC:true/false
指出閘道上的 PDC 是否啟用。
PS-Netlet
X-PS-Netlet:enabled=true/false
指出閘道上的 Netlet 是否已經啟用或停用。
如果已經啟用,則加密選項會植入,指出閘道以 HTTPS (encryption=ssl) 或以 HTTP 模式 (encryption=plain) 執行。
例如:
PS-Netlet:enabled=false
Netlet 是停用的。
PS-Netlet:enabled=true; encryption=ssl
Netlet 使用在 SSL 模式中執行的閘道啟用。
當 Netlet 沒有啟用時,encryption=ssl/plain 並不會植入。
PS-GW-URL
X-PS-GW-URL:http(s)://gatewayURL(:port)
指出用戶端要連接的 URL。
如果是非標準的連接埠 (也就是說,閘道在 HTTP/HTTPS 模式中且連接埠不是 80/443,則該「連接埠」也會被植入。
PS-GW-Rewriting-URL
X-PS-GW-URL:http(s)://gatewayURL(:port)/[SessionInfo]
指出閘道重新寫入所有頁面的 URL。
1. 當瀏覽器支援 cookie 時,此標頭的值會和 PS-GW-URL 標頭的值一樣。
2. 當瀏覽器不支援 cookies 時:
備註:在回應部分,如果使用者的 Identity Server seeionID 變更 (如來自認證頁面的回應),則會以該值重新寫入這些頁面 (此值並非是先前所指在標頭中的值)。
例如:
PS-GW-Rewriting-URL:https://siroe.india.sun.com:10443/
PS-GW-Rewriting-URL:https://siroe.india.sun.com:10443/SessIDValCustomEncodedValue/
PS-GW-Rewriting-URL:https://siroe.india.sun.com:10443/$SessionID
PS-GW-CLientIP
X-PS-GW-CLientIP:IP
這是閘道從 recievedSocket.getInetAddress().getHostAddress() 所取得的 IP
如果直接連到閘道的話,會提供用戶端的 IP。
備註:由於有 JSS/NSS 錯誤,目前這部分不提供。
使用認證鏈接在一般的認證機制上,認證鏈接提供較高的安全性。您可以讓使用者認證一個以上的認證機制。
此處的程序說明僅適用於與在閘道上的「個人數位證書」(PDC) 認證同時啟用認證鏈接。關於在閘道上沒有 PDC 認證的認證鏈結,請參考「Identity Server 管理指南」。
例如,如果您取得 PDC、Unix 和 Radius 認證模組,使用者將必須認證這三個模組以存取標準入口網站桌面。
若要新增認證模組到現有 PDC 實例
- 以管理員的身份登入 Identity Server 管理主控台。
- 選擇需要的組織。
- 從「檢視」下拉功能表中選取「服務」。
此服務會顯示於左窗格中。
- 按一下「認證配置」旁邊的箭頭。
顯示「服務實例清單」。
- 按一下 gatewaypdc。
會顯示 Gatewaypdc 特性頁面。
- 按一下「認證配置」前面的「編輯」。
會顯示「新增模組」。
- 選擇「模組名稱」並設定「旗標」為「需要」。選項會是空白的。
- 按一下「確定」。
- 新增一個或多個模組後按一下「儲存」。
- 在 gatewaypdc 特性頁面中按一下「儲存」。
- 若要使變更生效,重新啟動閘道:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
使用萬有字元證書萬用字元證書接受含有萬用字元的單一證書,該證書必須位於擁有完全合格 DNS 名稱的主機中。
這允許證書在相同網域中維護多個主機的安全性。例如,*.domain.com 的證書可以用於 abc.domain.com 和 abc1.domain.com。事實上,此證書對於在 domain.com 網域中的任何主機都有效。
您需要在完全合格的主機名稱中指定一個 *。例如,如果完全合格的主機名稱是 abc.florizon.com,則將之指定為 *.florizon.com。現在,產生的證書對所有在 florizon.com 網域中的所有主機名稱都有效。
停用瀏覽器快取當閘道元件僅使用網路瀏覽器從任何地方提供安全存取到後端公司資料時,用戶端在本機不能快取可能是必需條件。
您可以修改指定閘道在 platform.conf 中檔案的屬性,以停用透過閘道快取重新導向的頁面。
停用此選項對閘道效能有影響。每次標準 Portal Desktop更新時,閘道必須擷取每個參照到頁面的東西,例如先前瀏覽器已經快取過的影像。然而,啟用這個功能後,遠端存取安全的內容將不會在用戶端留下快取過的足跡。如果企業網路是從網路咖啡館或類似的遠端位置 (不是在企業 IT 的控制下),這個功能比效能關係更為重要。
停用瀏覽器快取
自訂閘道服務使用者介面本節討論可以編輯的幾個特性檔案。
srapGateway.properties 檔案
因下列用途您可以編輯此檔案:
srapgwadminmsg.properties 檔案
因下列原因您可以編輯此檔案:
使用聯合管理聯合管理允許使用者聚集他們的本機身份,以使他們有一個網路身份。聯合管理使用網路身份以允許使用者登入服務提供者的網站,並且不需要重新認證他們的識別即可存取其他服務提供者的網站。這稱為單次登入。
在入口伺服器上開啟模式和安全模式配置聯合管理。「Portal Server 管理指南」 描述了如何在開放模式中配置聯合管理。於安全模式中配置聯合管理之前,請使用安全遠端存取,以確定聯合管理可在開啟模式中運作。如果您要您的使用者在開啟模式和安全模式中從相同的瀏覽器中使用聯合管理,他們必須從瀏覽器清除 cookie 和快取。
請參閱「Identity Server Customization and API Guide」以瞭解有關聯合管理的詳細資訊。
聯合管理方案
使用者認證到一個初始的服務提供者。服務使用者是商業用途或是提供以網路為主之服務的非營利組織。此廣泛的種類可以包括網際網路入口網站、運輸提供者、金融機構、娛樂事業公司、圖書館、大學和政府行政機構。
服務提供者可以使用 cookie 以儲存使用者在用戶端瀏覽器的階段作業資訊。Cookie 也包含使用者的識別提供者。
識別提供者是在提供認證服務中指定的服務提供者。做為識別的管理服務,它們同時也維持並管理認證資訊。識別提供者所完成的認證,受到隸屬於它的所有伺服器提供者所認可。
當使用者程式存取不隸屬於該識別提供者的服務時,此識別提供者會將該 cookie 轉寄給獨立的服務提供者。此服務提供者之後便可存取在 cookie 中呼叫的識別提供者。
然而,無法在不同 DNS 的網域間讀取 cookie。因此使用「共用網域 Cookie 服務」以重新導向服務提供者到正確的識別提供者,因此使用者就可以啟用單次登入。
配置聯合管理資源
聯合資源、服務提供者、識別提供者和共同網域 Cookie 服務 (CDCS) 在其所存在的閘道中設定檔中配置。這部分說明如何配置三個方案:
配置 1
在此配置中,服務提供者、識別提供者和「共用網域 Cookie 服務」都部署在相同的企業內部網路中,而識別提供者並未發佈到網際網路網域名稱伺服器 Domain Name Server (DNS) 中。CDCS 為選填項目。
在此配置中,閘道指向服務提供者,也就是 Portal Server。此配置對 Portal Server 的多重實例都有效。
- 以管理員的身份登入 Identity Server 管理主控台。
- 選取管理主控台中的「服務配置」標籤。
- 按一下「SRA 配置」下「閘道」旁的箭頭。
將顯示「閘道」頁。
- 按一下您想要設定其屬性之「閘道設定檔」旁邊的「編輯…」。
便會顯示「編輯閘道設定檔」頁面。
- 按一下「核心」標籤。
- 選取「啟用 Cookie 管理」核取方塊以啟用 cookie 管理。
- 捲動至「Portal Server 」欄位並輸入 Portal Server 名稱,如此您可以使用相對 URL,像是列於「未認證 URL」清單中的 /amserver 或 /portal/dt。例如:
http://idp-host:port/amserver/js
http://idp-host:port/amserver/UI/Login
http://idp-host:port/amserver/css
http://idp-host:port/amserver/SingleSignOnService
http://idp-host:port/amserver/UI/blank
http://idp-host:port/amserver/postLogin
http://idp-host:port/amserver/login_images
- 捲動至「Portal Server」欄位並輸入 Portal Server 名稱。例如 /amserver。
- 按一下「儲存」。
- 按一下「安全性」標籤。
- 捲動到「未驗證 URL」清單並新增「聯合資源」。例如:
/amserver/config/federation
/amserver/IntersiteTransferService
/amserver/AssertionConsumerservice
/amserver/fed_images
/amserver/preLogin
/portal/dt
- 按一下「加入」。
- 按一下「儲存」。
- 如果需要 Web 代理伺服器以連至在「未驗證 URL」清單中的 URL,按一下「代理伺服器」標籤。
- 捲動到「網域和子網域的代理伺服器」欄位並輸入所需的 Web 代理伺服器。
- 按一下「加入」。
- 按一下「儲存」。
- 從終端機視窗中,重新啟動閘道:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
配置 2
在此配置中識別提供者、識別提供者和共同網域 Cookie 提供者 (CDCP) 沒有部署於企業內部網路,或識別提供者是位於網際網路上的協力廠商。
在此配置中,閘道指向服務提供者,也就是 Portal Server。此配置對 Portal Server 的多重實例都有效。
- 以管理員的身份登入 Identity Server 管理主控台。
- 選取管理主控台中的「服務配置」標籤。
- 按一下「SRA 配置」下「閘道」旁的箭頭。
將顯示「閘道」頁。
- 按一下您想要設定其屬性之「閘道設定檔」旁邊的「編輯…」。
便會顯示「編輯閘道設定檔」頁面。
- 按一下「核心」標籤。
- 選取「啟用 Cookie 管理」核取方塊以啟用 cookie 管理。
- 捲動至「Portal Server 」欄位並輸入服務提供者 Portal Server 名稱,如此您可以使用相對 URL,像是列於「未認證 URL」清單中的 /amserver 或 /portal/dt。
http://idp-host:port/amserver/js
http://idp-host:port/amserver/UI/Login
http://idp-host:port/amserver/css
http://idp-host:port/amserver/SingleSignOnService
http://idp-host:port/amserver/UI/blank
http://idp-host:port/amserver/postLogin
http://idp-host:port/amserver/login_images
- 按一下「儲存」。
- 按一下「安全性」標籤。
- 捲動到「未認證 URL」清單並新增「聯合資源」。例如:
/amserver/config/federation
/amserver/IntersiteTransferService
/amserver/AssertionConsumerservice
/amserver/fed_images
/amserver/preLogin
/portal/dt
- 按一下「加入」。
- 按一下「儲存」。
- 如果需要 Web 代理伺服器以連至在「未驗證 URL」清單中的 URL,按一下「代理伺服器」標籤。
- 捲動到「網域和子網域的代理伺服器」欄位並輸入所需的 Web 代理伺服器。
- 按一下「加入」。
- 按一下「儲存」。
- 從終端機視窗中,重新啟動閘道:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
配置 3
在此配置中識別提供者、識別提供者和共同網域 Cookie 提供者 (CDCP) 沒有部署於企業內部網路,或服務提供者是位於網際網路上的協力廠商,且識別提供者受到閘道保護。
在此配置中,閘道指向識別提供者,也就是 Portal Server。
此配置對 Portal Server 的多重實例都有效。此配置在網路上是不太可能發生的,然而,一些企業網路在其企業內部網路可能會有這樣的配置,也就是說,識別提供者可能位於由防火牆保護的子網路中,而伺服器提供者可以在企業網路中直接存取。
- 以管理員的身份登入 Identity Server 管理主控台。
- 選取管理主控台中的「服務配置」標籤。
- 按一下「SRA 配置」下「閘道」旁的箭頭。
將顯示「閘道」頁。
- 按一下您想要設定其屬性之「閘道設定檔」旁邊的「編輯…」。
便會顯示「編輯閘道設定檔」頁面。
- 按一下「核心」標籤。
- 選取「啟用 Cookie 管理」核取方塊以啟用 cookie 管理。
- 捲動至「Portal Server」欄位並輸入識別提供者 Portal Server,如此您可以使用相對 URL,像是列於「未認證 URL」清單中的 /amserver 或 /portal/dt。
http://idp-host:port/amserver/js
http://idp-host:port/amserver/UI/Login
http://idp-host:port/amserver/css
http://idp-host:port/amserver/SingleSignOnService
http://idp-host:port/amserver/UI/blank
http://idp-host:port/amserver/postLogin
http://idp-host:port/amserver/login_images
- 按一下「儲存」。
- 按一下「安全性」標籤。
- 捲動到「未認證 URL」清單並新增「聯合資源」。例如:
/amserver/config/federation
/amserver/IntersiteTransferService
/amserver/AssertionConsumerservice
/amserver/fed_images
/amserver/preLogin
/portal/dt
- 按一下「加入」。
- 按一下「儲存」。
- 如果需要 Web 代理伺服器以連至在「未驗證 URL」清單中的 URL,按一下「代理伺服器」標籤。
- 捲動到「網域和子網域的代理伺服器」欄位並輸入所需的 Web 代理伺服器。
- 按一下「加入」。
- 按一下「儲存」。
- 從終端機視窗中,重新啟動閘道:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start