配置 WebLogic 域的安全
以下部分描述如何设置 WebLogic 域的安全配置选项: 启用WebLogic Server 域之间的信任 使用连接筛选器 使用Java 容器授权合同 查看MBean 特性 WebLogicServer 中的密码保护方式 保护用户帐户注意:上述部分适用于使用此版本的 WebLogic Server 中的安全功能的 WebLo
注意: | 上述部分适用于使用此版本的 WebLogic Server 中的安全功能的 WebLogic Server 部署以及使用兼容性安全的部署。 |
启用 WebLogic Server 域之间的信任
注意: | 在启用 WebLogic Server 域之间的信任后,会将服务器暴露于中间人攻击之下。因此,在启用生产环境中的信任时应十分谨慎。BEA 建议使用强网络安全,例如使用专用通信通道或由强防火墙提供保护。 |
建立域之间的信任关系,是为了使一个 WebLogic Server 域的主题中的委托人作为另一个域的委托人被接受。启用此功能后,将通过 RMI 连接在 WebLogic Server 域之间传递标识,而无需在第二个域中进行身份验证(例如,以 Joe 的身份登录到域 1 中,当对域 2 进行 RMI 调用时,仍会对 Joe 进行身份验证)。启用内部域信任后,事务可跨越域提交。当一个域的域凭据与另一个域的域凭据相匹配时,就会建立信任关系。
默认情况下,域凭据是在首次启动 WebLogic Server 域时随机创建的。此过程可以确保,在默认情况下不会存在使用同一凭据的两个 WebLogic Server 域。要启用两个 WebLogic Server 域之间的信任,必须为这两个 WebLogic Server 域中的凭据显式指定相同的值。在管理控制台中,使用“域”节点下的“安全 : 高级”页上的配置选项可以设置域凭据。在“凭据”和“确认凭据”字段中,请使用为每个域指定的相同凭据替换随机凭据。
在创建委托人时,WebLogic Server 将使用域凭据对委托人进行签名。当从远程源收到主题时,将对其委托人进行验证(将重新创建签名,如果签名匹配,则表明远程域具有相同的域凭据)。如果验证失败,将生成错误。如果验证成功,将信任这些委托人,就如同他们是本地创建的一样。
注意: | 下次将 config.xml 文件持久保存到磁盘时,任何采用明文形式的凭据都将被加密。 |
如果需要 WebLogic Server 6.x 域与其他 WebLogic Server 域进行互操作,请将 WebLogic Server 域中的域凭据更改为 WebLogic Server 6.x 域中的 system
用户的密码。
如果要在受管服务器环境中启用域之间的信任,必须停止两个域中的管理服务器和所有受管服务器,然后重新启动它们。如果不执行此步骤,未重新引导的服务器将不会信任已重新引导的服务器。
在启用 WebLogic Server 域之间的信任时,请记住以下几点:
请参阅“管理控制台联机帮助”中的启用域之间的信任关系。
注意: | 也可以使用 WebLogic 脚本工具或 Java 管理扩展(Java Management Extensions,简称 JMX)API 来修改安全配置。 |
使用连接筛选器
连接筛选器允许拒绝网络级别的访问。它们可以用于保护各个服务器、服务器群集或整个内部网或企业内部网上的服务器资源。例如,可以拒绝任何来自公司网络外部的非 SSL 连接。网络连接筛选器是一种防火墙,可以将它们配置为基于协议、IP 地址和 DNS 节点名进行筛选。
在使用管理端口时,连接筛选器尤为有用。根据网络防火墙的配置,也许可以使用连接筛选器进一步限制管理访问。一种典型的用法是,限制仅域中的服务器和计算机拥有对管理端口的访问权限。攻击者即使可以访问位于防火墙内的计算机,仍无法执行管理操作,除非攻击者的计算机已被授予访问权限。
WebLogic Server 提供了名为 weblogic.security.net.ConnectionFilterImpl
的默认连接筛选器。此连接筛选器接受所有传入连接,同时还提供了一些静态工厂方法,使服务器可以获取当前的连接筛选器。要将此连接筛选器配置为拒绝访问,只需在 WebLogic 管理控制台中输入连接筛选器规则即可。
也可以通过实现 weblogic.security.net
包中的类来使用自定义连接筛选器。有关编写连接筛选器的信息,请参阅“WebLogic 安全性编程”中的使用网络连接筛选器。与默认连接筛选器相同,自定义连接筛选器也在 WebLogic 管理控制台中配置。
使用 Java 容器授权合同
Java 容器授权合同(Java Authorization Contract for Containers,简称 JACC)标准可以替换 WebLogic Server 提供的 EJB 和 Servlet 容器部署和授权。在将 WebLogic Server 域配置为使用 JACC 时,EJB 和 Servlet 授权决策将通过 JACC 框架中的类做出。WebLogic Server 中的所有其他授权决策仍将由 WebLogic 安全框架决定。有关 WebLogic JACC 提供程序的信息,请参阅“WebLogic 安全性编程”中的使用 Java 容器授权合同。
可以将 WebLogic Server 配置为结合使用 JACC 和命令行启动选项。有关详细信息,请参阅 weblogic.Server 命令行参考中对 -Djava.security.manager
选项的描述。
请注意,域中的管理服务器和所有受管服务器都需要使用相同的 JACC 配置。如果在管理服务器上更改 JACC 设置,则应关闭受管服务器并使用与管理服务器相同的设置重新引导它们,以免出现安全漏洞。否则,域中的 EJB 和 Servlet 似乎受到 WebLogic 安全框架角色和策略的保护,但实际上,受管服务器仍在 JACC 下操作。
查看 MBean 特性
“已启用匿名 Admin 查找”选项指定是否允许从 MBean
API 对 WebLogic Server MBean 进行匿名只读访问。通过此匿名访问,可以查看未显式标记为受 Weblogic Server MBean 授权过程保护的任何 MBean 特性的值。默认情况下启用此选项,以确保实现向后兼容性。要获得更高的安全性,应禁用此匿名访问。
要通过 WebLogic 管理控制台验证“已启用匿名 Admin 查找”选项的设置,请查看管理控制台中的“域: 安全: 常规”页或 SecurityConfigurationMBean.AnonymousAdminLookupEnabled
特性。
WebLogic Server 中的密码保护方式
对用于访问 WebLogic Server 域中的资源的密码进行保护是一项十分重要的任务。过去,用户名和密码都以明文形式存储在 WebLogic 安全领域中。现在,WebLogic Server 域中的所有密码都经过散列处理。SerializedSystemIni.dat
文件包含密码的散列。它与特定的 WebLogic Server 域关联,因此不能在域之间移动。
如果 SerializedSystemIni.dat
文件被破坏或受损,则必须重新配置 WebLogic Server 域。因此,应采取以下防范措施:
保护用户帐户
WebLogic Server 定义了一组可保护用户帐户免受入侵者攻击的配置选项。在默认的安全配置中,这些选项被设置为最高的保护级别。可以使用管理控制台在“配置: 用户锁定”页上修改这些选项。
系统管理员可以选择执行下列操作:关闭所有配置选项;增加在锁定用户帐户前的登录尝试次数;延长在锁定用户帐户前进行无效登录尝试的时间段;更改锁定用户帐户的时间长度。请记住,更改这些配置选项会降低安全性,使用户帐户更易于受到安全攻击。请参阅“管理控制台联机帮助”中的设置用户锁定特性。
注意: | 用户锁定选项适用于默认安全领域及其所有安全提供程序,但不能用于默认安全领域之外的安全领域中的自定义安全提供程序。要将用户锁定选项用于自定义安全提供程序,应在默认安全领域中配置该自定义安全提供程序。在身份验证过程中,应将自定义提供程序包括在 WebLogic 身份验证提供程序和 WebLogic 标识声明提供程序之后。此顺序可能会对性能产生较小的影响。 |
注意: | 如果要使用的身份验证提供程序将通过其自身的机制来保护用户帐户,请禁用“已启用锁定”。 |
注意: | 如果在某用户帐户变为锁定状态后将其删除,然后添加另一个使用同一名称和密码的用户帐户,将不会重置用户锁定配置选项。 |
有关在管理控制台上对已锁定用户帐户取消锁定的信息,请参阅“管理控制台联机帮助”中的解除对用户帐户的锁定。无法通过 WebLogic 管理控制台对受管服务器上的已锁定用户帐户执行取消锁定操作。取消锁定信息将通过仅在群集环境中配置的多播消息进行传播。请改用下列命令:
java weblogic.Admin -url
url
-username
adminuser
-password
passwordforadminuser
-type weblogic.mangement.security.authentication.UserLockoutManager -method clearLockout
lockedusername
也可以等待在“锁定持续时间”特性中指定的时间:用户帐户将在经过指定的时间后取消锁定。
运行兼容性安全:主要步骤
-
config.xml
文件)的备份副本。 -
config.xml
文件中不存在以下内容,请添加此内容,同时将其中的值替换为域、安全领域和FileRealm
的实际名称:<Security Name="
mydomain"
Realm="
mysecurity"
/>
<Realm Name="mysecurity"
FileRealm=
"myrealm
"/>
<FileRealm Name="myrealm"
/>
-
-
-
要验证兼容性安全的运行是否正确,请打开新的 WebLogic Server 管理控制台。如果正在运行兼容性安全,则“域结构”窗格的左侧将显示“兼容性安全”节点。
兼容性安全 MBean 的有限可见性
所有兼容性安全 MBean 都标记为已排除,因此它们在 WebLogic 脚本工具中的可见性是有限的。例如,如果使用类似以下内容的命令:
java weblogic.WLST connect() ls()
则会列出 DomainMBean
的特性,但会排除 FileRealmMBean
等兼容性安全特性。但是,如果直接对兼容性 MBean 寻址,则可以对其进行访问,如以下示例所示:
java weblogic.WLST connect() cmo.getFileRealms()
CompatibilityRealm 中的默认安全配置
默认情况下,CompatibilityRealm
通过领域适配器仲裁提供程序、领域适配器身份验证提供程序、WebLogic 授权提供程序、领域适配器授权提供程序、WebLogic 凭据映射提供程序以及 WebLogic 角色映射提供程序进行配置。
CompatibilityRealm
中,领域适配器身份验证提供程序由config.xml
文件中定义的 6.x 安全领域中的用户和组填充。-
-
有关配置领域适配器身份验证提供程序的信息,请参阅配置领域适配器身份验证提供程序。通过在领域适配器身份验证提供程序中配置标识声明提供程序,可以在兼容性安全中使用weblogic.security.acl.CertAuthenticator
类的实现。有关详细信息,请参阅在领域适配器身份验证提供程序中配置标识声明提供程序。
-
CompatibilityRealm
访问weblogic.security.audit.AuditProvider
类的实现。有关详细信息,请参阅“管理控制台联机帮助”中的配置领域适配器审核提供程序。
配置领域适配器身份验证提供程序
在使用兼容性安全时,默认情况下将为 CompatibilityRealm
配置一个领域适配器身份验证提供程序。有关在 CompatibilityRealm
中使用领域适配器身份验证提供程序的信息,请参阅 CompatibilityRealm 中的默认安全配置。
领域适配器身份验证提供程序还允许在此版本的 WebLogic Server 中使用 weblogic.security.acl.CertAuthenticator
类的实现。领域适配器身份验证提供程序包含一个标识声明提供程序,用于基于 X.509 标记声明标识。有关在 WebLogic Server 中使用证书验证器的信息,请参阅在领域适配器身份验证提供程序中配置标识声明提供程序。
在向已配置身份验证提供程序的安全领域中添加领域适配器身份验证提供程序时,WebLogic Server 会将该领域适配器身份验证提供程序上的 JAAS 控制标志设置为 OPTIONAL 并在域目录中检查是否存在fileRealm.properties
文件。如果 fileRealm.properties
文件不存在,则 WebLogic Server 不会将该领域适配器身份验证提供程序添加到安全领域中。
注意: | 由领域适配器身份验证提供程序生成的主题不包含用户所属组的委托人。应使用 weblogic.security.SubjectUtils.isUserInGroup() 方法来确定用户是否属于某个组。当使用由领域适配器身份验证提供程序生成的主题时,将无法迭代用户所属的组的整个集合。 |
在领域适配器身份验证提供程序中配置标识声明提供程序
领域适配器身份验证提供程序包含一个标识声明提供程序。该标识声明提供程序针对不赞成使用的 weblogic.security.acl.CertAuthenticator 类的实现提供向后兼容性。将基于 X.509 标记执行标识声明。默认情况下,领域适配器身份验证提供程序中不启用标识声明提供程序。
有关如何启用标识声明提供程序的信息,请参阅“管理控制台联机帮助”中的启用标识声明提供程序。
配置领域适配器审核提供程序
通过领域适配器审核提供程序,可以在使用兼容性安全时使用 weblogic.security.audit.AuditProvider 接口的实现。为使领域适配器审核提供程序正常工作,必须定义 AuditProvider
接口的实现。在管理控制台中,通过使用“域: 兼容性安全: 常规”页上的“审核提供程序类”字段可以定义 AuditProvider
类。
有关信息,请参阅“管理控制台联机帮助”中的配置领域适配器审核提供程序。
保护兼容性安全中的用户帐户
密码猜测是一种常见的安全攻击类型。在此类型的攻击中,黑客会尝试使用各种用户名和密码组合登录到某一计算机中。Weblogic Server 提供了一组锁定配置选项来保护用户帐户免受此类型的攻击。默认情况下,这些选项设置为最高保护级别。系统管理员可以选择执行下列操作:关闭所有选项;增加在锁定用户帐户前的登录尝试次数;延长在锁定用户帐户前进行无效登录尝试的时间段;更改锁定用户帐户的时间量。请记住,更改这些配置选项会降低安全性,使用户帐户更易于受到安全攻击。
可以使用两组配置选项来保护用户帐户,一组在域级别设置,另一组在安全领域级别设置。用户可能会注意到,如果在设置一组配置选项(例如,针对安全领域的选项)后超过其中任何一个值,将不会锁定用户帐户。发生这种情况是因为,域级别的用户帐户锁定选项替换了安全领域级别的用户帐户选项。要避免出现这种情况,请禁用安全领域级别的用户帐户锁定选项。
警告: | 如果禁用安全领域级别的用户锁定配置选项,必须设置域上的用户锁定配置选项,否则,用户帐户将失去保护。 |
有关信息,请参阅“管理控制台联机帮助”中的保护用户帐户和取消对用户帐户的锁定。
从兼容性安全访问 6.x 安全
使用兼容性安全的前提是,安全领域中包含一个现有的 config.xml
文件,其中定义了用户和组以及 ACL 来保护 WebLogic Server 域中的资源。WebLogic Server 6.x 安全管理任务(例如配置安全领域或定义 ACL)并不是必需的,因此本部分将不再对这些管理任务进行描述。但是,如果损坏了现有的 6.x 安全领域并且只能通过还原来解决,则可执行下列 6.x 安全管理任务(这些信息在 WebLogic Administration Console 的联机帮助中的“兼容性安全”主题中描述):
警告: | 兼容性安全仅提供向后兼容性,不应视为长期的安全解决方案。 |
更多推荐
所有评论(0)