堡垒机,就是运维审计系统,它和防火墙几乎是一个时期的东西,最近两年等级保护政策让它又值钱了,包括腾讯云、华为云以及阿里云都在做。堡垒机的底层开发是基于ssh/rdp/vnc/x11/sftp/telnet等协议的研究,目前有开源项目,像guacamole/xrdp/freerdp都是非常优秀的c语言开源项目,本人研究改造源码有两年了。
xrdp的代码架构很优秀,能代理rdp/vnc/xorg,但是没有数据记录和控制,需要自己添加代码,包括用户信息代填,录像,实时监控,剪切板控制,共享磁盘,权限控制等。xrdp支持多线程和多进程,在此忠告,不要使用多线程模式。xrdp不支持x11中转,如果需要支持xorg,需要自己代理x11客户端去连接xdmcp服务器。
guacamole代码前端是java封装的war包,后端即guacamole-server使用c语言编写,支持ssh/vnc/rdp,支持监控和录像。但ssh协议的字符审计不支持,需要自己根据业务做更改。
freerdp是关于rdp协议封装好的c语言接口,同时也提供client工具,如果基于它做堡垒机,工作量是比较大的,首先要了解rdp协议本身,你可能要抓包。teamview开发团队就是基于freerdp。通过freerdp做rdp的代理,比较废时,但却能做多个业务。
协议代理的业务短时间说不完,有时间再具体分析一下吧。