第 3 章 保护 Fuse 控制台
保护 Apache Karaf 上的 Fuse 控制台:
在部署到 AWS 时禁用 Fuse 控制台代理 servlet
如果要将独立 Fuse 应用程序部署到 Amazon Web Services(AWS),您应该通过将
hawtio.disableProxy
系统属性设置为true
来禁用 Fuse Console 的代理 servlet。注意当您禁用 Fuse 控制台代理 servlet 时,Fuse Console 的 Connect 选项卡被禁用,您无法从 Fuse 控制台连接到其他 JVM。如果要在 AWS 上部署多个 Fuse 应用程序,则必须为每个应用程序部署 Fuse 控制台。
将 HTTPS 设置为所需协议
您可以使用
hawtio.http.strictTransportSecurity
属性来要求 Web 浏览器使用安全 HTTPS 协议来访问 Fuse 控制台。此属性指定尝试使用 HTTP 访问 Fuse 控制台的 Web 浏览器必须自动转换请求以使用 HTTPS。使用公钥来保护响应
您可以使用
hawtio.http.publicKeyPins
属性来确保 HTTPS 协议的安全,方法是指示 Web 浏览器将特定的加密密钥与 Fuse 控制台关联,以减少"man-in-the-the-the-the-the-middle"攻击的风险。启用 SSL/TLS 安全性
对于 Fuse 控制台,默认不启用 SSL/TLS 安全性。建议您在 Fuse 控制台中启用 SSL/TLS 安全性来保护用户名/密码凭证不受 snooping。
- 实施 Red Hat Single Sign On
控制用户访问权限
允许经过身份验证的用户执行的操作取决于分配给该用户的角色(或角色),如 表 4.1 “Karaf 独立基于角色的访问权限” 中列出的。
流程
要将 HTTPS 设置为所需的协议,请在
$KARAF_HOME/etc/system.properties
文件中设置hawtio.http.strictTransportSecurity
属性,如下例所示:hawtio.http.strictTransportSecurity = max-age=31536000; includeSubDomains; preload
要使用公钥来保护响应,请设置
$KARAF_HOME/etc/system.properties
文件中的hawtio.http.publicKeyPins
属性,如下例所示:hawtio.http.publicKeyPins = pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs"; max-age=5184000; includeSubDomains
(仅用于在 AWS 上部署)要禁用 Fuse Console 的代理 servlet,在
$KARAF_HOME/etc/system.properties
文件中将hawtio.disableProxy
属性设为true
,如下例所示:hawtio.disableProxy = true;
- 有关如何启用 SSL/TLS 安全性的详细信息,请参阅 Apache Karaf 安全指南中的"为 Undertow 启用 SSL/TLS"一节中的"启用 SSL/TLS"。https://access.redhat.com/documentation/zh-cn/red_hat_fuse/7.11/html-single/apache_karaf_security_guide/index
- 有关如何使用红帽单点登录保护 Fuse 控制台的详情,请参考 Red Hat Single Sign-on 保护 应用程序和服务指南中的有关保护 Hawtio 管理控制台的安全部分。
要确保用户具有必要的用户角色授权来执行用户需要执行的 Fuse Console 操作,请按照以下步骤设置用户角色:
-
在编辑器中打开 Red Hat Fuse
etc/users.properties
文件。 为用户名、密码和角色添加条目。
例如,以下条目在
etc/users.properties
文件中定义 admin 用户,并授予 admin 角色。admin = secretpass,admin
- 保存该文件。
-
在编辑器中打开 Red Hat Fuse
其他资源
-
有关
hawtio.http.strictTransportSecurity
属性语法的描述,请查看 HTTP Strict Transport Security(HSTS) 响应标头的描述页。 -
有关
hawtio.http.publicKeyPins
属性语法的描述,包括如何提取 Base64 编码公钥的说明,请参阅 HTTP Public Key Pinning 响应标头的描述页面。