【Linux】Dokcer搭建Apache Guacamole堡垒机
Apache Guacamole介绍
Apache Guacamole(简称Guacamole)是一个开源的远程桌面网关,它提供了一种跨平台、跨协议的方式来访问远程计算机。它的主要目标是简化远程访问管理,允许用户通过一个单一的 Web 界面连接到远程计算机,而不必安装客户端应用程序或插件。
Apache Guacamole 的一些关键特点和功能
协议支持:Guacamole 支持多种远程桌面协议,包括VNC(Virtual Network Computing)、RDP(Remote Desktop Protocol)、SSH(Secure Shell)等,这意味着您可以使用单一的界面连接到不同类型的远程计算机。
Web界面:Guacamole 提供了一个直观的 Web 用户界面,允许用户通过常见的Web浏览器访问远程计算机,而无需安装任何额外的客户端软件。
多用户支持:它支持多用户管理和身份验证,允许管理员创建用户帐户,并配置不同用户的访问权限。这对于企业环境中的团队协作和远程支持非常有用。
集成性:Guacamole 可以与现有的身份验证和访问控制系统(如LDAP、Active Directory等)集成,以便更好地管理用户身份验证和访问控制。
录像和回放:它可以记录远程会话,以便管理员回顾和分析用户的活动。这在故障排除和安全审计方面非常有用。
插件架构:Guacamole 的插件架构使得用户可以根据需要扩展其功能。您可以编写自定义插件来添加新的协议支持或其他功能。
开源:Guacamole 是一个开源项目,基于Apache许可证发布,这意味着您可以免费使用、修改和分发它。
Guacamole 的主要优势在于其易用性和多协议支持,使得远程访问管理变得更加灵活和便捷。它常常被用于企业内部的IT支持、远程办公、虚拟桌面访问等应用场景,以简化远程连接和管理的任务。
Apache Guacamole搭建
Apache Guacamole部署方式有多种,这里是Docker的方式来进行展开的
- 1.环境信息
操作系统版本:CentOS 7.9
映射端口:29980(根据实际情况可以自行修改)
数据库:guacamole(根据实际情况可以自行修改)
数据库用户:guacamole(根据实际情况可以自行修改)
数据库密码:自行设置
- 2.安装docker环境
下载docker repo文件,安装docker-ce,启动docker服务,设置docker服务开机自启动。
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
- 3.拉取guacamole和mysql镜像
这里直接拉取的最新guac镜像(1.5.3),数据库版本这里使用了5.7版本。
docker pull guacamole/guacamole
docker pull guacamole/guacd
docker pull mysql/mysql-server:5.7
- 4.建立初始化脚本
从容器中将初始化SQL文件导出,用于还原到guacamole库里。
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
- 5.创建mysql用户
这里启动MySQL 5.7容器,并设置了超管密码。
#Replace_it_with_your_password 为自定义数据库密码
docker run --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=Replace_it_with_your_password -d mysql/mysql-server:5.7
- 6.拷贝初始sql文件到容器
将4中导出的初始化SQL文件传入到MySQL容器中。
docker cp initdb.sql mysql:/initdb.sql
- 7.进入数据库还原初始化文件
开始还原初始数据,并设置访问权限。
进入MySQL容器:
docker exec -it mysql bash
#Replace_it_with_your_password 为自定义数据库密码
mysql -uroot -pReplace_it_with_your_password
创建一个数据库:
CREATE DATABASE guacamole;
CREATE USER 'guacamole'@'%' IDENTIFIED BY 'Replace_it_with_your_password';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole'@'%';
FLUSH PRIVILEGES;
选择数据库:
mysql > use guacamole;
导入数据:
mysql > source /initdb.sql
- 8.新建文件服务器目录
日常堡垒机使用,难免会有上传下载文件的需求,这里需要提前新建一个数据目录(自定义)用于存储文件,这个是后续配置的前提条件。
mkdir -p /mnt/data/guacamole/tmp/drive
chmod 777 /mnt/data/guacamole/tmp/drive
- 9.启动容器
docker run --name guacd --restart=always -e 'export $LANG=en_US.UTF-8' -v /mnt/data/guacamole/tmp/drive:/mnt/data/guacamole/tmp/drive -d guacamole/guacd
#Replace_it_with_your_password 为自定义数据库密码
docker run --name guacamole --restart=always --link guacd:guacd --link mysql:mysql -e MYSQL_DATABASE='guacamole' -e MYSQL_USER='guacamole' -e MYSQL_PASSWORD='Replace_it_with_your_password' -d -p 29980:8080 guacamole/guacamole - 10.浏览器访问
http://Replace_it_with_your_IP:29980/guacamole
- 11.登录
为了使用安全请及时修改超管密码!
默认用户名:guacadmin
默认密码:guacadmin
- 12.Windows资产录入
登录之后点击右上角用户名-设置,
Windows Server RDP
常用于Windows Server的 RemoteDesktop的资产录入。
名称:常常填入机器的主机名
位置:保持默认
协议:选择RDP
最大连接数:自定义设置
每个用户的最大连接数:自定义设置
主机名:一般填写内网地址,尽量不要填写公网地址
端口:Windows Server RDP一般默认为3389
用户名:Administrator或其他用户的名称
密码:对应的密码
安全模式:选择TLS加密
忽略服务器的证书:勾选
启用虚拟盘:这个地方是上传下载设置的虚拟磁盘
虚拟盘路径:/mnt/data/guacamole/tmp/drive/${GUAC_USERNAME} 最后追加一个占位符,保证不同用户文件内容。
自动建立虚拟盘:勾选
- 13.Linux SSH
名称:常常填入机器的主机名
位置:保持默认
协议:选择SSH
主机名:一般填写内网地址,尽量不要填写公网地址
端口:SSH默认一般是22
私钥:如果不采用密码认证,可以直接将私钥文件内容粘贴到框框
与Windows Server不同的是Linux机器的文件上传下载需要对这个地方进行设置:
文件浏览器根目录:/mnt/data/guacamole/tmp/drive/
原文链接:原文
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。