ActiveMQ软件默认情况下是没有配置安全参数。攻击者可以利用默认配置弱点发动远程命令执行攻击,获取服务器权限,从而导致数据泄露。
修复方式
ActiveMQ管理后台的默认用户名和密码都是admin,默认端口为8061。ActiveMQ采用的是JETTY服务器,所以修密码也是修改JETTY的配置(jetty.xml、jetty-realm.properties)。
jetty.xml:
<bean id="securityConstraint" class="org.eclipse.jetty.util.security.Constraint">
<property name="name" value="BASIC" />
<property name="roles" value="admin" />
<property name="authenticate" value="true" />
</bean>
注意:第三个属性authenticate需要设置为true。
jetty-realm.properties:
# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
admin: 你的密码, admin
user: user, user
如果现场只是要求修改登录密码,到这儿你已经可以重启ActiveMQ的容器了。
如果不设置ActiveMQ安全机制,任何知道ActiveMQ服务的IP、端口和消息地址的人,都可以接受和发送消息。推荐您使用以下简单配置,在conf/activemq.xml文件broker标签里的systemUsage标签前加入如下内容:
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="admin" password="你的密码" groups="users,admins"/>
</users>
</simpleAuthenticationPlugin>
</plugins>
注意:必须要在标签前,否则ActiveMQ服务重启会报错。
所有配置完毕后重启ActiveMQ服务。