![]() | |
Sun Java System Portal Server Secure Remote Access 6 2005Q1 管理指南 |
第 2 章
网关本章介绍顺利运行网关所需的网关相关概念及信息。有关配置网关的信息,参见第 9 章,“配置网关”。
本章包括以下主题:
网关概述网关在源自 Internet 与公司内联网的远程用户会话之间提供界面和安全屏障。网关可通过单个接口将来自内联网服务器和应用程序服务器的内容安全地呈现给远程用户。
您需要对每个网关执行以下操作:
- 创建网关配置文件。参见创建网关配置文件
- 创建网关实例。参见创建网关实例
- 配置网关。参见第 9 章,“配置网关”
创建网关配置文件网关配置文件含有与网关配置相关的所有信息,诸如网关侦听所在的端口、SSL 选项及代理选项。
安装网关时,如果选择默认值,就会创建一个名为 "default" 的默认网关配置文件。与默认配置文件相对应的配置文件位于:
/etc/opt/SUNWps/platform.conf.default
其中 /etc/opt/SUNWps 是所有 platform.conf.* 文件的默认位置。
有关 platform.conf 文件内容的更多信息,参见了解 platform.conf 文件。
您可以:
创建网关配置文件
- 以管理员的身份登录到 Sun Java System Access Manager 管理控制台。
- 选择“服务配置”选项卡。
- 单击“SRA 配置”下网关旁边的箭头。
在右窗格中会显示“网关”页面。
- 单击“新建”。
将显示“创建新网关配置文件”页面。
- 输入新网关配置文件的名称。
- 从下拉式列表中选择用于创建新配置文件的配置文件。
默认情况下,您创建的任何新配置文件都基于预封装的默认配置文件。如果已创建一个自定义配置文件,则可以从下拉式列表中选择该配置文件。新配置文件会继承所选配置文件的全部属性。
用现有配置文件复制而成的新配置文件沿袭同一端口。更改新配置文件的端口,使其不与现有配置文件冲突。
- 单击“创建”。
随即会创建新配置文件而后返回到“网关”页面,其中将列出新配置文件。
- 运行 gwmultiinstance 脚本,创建网关实例。参见启动和停止网关。
- 如果要使更改生效,请重新启动使用此网关配置文件名的网关:
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/RemoteConfigS ervlet
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=60000
gateway.cdm.cacheCleanUpTime=300000
netletproxy.port=10555
rewriterproxy.port=10556
表 2-1 列出并介绍了 platform.conf 文件中的所有字段
创建网关实例使用 gwmultiinstance 脚本创建或删除网关实例。创建网关配置文件后运行此脚本。
- 以超级用户身份登录并导航到以下目录:
gateway-install-root/SUNWps/bin/
- 运行多实例脚本:
./gwmultiinstance
Choose one of the following installation options:
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?
What is the organization DN? [dc=iportal,dc=com]
What is the Access Manager URI? [/amserver]
What is the Access Manager 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 是新的网关实例。
除创建网关配置文件之外,还应在 /etc/opt/SUNWam/config 目录中创建 AMConfig-.instance-name.properties 文件。
如果 platform.conf 文件中存在 portal.server.instance 属性,则网关会读取相应的 AMConfig-instance-name.properties 文件。如果 platform.conf 文件中不存在 portal.server.instance 属性,则网关会读取默认 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 中,修改 serverconfig.xml 中的以下内容,以便与第一个安装的 Portal Server 实例一致:
<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 服务。
在 chroot 环境中运行网关要在 chroot 环境中提供高安全性,必须使 chroot 目录内容尽可能小。例如,如果有程序允许用户修改 chrooted 目录下的文件,则 chroot 不会阻止攻击者修改服务器 chroot 树下的文件。不应当用解释性语言(如 bourne shell、c-shell、korn shell 或 perl 等)编写 CGI 程序,而应使用编译的二进制代码,这样就不需要将解释程序放在 chroot 目录树下。
安装 chroot
- 在终端窗口中,以超级用户身份将下列文件复制到外部源中,例如网络中的计算机、备份磁带或软盘。
cp /etc/vfstab external-device
cp /etc/nsswitch.conf external-device
cp /etc/hosts external-device
- 在以下目录中运行 mkchroot 脚本:
portal-server-install-root/SUNWps/bin/chroot
注
执行开始后,不能通过按 Ctrl-C 来中断 mkchroot 脚本的执行。
如果执行 mkchroot 脚本期间出现错误事件,参见 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 -
对于 Linux:
# mount red.iplanet.com:/misc/export /misc/local
其中
red.iplanet.com 是 NFS 文件服务器的主机名
/misc/export 是 red.iplanet.com 正在导出的文件系统
/misc/local 是在本地计算机上安装文件系统的位置。
注释:本地计算机上必须存在安装点目录(上例中为 /misc/local)。
运行安装命令之后(且如果客户机从 red.iplanet.com NFS 服务器得到了适当权限),客户机用户可以执行 ls /misc/local 命令来显示 red.iplanet.com 上 /misc/export 中的文件列表。
- 键入下面的命令以重新启动网关:
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 环境中重新启动网关
启动和停止网关默认情况下,网关是作为用户 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,则您可以添加指向同一 IP 地址的另一主机名 c.d.e。
指定虚拟主机
- 以超级用户身份登录并编辑所需网关实例的 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
如果未指定这些值,则网关以默认值执行正常操作。
指定与 Access Manager 联络的代理您可以指定一个代理主机,网关将使用它来联络在 Portal Server 之上部署的“SRA 核心”(RemoteConfigServlet)。网关使用此代理可访问到 Portal Server 和 Access Manager。
指定代理
使用 Web 代理使用第三方的 Web 代理,可配置用于联络 HTTP 资源的网关。Web 代理位于客户机和 Internet 之间。
Web 代理配置
不同的代理可能用于不同的域和子域。这些条目告诉网关使用哪个代理去联络特定域中的特定子域。在网关中指定的代理配置具有如下功能:
有关配置域和子域的代理信息,参见创建域和子域的代理列表。
要配置“使用代理”选项,参见启用“使用 Web 代理”。
图 2-1 显示基于网关服务中的代理配置来分析 Web 代理信息的方法。
图 2-1 网络代理管理
在图 2-1 中,如果启用“使用代理”,并且请求的 URL 在“不可使用 Web 代理 URL”列表中列出,则网关直接连接到目标主机。
如果启用“使用代理”,并且请求的 URL 未在“不可使用 Web 代理 URL”列表中列出,则网关通过指定的代理连接到目标主机。如果已经指定代理,则可以在“域和子域的代理”列表中查寻。
如果禁用“使用代理”,并且请求的 URL 在“使用 Web 代理 URL”列表中列出,则网关使用在“域和子域的代理”列表中的代理信息连接到目标主机。
如果禁用“使用代理”,并且请求的 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。
处理网络代理信息
当客户机试图访问一个特定 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
Direct
有关详细信息,参见条目 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 指示直接连接,但是此条目指示应当使用代理 p10。倘若有两个这样的条目,含有代理信息的条目被视为有效条目。另一个条目将被忽略。
15
host9.sesta.com
p11
如列表中指定。
16
siroe.com
Direct
由于没有为 siroe.com 指定任何代理,所以尝试进行直接连接。
17
host12.siroe.com
p12
如列表中指定。
18
host13.siroe.com
p13
如列表中指定。
19
host14.siroe.com
Direct
由于没有为 host14 指定任何代理,所以尝试进行直接连接。
20
*.siroe.com
p14
参见表项 23 的说明。
21
host15.siroe.com
p15
如列表中指定。
22
host16.siroe.com
Direct
由于没有为 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
这更容易捕获重复的条目和任何其他多义条目。
基于域和子域的代理列表进行重写
“重写器”也使用“域和子域的代理”列表中的条目。重写器重写所有 URL(它们的域与“域和子域的代理”列表中列出的域相匹配)。
警告
不会考虑重写“域和子域的代理”列表中的 * 条目。例如,在表 2-2 所提供的示例中,条目 24 就不会被考虑。
有关重写器的信息,参见第 3 章,“Proxylet 和重写器”。
默认域和子域
当 URL 中的目标主机不是全限定主机名时,默认的域和子域将用于到达全限定名。
假设管理控制台的“默认域”字段中的值是:
red.sesta.com
在上面的示例中,sesta.com 是默认域而默认子域是 red。
如果请求的 URL 是 host1,则使用默认的域和子域将该 URL 解析至 host1.red.sesta.com。随后在“域和子域的代理”列表中查寻 host1.red.sesta.com。
使用自动代理配置要忽略“域和子域的代理”列表中的信息,请启用“自动代理配置”功能。要配置该功能,参见启用自动代理配置支持。
当使用“代理自动配置”(PAC) 文件时,请注意以下各项:
- js.jar 必须存在于网关机器上的 $JRE_HOME/lib/ext 目录中,否则网关便无法解析 PAC 文件。
- 启动时,网关从网关配置文件“自动代理配置文件”位置字段中所指定的位置获取 PAC 文件。要配置位置,参见指定自动代理配置文件位置。
- 网关使用 URLConnection API 到达该位置。如果需要配置代理才能访问到该网关,需按以下方式配置代理:
- 如果 PAC 文件初始化失败,则网关使用“域和子域的代理”列表中的信息。
- 如果从 PAC 文件返回 ""(空字符串)或 "null",则网关假设该主机不属于内联网。这类似于主机不在“域和子域的代理”列表中。
如果要网关使用直接到主机的连接,将返回 "DIRECT"。参见返回 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
相应的 PAC 文件是:
// 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 的示例
使用这些域和子域的代理:
相应的 PAC 文件是:
// 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。
指定 PAC 文件的位置
指定 PAC 文件位置的格式取决于其所在的位置,如下所示:
在单独的会话中添加服务当您在单独的会话中添加 Portal Server 服务时,请确保:
- 在管理控制台的“网关”>“核心”下列出所有的 Portal Server。有关更多信息,参见创建 Portal Server 列表
- 在“网关”>“安全性”下的“未验证的 URL”中列出所有的 Portal Server URL。有关更多信息,参见创建未验证的 URL 列表
使用 Netlet 代理Netlet 信息包在网关处解码并被发送至目标服务器。然而,网关需要通过隔离区 (DMZ) 和内联网之间的防火墙,才能访问所有的 Netlet 目标主机。这需要在防火墙处打开许多端口。Netlet 代理可于将防火墙中打开的端口数量降至最低。
Netlet 代理通过延展客户机至网关最终至内联网中的 Netlet 代理之间的安全通道,从而增强了网关和内联网之间的安全性。通过使用代理,Netlet 信息包将被代理解码然后发送到目标服务器地。
由于以下原因,Netlet 代理非常有用:
- 添加了额外的安全层。
- 在大规模的部署环境中,通过内部防火墙最小化了来自网关的额外 IP 地址和端口的使用。
- 将网关和 Portal Server 之间的打开端口数限制为 1。该端口数可以在安装期间配置。
- 扩展了客户机和网关之间的安全频道,直到如在图 2-2 的“使用配置的 Netlet 代理”部分中所显示的 Portal Server。通过数据加密 Netlet 代理提供的安全性得到改善,但是可能会增加系统资源的使用量。有关安装 Netlet 代理的信息,参见 Sun Java Enterprise System 安装指南。
您可以:
- 选择在 Portal Server 节点或在单独的节点上安装 Netlet 代理。
- 使用管理控制台安装多个 Netlet 代理并且为单个网关配置这些代理。这有利于负载平衡。有关详细信息,参见启用和创建 Netlet 代理列表。
- 在单个机器上配置 Netlet 代理的多个实例。
- 将多个网关实例指向单个安装的 Netlet 代理。
- 通过 Web 代理开通 Netlet 通道。要配置该功能,参见启用隧道经过 Web 代理的 Netlet。
图 2-2 显示三个实现示例:网关以及安装和未安装 Netlet 代理的 Portal Server。组件包括一台客户机、两个防火墙、驻留在两个防火墙之间的网关、Portal Server 和 Netlet 目标服务器。
第一种方案显示网关和未安装 Netlet 代理的 Portal Server。在此方案中,数据加密仅从客户机扩展至网关。对于每个 Netlet 连接请求,都会在第二个防火墙中打开一个端口。
在第二种方案显示的网关和 Portal Server 中,Portal Server 上安装了 Netlet 代理。在此情况下,数据加密从客户机一直扩展到 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?
- If you have a instance configured on this node with the same name, you are asked if you want to use the same configuration for this netlet proxy instance.
- If you answered yes, answer these two questions:
- If you answered no, answer the following questions:
- What protocol will the new netlet proxy instance use?
- What port will the new netlet proxy instance listen on?
- 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-proxy-install-root/SUNWps/bin/netletd -n gateway-profile-name start
其中,gateway-profile-name 是与所需网关实例相对应的配置文件名。
启用 Netlet 代理
通过 Access Manager 管理控制台中“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
使用重写器代理重写器代理安装于内联网中。网关会将所有请求转发至网关,“重写器”代理将获取内并将内容返回至网关,网关不会直接尝试检索内容。
使用“重写器”代理有以下两个优点:
如果未指定“重写器”代理,那么当用户试图访问其中一台内联网计算机时,网关组件将会直接连接到内联网计算机。
如果您将“重写器”代理用作负载平衡器,请确保“重写器”的 platform.conf.instance_name 指向负载平衡器的 URL。同时要确保 Portal Server 列表中已指定负载平衡器主机。
如果每个网关实例存在多个“重写器”代理实例(在门户节点上不必如此),请在 platform.conf 文件中以 host-name:port 形式输入每个“重写器”代理的详细信息,而不用单独为“重写器”代理输入端口。
创建重写器代理的实例
使用 rwpmultiinstance 脚本在 Portal Server 节点上创建新的“重写器”代理实例。创建网关配置文件后运行此脚本。
- 以超级用户身份登录并导航到以下目录:
rewriter-proxy-install-root/SUNWps/bin
- 运行多实例脚本:
./rwpmultiinstance
- 回答由脚本提出的问题:
- What is the name of the new rewriter proxy instance?
- If you have a rewriter proxy instance configured on this node with the same name, you are asked if you want to use the same configuration for this rewriter proxy instance.
- If you answered yes, answer these two questions:
- If you answered no, answer the following questions:
- What protocol will the new rewriter proxy instance use?
- What port will the new rewriter proxy instance listen on?
- 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-proxy-install-root/SUNWps/bin/rwproxyd -n gateway-profile-name start
其中,gateway-profile-name 是与所需网关实例相对应的配置文件名。
启用重写器代理
在 Access Manager 管理控制台中,通过“SRA 配置”下的网关服务启用“重写器”代理。参见启用和创建重写器代理列表。
重新启动重写器代理
可以将“重写器”代理配置为只要代理被意外终止就重新启动。可以计划一个监视器进程时间表来监控“重写器”代理,只要它停止运行就重新启动。
也可以手动重新启动“重写器”代理。
重新启动重写器代理
在终端窗口中,以超级用户身份连接并执行以下步骤之一:
配置重写器代理监视器
可以配置监视器监控“重写器”代理状态的时间间隔。该时间间隔默认设置为 60 秒。为此,请在 crontab 实用程序中编辑下面一行:
0-59 * * * * rewriter-proxy-install-root/bin/checkgw /var/opt/SUNWps/.gw 5 > /dev/null 2>&1
与网关一起使用反向代理代理服务器将 Internet 内容传送至内联网,而反向代理将内联网内容传送至 Internet。可将反向代理的部署配置为传送 Internet 内容,以实现负载平衡和高速缓存。
如果部署中网关前面有第三方反向代理,必须用反向代理的 URL 重写响应内容,而不是网关的 URL。对此,需要进行下列配置。
启用反向代理
- 以超级用户身份登录并编辑所需网关实例的 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。
如果 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),则还会填充 ":port"。
PS-GW-Rewriting-URL
X-PS-GW-URL: http(s)://gatewayURL(:port)/[SessionInfo]
指示网关将全部页面重写至的 URL。
注释:作为响应的一部分,如果用户的 Access Manager sessionId 发生变化(就像来自验证页的响应那样),则使用该值(而不是先前在标题中指示的值)重写页面。
例如:
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。
使用验证链验证链在整个常规验证机制中提供了高级别安全。可用多个验证机制验证用户。
这里所描述的过程仅用于在网关同时启用验证链和“个人数字证书”(PDC) 验证。有关网关处无 PDC 验证的验证链方面的信息,参见 Access Manager 管理指南。
例如,如果将 PDC 和 Radius 验证模块链在一起,用户须得通过全部三个模块的验证才能访问标准“Portal 桌面”。
向现有 PDC 实例添加验证模块
- 以管理员身份登录到 Access Manager 管理控制台。
- 选择所需的组织。
- 在“查看”下拉菜单中选择“服务”。
服务显示在左侧窗格中。
- 单击“验证配置”旁的箭头。
将显示“服务实例列表”。
- 单击 gatewaypdc。
将显示 Gatewaypdc 属性页。
- 单击“验证配置”前的“编辑”。
将显示“添加模块”。
- 选择“模块名称”并将“标志”设置为“必填”。选项可以为空。
- 单击“确定”。
- 添加一个或多个模块之后,单击“保存”。
- 单击 gatewaypdc 属性页中的“保存”。
- 要使更改生效,需要重新启动网关:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
使用通配符证书通配符证书接受具有主机的全限定 DNS 名中通配符的单个证书。
这使得证书能够保护同一域内的多个主机。例如,*intranet1.com proxy.intranet.co.domain.com 的证书可用于 abc.domain.com 和 abc1.domain.com。事实上,该证书对于 domain.com 域中的任何主机都有效。
禁用浏览器高速缓存由于网关组件为来自任何位置且仅使用网络浏览器的用户提供对后端公司数据的安全访问,因此可能必须禁止客户机在本地对信息进行高速缓存。
通过修改特定网关的 platform.conf 文件中的属性,可以禁止通过网关将重定向页存入高速缓存。
禁用该选项会影响网关性能。每当标准“门户桌面”被刷新,网关就必须检索该页所引用的所有内容,例如可能先前已经被浏览器高速缓存的图像。然而,通过启用该功能,远程访问安全内容将不会在客户端留下高速缓存的痕迹。如果从不受公司 IT 控制的网吧或类似的远程位置访问公司网络,这样做的价值有可能超过性能方面的蕴义。
禁用浏览器高速缓存
自定义网关服务用户界面本部分讨论可以编辑的各种属性文件。
srapGateway.properties 文件
您可以编辑该文件用于以下目的:
srapgwadminmsg.properties 文件
您可以出于以下目的编辑该文件:
共享 LDAP 目录当 Portal Server 和 Access Manager 服务器的两个实例共享同一个 LDAP 目录时,请将以下解决方法用于所有后续 Portal Server、Access Manager 和 Gateway:
- 在 /etc/opt/SUNWam/config/ums 中,修改 serverconfig.xml 中的以下内容,以便与第一个安装的 Portal Server 和 Access Manager 服务器实例一致:
<DirDN>
cn=puser,ou=DSAME Users,dc=sun,dc=net
</DirDN>
<DirPassword>
AQICxIPLNc0WWQT22gQnGgnCp9rUf+FuaqpY <== 将该字符串替换为第一次安装时的字符串
</DirPassword>
<DirDN>
cn=dsameuser,ou=DSAME Users,dc=sun,dc=net
</DirDN>
<DirPassword>
AQICxIPLNc0WWQT22gQnGgnCp9rUf+FuaqpY <== 将该字符串替换为第一次安装时的字符串
</DirPassword>
- 重新启动 amserver 服务。
使用联合管理“联合管理”使用户能够将各自的本地身份聚合成为一个网络身份。“联合管理”通过该网络身份允许用户在一个服务提供者的站点上登录即可访问其他服务提供者的站点,而不必重新进行身份验证。这称为单点登录。
在 Portal Server 上,可在开放模式和安全模式中配置联合管理。Portal Server 管理指南描述了如何在开放模式中配置联合管理。在安全模式下使用安全远程访问配置“联合管理”之前,确保其工作于开放模式。如果要使用户既在开放模式中、又在安全模式中使用来自同一浏览器的“联合管理”,则他们必须清除 cookie 并从浏览器进行高速缓存。
有关“联合管理”的详细信息,参见 Access Manager Federation Management Guide。
联合管理方案
初始服务提供者对用户进行验证。服务提供者是提供网络服务的商业性或非盈利性组织。这一广泛的范畴可以包括网络门户、零售商、运输供应商、金融机构、娱乐公司、图书馆、高等院校和政府机构。
服务提供者使用 cookie 存储用户在客户机浏览器中的会话信息。cookie 还包括用户的身份提供者。
身份提供者是专门提供验证服务的服务提供者。在管理验证服务的同时,他们也维护和管理身份信息。由身份提供者完成的验证得到了与其联合的所有服务提供者的认同。
当用户试图访问不属于该身份提供者的服务时,身份提供者将 cookie 发往相应的服务提供者。该服务提供者随后可以访问在 cookie 中调用的身份提供者。
然而,不能跨越不同的 DNS 域读取 cookie。因此“通用域 Cookie 服务”被用于将服务提供者重定向到正确的身份提供者,从而启用用户的单点登录。
配置联合管理资源
可基于要配置内容所在的位置,在网关配置文件中配置联合资源、服务提供者、身份提供者和通用域 Cookie 服务 (CDCS)。本部分介绍如何配置以下三种方案:
配置 1
在此配置中,服务提供者、身份提供者和“通用域 Cookie 服务”被部署在同一个公司内联网中并且不在 Internet“域名服务器”(DNS) 中发布身份提供者。CDCS 是可选的。
在此配置中,网关指向服务提供者 Portal Server。此配置对于多个 Portal Server 实例有效。
- 以管理员身份登录到 Access Manager 管理控制台。
- 在管理控制台中,选择“服务配置”选项卡。
- 单击“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
- 单击“添加”。
- 单击“保存”。
- 如果到达“未验证的 URL”列表中列出的 URL 需要使用 Web 代理,请单击“代理”选项卡。
- 滚动至“域和子域的代理”字段并输入所需的 Web 代理。
- 单击“添加”。
- 单击“保存”。
- 从终端窗口重新启动网关:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
配置 2
在此配置中,服务提供者、身份提供者和“通用域 Cookie 提供者”(CDCP) 未部署在公司内联网中,或者身份提供者是驻留在 Internet 上的第三方提供者。
在此配置中,网关指向服务提供者 Portal Server。此配置对于多个 Portal Server 实例有效。
- 以管理员身份登录到 Access Manager 管理控制台。
- 在管理控制台中,选择“服务配置”选项卡。
- 单击“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
- 单击“添加”。
- 单击“保存”。
- 如果到达“未验证的 URL”列表中列出的 URL 需要使用 Web 代理,请单击“代理”选项卡。
- 滚动至“域和子域的代理”字段并输入所需的 Web 代理。
- 单击“添加”。
- 单击“保存”。
- 从终端窗口重新启动网关:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
配置 3
在此配置中,服务提供者、身份提供者和“通用域 Cookie 提供者”(CDCP) 未部署在公司内联网中,或者服务提供者是驻留在 Internet 上的第三方提供者并且身份提供者受网关保护。
在此配置中,网关指向身份提供者 Portal Server。
此配置对于多个 Portal Server 实例有效。此配置在 Internet 上是不可能的,然而,一些公司网络可以在其内联网内采取这种配置,也即,身份提供者位于受防火墙保护的子网中,并且可从公司网络内部直接访问服务提供者。
- 以管理员身份登录到 Access Manager 管理控制台。
- 在管理控制台中,选择“服务配置”选项卡。
- 单击“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
- 单击“添加”。
- 单击“保存”。
- 如果到达“未验证的 URL”列表中列出的 URL 需要使用 Web 代理,请单击“代理”选项卡。
- 滚动至“域和子域的代理”字段并输入所需的 Web 代理。
- 单击“添加”。
- 单击“保存”。
- 从终端窗口重新启动网关:
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start