小技巧使用HAProxy为多台堡垒机配置SSH负载均衡
Posted 运维审计
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小技巧使用HAProxy为多台堡垒机配置SSH负载均衡相关的知识,希望对你有一定的参考价值。
本篇是堡垒机小技巧系列的文章,小技巧文章内容都将以技术干货为主。
本篇文章主要目的在于为购买了多套产品的客户提供除了HA双机部署以外,还有更多的选择。
HAProxy可以为4-7层协议提供负载均衡服务,具体功能可以http://www.haproxy.org 查看,在此不再赘述。
由于运维审计是旁路代理产品,其中的SSH代理引擎需要模拟一个完整的SSH协议服务器来截取协议数据流,并生成审计录像。
SSH协议中有一个十分重要的功能:传输加密,这使得每个SSH连接在传输的过程中即使被窃听也不会丧失数据的机密性。同样的,堡垒机的SSH服务也完整的支持了SSH协议加密功能,目前堡垒机支持两种为最终对称加密算法密钥协商所使用的前导加密算法,DSA和RSA。
每次我们第一次连接某个SSH服务器的时候,大家应该见过这样的提示:
输入“yes”以后,以后就不会再让大家输入yes/no了:
因为SSH客户端已经自动将主机RSA指纹“a5:20:9c:e7:c4:3b:52:fe:61:72:d2:b2:91:a1:81:a2”的公钥存入了~/.ssh/known_hosts文件中,其他客户端如SecureCRT、Xshell等也会相应的保存到它们自己的类似known_hosts文件作用的列表中:
当使用HAProxy为多套安恒堡垒机做SSH负载均衡时,同样会有概率出现上图所出现的情况,因为多套独立的安恒堡垒机在第一次开机初始化时,都会各自生成提供SSH加密所必需的主机密钥,比如说现在有两套堡垒机,A和B,A生成了A-Key1,B生成了B-Key1。
由于HAProxy直接通过TCP模式代理堡垒机的SSH协议代理端口,SSH会记录10.11.200.200的RSA密钥为A-Key1,下次建立新连接的时候,HAProxy就可能将后端IP指向到堡垒机B:
但这时,known_hosts中保存的密钥仍然是A-Key1,就会出现上面的中间人攻击提示:
要避免类似的情况出现,可以在安恒运维审计管理界面上,通过【系统】【系统配置】【SSH KEY配置】选项卡中,上传预先生成好的SSH公钥,统一多套安恒运维审计的SSH代理公钥。
操作步骤:
使用ssh-keygen工具,分别生成RSA和DSA密钥对,私钥保护密码请留空:
RSA:
DSA:
然后分别将生成的dbapp_rsa和dbapp_dsa中的内容通过【系统】【系统配置】【SSH KEY配置】选项卡上传到安恒堡垒机中:
然后在HAProxy中代理两台SSH端口即可:
然后使用客户端连接HAProxy的负载均衡端口:
再也不会出现MITM攻击告警提示了,至此全部配置完毕,希望本系列文章可以帮助大家进一步的使用安恒堡垒机的“隐藏秘籍”。
以上是关于小技巧使用HAProxy为多台堡垒机配置SSH负载均衡的主要内容,如果未能解决你的问题,请参考以下文章