Dokcer搭建Apache Guacamole堡垒机

news/2024/7/24 9:08:24 标签: guacamole, 堡垒机, JumpServer

一、什么是堡垒机

堡垒机” 这个词通常指的是 “堡垒机器”(Bastion Host)的简称。堡垒机是一种计算机系统或网络设备,用于增强计算机网络的安全性。它在网络中充当一个重要的安全关口,通过限制对内部网络的访问,帮助保护敏感数据和资源免受未经授权的访问和攻击。

堡垒机的主要功能

  1. 访问控制:堡垒机允许管理员配置哪些用户或系统可以通过它访问内部网络资源。只有经过身份验证的用户或系统才能通过堡垒机连接到内部网络。

  2. 审计和监控:堡垒机通常会记录所有访问和操作,以便管理员可以审查和监控谁访问了内部资源以及他们执行了什么操作。

  3. 隔离:堡垒机可以隔离来自外部网络的连接,减少内部网络受到攻击的风险。它可以充当防火墙,限制来自外部网络的流量。

  4. 跳板:堡垒机还可以用作跳板,允许管理员从外部网络安全地连接到内部服务器或设备,而不必直接将这些服务器暴露在外部网络中。

二、主流堡垒机有哪些

例如:Apache Guacamole、JumpServer

三、Apache Guacamole介绍

Apache Guacamole(简称Guacamole)是一个开源的远程桌面网关,它提供了一种跨平台、跨协议的方式来访问远程计算机。它的主要目标是简化远程访问管理,允许用户通过一个单一的 Web 界面连接到远程计算机,而不必安装客户端应用程序或插件。

Apache Guacamole 的一些关键特点和功能

  1. 协议支持:Guacamole 支持多种远程桌面协议,包括VNC(Virtual Network Computing)、RDP(Remote Desktop Protocol)、SSH(Secure Shell)等,这意味着您可以使用单一的界面连接到不同类型的远程计算机。

  2. Web界面:Guacamole 提供了一个直观的 Web 用户界面,允许用户通过常见的Web浏览器访问远程计算机,而无需安装任何额外的客户端软件。

  3. 多用户支持:它支持多用户管理和身份验证,允许管理员创建用户帐户,并配置不同用户的访问权限。这对于企业环境中的团队协作和远程支持非常有用。

  4. 集成性:Guacamole 可以与现有的身份验证和访问控制系统(如LDAP、Active Directory等)集成,以便更好地管理用户身份验证和访问控制。

  5. 录像和回放:它可以记录远程会话,以便管理员回顾和分析用户的活动。这在故障排除和安全审计方面非常有用。

  6. 插件架构:Guacamole 的插件架构使得用户可以根据需要扩展其功能。您可以编写自定义插件来添加新的协议支持或其他功能。

  7. 开源:Guacamole 是一个开源项目,基于Apache许可证发布,这意味着您可以免费使用、修改和分发它。

Guacamole 的主要优势在于其易用性和多协议支持,使得远程访问管理变得更加灵活和便捷。它常常被用于企业内部的IT支持、远程办公、虚拟桌面访问等应用场景,以简化远程连接和管理的任务。

四、Apache Guacamole搭建

Apache Guacamole部署方式有多种,这里是Docker的方式来进行展开的

4.1 环境信息

操作系统版本:CentOS 7.9
映射端口:29980(根据实际情况修改)
数据库:guacamole
数据库用户:guacamole
数据库密码:自行设置

4.2 安装docker环境

cd /etc/yum.repos.d
wget https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl start docker
systemctl enable docker

guacamolemysql_55">4.3 拉取guacamole和mysql镜像

docker pull guacamole/guacamole
docker pull guacamole/guacd
docker pull mysql/mysql-server:5.7

4.4 建立初始化脚本

docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql

4.5 创建mysql用户

docker run --name mysql --restart=always  -e MYSQL_ROOT_PASSWORD=Replace_it_with_your_password -d mysql/mysql-server:5.7

4.6 拷贝初始sql文件到容器

docker cp initdb.sql mysql:/initdb.sql

4.7 进入数据库还原初始化文件

# 进入MySQL容器:
docker exec -it mysql bash
 
# 在容器内运行,进入数据库
 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

4.8 新建文件服务器目录

mkdir -p /mnt/data/guacamole/tmp/drive

4.9 启动容器

docker run --name guacd --restart=always -v /mnt/data/guacamole/tmp/drive:/mnt/data/guacamole/tmp/drive -d guacamole/guacd

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

4.10 浏览器访问

http://Replace_it_with_your_IP:29980/guacamole

在这里插入图片描述

4.11 登录

默认用户名:guacadmin
默认密码:guacadmin

http://www.niftyadmin.cn/n/5025233.html

相关文章

vue的由来、vue教程和M-V-VM架构思想、vue的使用、nodejs

vue vue的由来 vue教程和M-V-VM架构思想 vue的使用 nodejs vue的由来 # 1 HTML(5)、CSS(3)、JavaScript(ES5、ES6、ES11):编写一个个的页面 -> 给后端(PHP、Python、Go、Java) -> 后端嵌入模板语法 -> 后端渲染完数据 -> 返回数据给前端 -> 在浏览…

LeetCode-746-使用最小花费爬楼梯-动态规划

题目描述: 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花费…

【算法与数据结构】701、LeetCode二叉搜索树中的插入操作

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:这道题关键在于分析插入值的位置,不论插入的值是什么(插入值和原有树中的键值都…

postman连接websocket, 建立连接、聊天测试(v8.5.1)

1. postman v8.5版本 以上支持 websocket。 2. 选择websocket请求模块File - New... 3. WebSocketServer.java import org.springframework.stereotype.Component; import javax.websocket.*; import javax.websocket.server.PathParam; import javax.websocket.server.Server…

在 Vue 的 mounted 钩子函数中使用异步函数是否会有风险需要考虑

主要的区别在于: 异步函数 - 使用 await,执行时不会blocking,但获取数据时组件已渲染 同步函数 - 直接返回数据,组件渲染需等待执行结束 使用异步函数的潜在风险: 如果异步请求时间过长,组件会先渲染,导致页面空白或显示不正确 获取数据失败时,无法准确得到失败信息来源 同步…

学点Selenium玩点新鲜~新的一年,让分布式测试有更多玩法

我们都知道 Selenium 是一款在 Web 应用测试领域使用的自动化测试工具,而 Selenium Grid 是 Selenium 中的一大组件,通过它能够实现分布式测试,能够帮助团队简单快速在不同的环境中测试他们的 Web 应用。 分布式执行测试其实并不是一个非常难…

hyperf 十六 session

官网地址:Hyperf 一 安装 //安装源码 composer require hyperf/session:v2.0.20 //创建配置 php bin/hyperf.php vendor:publish hyperf/session 使用redis的话,需要安装redis对应源码。 二 使用 设置中间件 #config/autoload/middlewares.php retu…