Dokcer搭建Apache Guacamole堡垒机

2023-09-14 15:22:56

一、什么是堡垒机

“堡垒机” 这个词通常指的是 “堡垒机器”(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

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
更多推荐

kubernetes popeye 巡检

文章目录1.简介2.安装3.本地4.容器1.简介Popeye是一个实用程序,可以扫描实时Kubernetes集群,并报告部署的资源和配置的潜在问题。它根据部署的内容而不是磁盘上的内容来清理集群。通过扫描您的集群,它可以检测错误配置,并帮助您确保最佳实践到位,从而防止未来的麻烦。它旨在减少在野外操作Kubernetes集

搭建Android自动化python+appium环境

一.需要软件JDK:JAVA安装后配置JDK环境SDK:SDK下载后配置adb环境Python:pyhton语言Pycharm:python脚本编译工具Appium-python-client:pyhton中的库Appium客户端二.搭建步骤1.配置JDK环境①.下载安装java:https://www.oracle.

解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制

一、引言癌症是全球范围内健康领域的一大挑战,早期预测和诊断对于提高治疗效果和生存率至关重要。机器学习在癌症预测中发挥了重要作用,可以从临床数据中学习并构建癌症预测模型,帮助医生进行早期检测和干预,提高患者的生活质量和预后结果。然而,机器学习模型的黑盒性质限制了其在临床实践中的应用。可解释的机器学习被广泛关注,它不仅能够

selenium+python实现基本自动化测试

安装selenium打开命令控制符输入:pipinstall-Uselenium火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能SeleniumIDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能,IDE录制的脚本可以可以转换成多种语言,从而帮助我

蓝桥杯 题库 简单 每日十题 day5

01字符计数字符计数题目描述给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母。元音字母包括a,e,i,o,u,共五个,其他均为辅音字母。输入描述输入格式:输入一行,包含一个单词,单词中只包含小写英文字母。单词中的字母个数不超过100。输出描述输出两行,第一行包含一个整数,表示元音字母的数量。第二行包含一个

【运维 Pro】时序场景实践与原理 - 2. 宽表,窄表与 JSON 字段

【运维Pro】:由YMatrix售前和售后团队负责的栏目。除了介绍日常的数据库运维和使用知识,我们更希望能够通过介绍这些知识背后的原理,让大家和我们一起感知数据库的美妙。摘要在上一期《时序场景实践与原理-1.分布与分区》中,我们围绕时间戳和设备标识列,介绍了设计关于分区、分布的设计思路和原理;在本期内容中,我们会围绕指

SpringBoot项目Redis使用

SpringBoot项目Redis使用引入依赖<!--redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>对R

【C语言】求一个整数的二进制序列中1的个数的三种方法

方法一:逐位%2法该方法的初步测试代码如下:intNumberOf1(intn){intcount=0;while(n){if(n%2==1){count++;}n=n/2;}returncount;}众所周知,数据在内存里以补码的形式存储,这是为了简化计算机的结构设计,同时也提高了运算速度。因此在计算机系统中,数值一

C语言字符串数组的定义方式

方法1:定义一个char类型的二维数组charstr[4][20]={"IloveC","Iloveyou","C语言","string"};这种方法是通过定义一个char类型的二维数组实现,通过二维数组的行索引可得到数组中的每个字符串,列的大小限定了每个字符串所能包含的最大字符个数,所以采用这种定义方式时,列的大小必

Camunda自定义多实例审批人列表

Camunda自定义多实例审批人列表1.多实例案例在工作流中会有遇到这样一个"多个人处理同一个任务“的情形,在camunda中可以使用"任务的多实例"来实现。这里以或签为例,可以设置完成条件为${nrOfCompletedInstances==1},如果是会签,设置成${nrOfCompletedInstances==

windows下gvim的配置

一、vim配置文件"查看自己的vimrc所在的目录"在命令模式下:echo$MYVIMRC"打开自己的vimrc文件"在命令模式下:e$MYVIMRC二、排版"查看自己当前的字体及大小"在命令模式下:setguifont?"设置默认的字体为仿宋_GB2312,大小为14号"在vimrc文件中添加setguifont=仿

热文推荐