网站首页 > 技术教程 正文
1 guacamole简介
堡垒机实现中通常需要对SSH,RDP和VNC的支持,可能还需要Telnet等等,这么多的协议需要实现,工作量可想而知。
众所周知,计算机世界里的事是没有一个抽象层不能解决的,如果有,那就两层。
我们今天的抽象层即是Guacamole。
Guacamole是一种无客户端的远程桌面协议,安装Guacamole服务后只需要浏览器便可接入多种远程桌面信息,如RDP、VNC和SSH等。Guacamole对远程桌面协议的封装,为堡垒机(如OneTerm)的实现提供了极大的便利。
有了这个利器,对于SSH,RDP,VNC等等协议我只想说四个字
2 guacamole架构
1) 核心组件
Guacamole的架构设计主要分为两个核心组件:Guacamole服务器端(通常简称为"guacamole")和guacd守护进程。这两个组件通过Guacamole协议相互通信,提供了一个无需客户端软件、基于Web的远程桌面访问解决方案。
- Guacamole服务器端(guacamole)
Guacamole服务器端是系统的前端部分,基于Web的应用程序,负责处理用户通过浏览器发起的远程桌面会话请求,主要功能如下:
用户交互:提供用户界面,接收用户的登录信息和远程桌面访问请求。
会话管理:处理用户会话,包括身份验证和授权。
数据转发:将用户的输入(如键盘和鼠标事件)转发给guacd守护进程,并将远程桌面的屏幕更新、鼠标移动和其他事件从guacd接收后,转换为适合Web浏览器显示的格式。
Guacamole服务器端通常部署为一个Web应用程序,运行在支持Servlet的Web服务器上,如Apache Tomcat。
- guacd守护进程
guacd是Guacamole架构的核心组件,负责底层的数据处理和协议转换。它是一个独立的后台进程,执行以下关键功能:
协议转换:作为远程桌面协议(如RDP、VNC、SSH等)与Guacamole协议之间的桥梁,负责将用户的操作转换为远程系统能理解的命令,同时将远程系统的响应转换回Guacamole协议。
会话管理:管理所有远程桌面会话的实际连接,包括启动、维护和关闭会话。
数据传输:处理图形界面更新、鼠标和键盘事件的传输。
guacd通过监听TCP端口等待Guacamole服务器端的连接和请求。每个远程桌面会话由guacd单独处理,以保证稳定性和安全性。
2)guacamole协议
guacamole协议是串联client和server和纽带,其格式为
OPCODE,ARG1,ARG2,ARG3,...;
协议中每一项通过“,”分割。第一项OPCODE为指令,剩余项为该指令的参数。以“;”结尾。每一项组成格式如下
LENGTH.VALUE
每项以“.”分割。LENGTH为数字,表示VALUE的长度,VALUE为实际参数值。
如下为设置窗口大小的指令
4.size,1.0,4.1024,3.768;
3 guacamole连接
guacamole连接的创建类似一种协商过程
- 用户通过select开启协商过程,参数为要使用的远程桌面协议
6.select,3.vnc;
2. guacd加载远程桌面协议并返回需要用户协商的字段
4.args,13.VERSION_1_1_0,8.hostname,4.port,8.password,13.swap-red-blue,9.read-only;
3.下一步用户需要发送支持的audio video等参数
4.size,4.1024,3.768,2.96;
4. 用户解析第二步获取的需要协商的字段并填充值,使用connect命令发送到guacd,这些值按顺序填充,如果没有设置则为0。
7.connect,13.VERSION_1_1_0,9.localhost,4.5900,0.,0.,0.;
5. 收到connect命令后,guacd会真正连接目标机器,如果成功则将结果通过ready返回,其中包含唯一的connectionid,否则返回错误。
6. 之后就可以完成的连接了
4 OneTerm中的实战
OneTerm的实现实际上取代了架构中server内的guacamole部分。其主要职责即为接收web段连接请求,连接guacd,作为中间人进行消息转发。
但是OneTerm除了转发实现了更多功能,如支持网关转发,这样guacd就可以随意部署,内网机器可通过网关访问。
支持空闲超时自动关闭,接入时间检测等,让你的机器接入更加安全。
同时支持管理员实时监控、事后回放审计和在线连接中断,管理能力更强。
更多详情可访问OneTerm开源地址:
https://github.com/veops/oneterm
猜你喜欢
- 2025-03-17 怎么使用远程桌面传输文件?(怎么使用远程桌面传输文件夹)
- 2025-03-17 5月27日起退休!微软旧版远程桌面告别,新App能否惊艳?
- 2025-03-17 微软宣布2025年下架“Microsoft 远程桌面”应用
- 2025-03-17 Win10 精简版 Tiny10 更新:加入远程桌面功能
- 2025-03-17 P2Link通过内置远程桌面服务在网页端控制电脑
- 2025-03-17 基于C++音视频高手课-WebRTC远程桌面后台服务实战-(完结)
- 2025-03-17 远程桌面命令的使用方法,赶紧收藏
- 2025-03-17 远程桌面好用但不安全怎么办?一分钟教会你给远程桌面加两道安全
- 2025-03-17 微软宣布2025年下架「Microsoft 远程桌面」应用
- 2025-03-17 云终端,云终端如何设置远程桌面?
你 发表评论:
欢迎- 最近发表
-
- 男士,请这样穿你的衣服,超帅!(男士应该怎么穿)
- 柯娜精神之桥pc版(柯娜精神之桥是网游吗)
- 【手把手】Egret如何在微信小游戏创建ComboBox控件
- Windows系统常见的 4 款压缩软件逐一安装体验,最好用的是?
- 推荐8款超实用的ComfyUI插件,AI绘画质量效率提升几个档次!
- 在Windows中如何使用工具恢复已删除的文件?
- 我的世界NPC自定义MOD下载 自定义NPCmod介绍
- 卡巴斯基: StrongPity APT团伙针对加密软件用户发动水坑式攻击
- windows个人软件top100(windows良心软件)
- Linux下如何解压rar文件(linux中解压rar文件的命令)
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)