6.2.2. 配置 JMX 管理访问
出于安全原因,默认禁用对代理的远程 JMX 访问。但是,AMQ 代理有一个 JMX 代理,允许远程访问 JMX MBeans。您可以通过在代理 management.xml
配置文件中配置连接器元素来启用 JMX 访问。
注意
虽然也可以使用 'com.sun.management.jmxremote ' JVM 系统属性启用 JMX 访问,但这种方法不受支持且不安全。修改 JVM 系统属性可以绕过代理上的 RBAC。为最大程度降低安全风险,请考虑对本地主机进行有限访问。
重要
公开代理的 JMX 代理以进行远程管理具有安全隐患。
保护您的配置,如以下流程所述:
- 将 SSL 用于所有连接。
- 明确定义连接器主机,即用于公开代理的主机和端口。
- 显式定义 RMI(Remote Method Invocation)registry 绑定到的端口。
先决条件
- 正常工作的代理实例
-
Java
jconsole
工具
流程
-
打开
<broker-instance-dir>/etc/management.xml
配置文件。 为 JMX 代理定义连接器。connector-port 设置建立一个 RMI 注册表,供 JMX 连接器服务器的 jconsole 查询等客户端创建。例如,允许在端口 1099 上进行远程访问:
<connector connector-port="1099"/>
使用
jconsole 验证与 JMX 代理的连接
:service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
定义连接器的其他属性,如下所述。
- connector-host
-
要在其上公开代理的代理服务器主机。要防止远程访问,请将 connector
-host
设置为127.0.0.1
(本地主机)。 - rmi-registry-port
- JMX RMI 连接器服务器绑定到的端口。如果没有设置,端口始终是随机的。设置此属性以避免通过防火墙隧道远程 JMX 连接时出现问题。
- jmx-realm
-
用于身份验证的 JMX 域.默认值是
activemq
,以匹配 JAAS 配置。 - object-name
-
要公开远程连接器的对象名称。默认值为 connector
:name=rmi
。 - 已保护
-
指定连接器是否使用 SSL 保护。默认值为
false
。将值设为true
以确保通信安全。 - key-store-path
-
密钥存储的位置.如果您设置了 secure
="true"
,则需要此项。 - key-store-password
-
密钥存储密码.如果您设置了 secure
="true"
,则需要此项。密码可以加密。 - key-store-provider
-
密钥存储提供程序.如果您设置了 secure
="true"
,则需要此项。默认值为JKS
。 - trust-store-path
-
信任存储的位置。如果您设置了 secure
="true"
,则需要此项。 - trust-store-password
-
信任存储密码.如果您设置了 secure
="true"
,则需要此项。密码可以加密。 - trust-store-provider
-
信任存储提供程序.如果您设置了 secure
="true"
,则需要此项。默认值为JKS
- password-codec
- 要使用的密码 codec 的完全限定类名称。更多相关信息,请参阅以下链接的密码屏蔽文档。
-
按照 Java 平台文档 中所述,使用
jdk.serialFilter
为端点序列化设置适当的值。
其它资源
- 有关配置文件中加密密码的更多信息,请参阅配置文件 中的加密密码。