本节介绍可应用于与 SGD 服务器的安全连接的调整,包括以下主题:
SSL 守护进程是处理与 SGD 服务器的安全连接的 SGD 组件。在 SGD 主机上,SSL 守护进程作为一个或多个 ttassl
进程列出。
默认情况下,SSL 守护进程会在 TCP 端口 5307 上侦听使用 SSL 加密的 AIP 通信。但是,如果要使用防火墙转发,则 SSL 守护进程将侦听端口 443 并接受 AIP 和 HTTPS 通信。在这种情形下,守护进程将处理 AIP 通信,但将 HTTPS 通信转发到 SGD Web 服务器。
有时,SSL 守护进程上的负载可能会影响性能。如果有采用了多个处理器的服务器,则可将 SSL 守护进程的数量调整为处理器的数量以提高性能。SSL 守护进程调整是特定于每个 SGD 服务器的。默认情况下,SGD 会启动四个 SSL 守护进程。有关如何更改 SSL 守护进程数量的详细信息,请参见第 1.6.1.1 节 “如何调整 SSL 守护进程”。
可以使用日志过滤器来监视 SSL 守护进程。默认情况下,将记录所有错误。可以提高日志输出的数量以帮助调整或进行故障排除,请参见第 1.6.1.2 节 “如何更改 SSL 守护进程日志过滤器”。使用的日志过滤器的格式与用于 SGD 服务器的日志过滤器相同。请参见第 7.4.3 节 “使用日志过滤器对 SGD 服务器问题进行故障排除”。可以使用相同的严重性和目标文件选项。默认情况下,将所有错误记录到 /opt/tarantella/var/log
目录。
如果 SSL 守护进程意外退出,则在完全失败之前,将尝试进行 10 次重新启动。可以更改重新启动的最大尝试次数,请参见第 1.6.1.3 节 “如何更改 SSL 守护进程最大重新启动尝试次数”。
确保没有用户登录到 SGD 服务器,并且没有正在运行的应用程序会话,包括暂停的应用程序会话。
以超级用户 (root) 身份登录 SGD 主机。
更改 SSL 守护进程数量。
使用以下命令:
# tarantella config edit \ --tarantella-config-ssldaemon-minprocessesnum
\ --tarantella-config-ssldaemon-maxprocessesnum
默认的 num
为 4。
使用相同的最大和最小进程数值。
针对处理器数量而不是针对处理器核心数量调整 SSL 守护进程数。仅为每个处理器配置一个 SSL 守护进程。
重新启动 SGD 服务器。
必须重新启动 SGD 服务器,才能使更改生效。
确保没有用户登录到 SGD 服务器,并且没有正在运行的应用程序会话,包括暂停的应用程序会话。
以超级用户 (root) 身份登录 SGD 主机。
更改 SSL 守护进程日志过滤器。
使用以下命令:
# tarantella config edit \
--tarantella-config-ssldaemon-logfilter filter
...
使用逗号分隔的过滤器列表。
默认的过滤器包括:
ssldaemon/*/*error,multi/daemon/*error:sslmulti%%PID%%.log
重新启动 SGD 服务器。
必须重新启动 SGD 服务器,才能使更改生效。
SGD 支持使用外部 SSL 加速器。通过将 SSL 连接所需的处理器密集型事务分流到外部 SSL 加速器,可以提高性能。外部 SSL 加速器还可用于集中服务器 SSL 证书。
本节中的信息适用于将 SSL 加速器用于与 SGD 服务器的连接的场合。《Oracle Secure Global Desktop Gateway 发行版 4.7 管理指南》详细介绍了如何将 SSL 加速器与 SGD Gateway 一起使用。
要将外部 SSL 加速器与 SGD 一起使用,请执行以下操作:
在外部 SSL 加速器上为阵列中的每个 SGD 服务器安装 SSL 证书
配置外部 SSL 加速器来解密 SSL 连接,并将其作为未加密的连接转发给 SGD
在 SGD 中启用外部 SSL 加速器支持
在启用外部 SSL 加速器支持时,SGD SSL 守护进程可以接受为安全连接配置的端口上的纯文本通信,并将其作为经过自己解密的 SSL 通信转发给 SGD。
如果要使用服务器端代理服务器,则可能必须为外部 SSL 加速器配置阵列路由。请参见第 1.3.4 节 “配置服务器端代理服务器”。
可以选择用于与 SGD 服务器的安全连接的密码套件,有关详细信息,请参见第 1.6.3.1 节 “如何更改安全客户端连接的密码套件”。
密码套件是一套用于以下任务的加密算法:
密钥交换-保护创建共享密钥所需的信息
批量加密-加密在客户端与服务器之间交换的消息
消息验证-生成消息散列和签名以确保消息的完整性
密码套件为这些任务中的每项任务指定一种算法。例如,RSA_WITH_RC4_128_MD5 密码套件将 RSA 用于密钥交换,将采用 128 位密钥的 RC4 用于批量加密,以及将 MD5 用于消息验证。
表 1.1 “支持的安全客户端连接密码套件”列出了支持的密码套件。
表 1.1. 支持的安全客户端连接密码套件
支持的密码套件 | 客户端首选项 | OpenSSL 名称 |
---|---|---|
RSA_WITH_AES_256_CBC_SHA | 1 | AES256-SHA |
RSA_WITH_AES_128_CBC_SHA | 2 | AES128-SHA |
RSA_WITH_3DES_EDE_CBC_SHA | 3 | DES-CBC3-SHA |
RSA_WITH_RC4_128_SHA | 4 | RC4-SHA |
RSA_WITH_RC4_128_MD5 | 5 | RC4-MD5 |
RSA_WITH_DES_CBC_SHA | 6 | DES-CBC-SHA |
在选择密码套件时,可以使用密码套件的 OpenSSL 名称,如表 1.1 “支持的安全客户端连接密码套件”中所示。如果选择多个密码套件,则 SGD 客户端将根据上表中显示的客户端首选项顺序确定使用哪个套件。
默认情况下,SGD 客户端使用 RSA_WITH_AES_256_CBC_SHA 密码套件。
确保没有用户登录到阵列中的 SGD 服务器,并且没有正在运行的应用程序会话(包括暂停的应用程序会话)。
以超级用户 (root) 身份登录阵列中的主 SGD 服务器。
停止阵列中的所有 SGD 服务器。
指定密码套件。
使用以下命令:
# tarantella config edit \
--tarantella-config-security-ciphers cipher-suite
...
其中,cipher-suite
是第 1.6.3 节 “选择安全连接的密码套件”中列出的密码套件的 OpenSSL 名称。
默认设置为 AES256-SHA
。
如果指定多个 cipher-suite
,请使用冒号分隔的列表。
重新启动阵列中的所有 SGD 服务器。
必须重新启动 SGD 服务器,才能使更改生效。
连接定义可用于控制在连接到 SGD 服务器时是使用安全连接还是标准连接。连接类型可能取决于以下因素:
用户的客户端设备的 DNS 名称或 IP 地址
用户登录到的 SGD 服务器
如果未在 SGD 服务器上启用 SGD 安全服务,则不管是否有用户的连接定义,与该服务器的安全连接都不可用。
如果 SGD 配置为进行防火墙转发,请不要使用连接定义。防火墙转发始终使用安全连接。请参见第 1.5.2 节 “防火墙穿越”。
如果使用 SGD Gateway,则连接定义仅用于不通过 SGD Gateway 路由的直接客户端连接。
要使用连接定义,必须执行以下操作:
启用连接定义处理-请参见第 1.6.4.1 节 “如何启用连接定义处理”
配置连接定义-请参见第 1.6.4.2 节 “如何配置连接定义”
在启用连接定义处理时,要配置连接定义来确定哪些用户接收标准连接或安全连接。您可以在组织级别配置连接定义;在该级别,可以在组织单元级别或用户配置文件级别进行覆盖。默认情况下,如果启用了 SGD 安全服务,则所有用户都可以接收安全连接。
连接定义使用客户端设备和 SGD 服务器的 IP 地址或 DNS 名称来确定是使用标准连接还是安全连接。连接定义的顺序很重要,因为将使用第一个匹配项。连接定义可以包含 *
或 ?
通配符以匹配多个 DNS 名称或 IP 地址。
例如,Elizabeth Blue 的用户配置文件对象有以下连接定义:
客户端设备地址 | SGD 服务器地址 | 连接类型 |
---|---|---|
|
| 标准 |
|
| 安全 |
如果 Elizabeth 从通常的客户端设备 sales1.example.com
登录 SGD,则将匹配列表中的第一个连接定义,Elizabeth 将接收标准连接。
如果 Elizabeth 从不属于 example.com
的客户端设备登录 SGD,则将匹配列表中的第二个连接定义,Elizabeth 将接收安全连接。
如果 Elizabeth 没有任何连接定义,则连接类型取决于组织层次结构中某个父对象的连接定义。
在管理控制台中,转到 "Global Settings"(全局设置)→ "Security"(安全)选项卡。
选中 "Connection Definitions"(连接定义)复选框。
单击 "Save"(保存)。
在管理控制台中,转到 "User Profiles"(用户配置文件)选项卡,然后选择要配置的对象。
最好为组织和组织单元对象配置连接定义,因为这将一次为许多用户配置连接定义,让管理变得更轻松。
转到 "Security"(安全)选项卡。
添加连接定义。
连接定义中的 DNS 名称或 IP 地址可以包含 *
或 ?
通配符。
在 "Connection Definitions"(连接定义)表中,单击 "Add"(添加)按钮。
此时将显示 "Add New Connection Definition"(添加新的连接定义)窗口。
在 "Client Device Address"(客户端设备地址)字段中,键入一个 IP 地址或 DNS 名称。
在 "Secure Global Desktop Server Address"(Secure Global Desktop 服务器地址)中,键入一个 IP 地址或 DNS 名称。
从列表中选择一种连接类型。
单击 "Add"(添加)。
此时将关闭 "Add New Connection Definition"(添加新的连接定义)窗口,并将连接定义添加到 "Connection Definitions"(连接定义)表中。
根据需要添加其他连接定义。
"Connection Definitions"(连接定义)表还会显示从组织层次结构中的父对象继承的定义。
使用 "Move Up"(上移)和 "Move Down"(下移)按钮更改连接定义的顺序。
连接定义的顺序很重要。将使用第一个匹配的条目。请确保最具体的定义出现在较一般的定义之前。