漏洞描述:
ActiveMQ是目前较为流行的一款开源消息服务器。默认情况下,ActiveMQ服务是没有配置安全参数,恶意人员利用默认配置弱点实现远程命令执行攻击,获取服务器权限,从而导致数据泄露事件发生。
漏洞等级:
高危
漏洞利用方式:
黑客可以直接在互联网远程利用获取服务器权限。
漏洞修复方案:
ActiveMQ的安全配置分为控制台安全配置和后台安全配置。控制台安全配置是指用户通过浏览器登录ActiveMQ管理界面,对ActiveMQ进行管理的一个安全配置;主要是添加用户和密码。后台安全配置是指程序通过ActiveMQ发送消息的一个安全配置。
1.强烈建议不要将管理后台开放到互联网上,您可以使用ECS安全组策略做好访问控制,默认策略为拒绝所有通信,根据业务发布情况仅开放需要对外用户提供的服务,并控制好访问源IP。
ECS安全组配置手册
2.ActiveMQ分为web控制台的安全配置和队列/主题服务的访问安全配置:
ActiveMQ web管理控制台安全设置
(1)修改端口号:
ActiveMQ的管理后台
http://localhost:8161/admin 默认用户名密码admin,admin
默认端口8061,采用的JETTY服务器,所以修改端口和密码也是改JETTY的配置jetty.xml、jetty-realm.xml
密码改为weigq 端口改为8191
注意:
<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.
端口部分:
<bean id="Server" class="org.eclipse.jetty.server.Server" init-method="start"
destroy-method="stop">
<property name="connectors">
<list>
<bean id="Connector" class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<property name="port" value="8191" />
</bean>
(2)在修改用户名和密码(用户名改为parry,密码改成parry123)
建议使用十位以上数字+字母+特殊符号的强密码 ;
控制台的登录用户名密码保存在conf/jetty-realm.properties文件中,内容如下:
# username: password [,rolename ...]用户名和密码的格式:
用户名 : 密码 ,角色名
parry: parrYd@#1w%6, admin
user: user, user
- 设置连接ActiveMQ的用户名和密码
如果不设置ActiveMQ安全机制的话,任何人如果知道我们的ActiveMQ服务的IP、端口和消息地址,都可以接受和发送消息。
推荐最简单的配置,在conf/activemq.xml文件的broker标签里的<systemUsage>标签前加入如下内容:
<plugins>
<simpleAuthenticationPlugin>
<users>
<authenticationUser username="parry" password="parry123" groups="users,admins"/>
</users>
</simpleAuthenticationPlugin>
注意:必须要在<systemUsage>标签前,否则ActiveMQ服务重启会报错。
所有配置完毕后重启ActiveMQ服务即可。
提示:为避免数据丢失,升级前请做好备份,或ECS建立硬盘快照。
配置方案有多种,详细可参考:
http://activemq.apache.org/security.html
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。