rocketmq安全漏洞
漏洞内容
服务器支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)【原理扫描】
该漏洞存在于SSL renegotiation的过程中。对于使用SSL重协商功能的服务都会受其影响。
特别的,renegotiation被用于浏览器到服务器之间的验证。
虽然目前可以在不启用renegotiation进程的情况下使用HTTPS,但很多服务器的默认设置均启用了renegotiation功能。
该漏洞只需要一台普通电脑和DSL连接即可轻易攻破SSL服务器。
而对于大型服务器集群来说,则需要20台电脑和120Kbps的网络连接即可实现。
SSL是银行、网上电子邮件服务和其他用于服务器和用户之间保护私人数据并安全通信必不可少的功能。
所以本次拒绝服务漏洞影响范围非常广危害非常大。
判断处理办法
因为rocketmq使用tls协议来处理通信,但是仍然使用tlsV1协议版本,改漏洞应该是因为tls协议版本过低导致的,所以需要通过一些方案修改tls协议版本。
提供方案
rocketmq不释放或者映射端口,然后部署一个nginx的容器。
将nginx容器与rocketmq-namesrv容器通过docker网桥进行连接,使用nginx代理rocketmq-namesrv的9876端口;
然后在nginx代理层对“TLS Client-initiated 重协商攻击”漏洞进行修复,然后释放nginx端口,映射为9876.
遇见问题
因为rocketmq的9876端口采用TCP进行连接,所以需要在nginx上要采用stream的配置方式。但是,nginx默认不会安装tcp的ssl组件(ngx_stream_ssl_module ),
所以需要重新编译nginx
最终配置
stream {
server {
listen 9876 ssl;
access_log logs/ldap_access.log tcp;
ssl_protocols TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# 设置服务端使用的密码套件
ssl_certificate ssl/www_nginxbar_org.pem;
ssl_certificate_key ssl/www_nginxbar_org.key;
ssl_session_timeout 5m; # SSL TCP会话缓存超时时间为10分钟
ssl_prefer_server_ciphers on;
proxy_pass rocketmq-namesrv:9876;
proxy_ssl on; # 启用SSL/TLS协议,与被代理服务器建立连接
proxy_ssl_session_reuse on; # 与被代理服务器SSL TCP连接的SSL会话重用功能
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!