文章目录
jumpServer官网: https://www.jumpserver.org/
堡垒机
堡垒机的含义
堡垒机是在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而实时收集和监控网络环境中每一个组成部分
的系统状态、安全事件、网络活动,以便集中报警、及时处理。
- 堡垒机本质上可以看作用于
防御攻击的计算机
,又被称为"堡垒主机"。堡垒机是一个主机系统,其自身通常经过了一定的加固,具有较高的安全性,可抵御一定的攻击。 - 堡垒机将需要保护的信息系统资源与安全威胁的来源进行隔离,从而在被保护的资源前面形成一个坚固的"堡垒",并且在抵御威胁的同时又不影响普通用户对资源的正常访问。
- 堡垒机还集成了行为审计和权限控制,从而加强了对操作和安全的控制。
堡垒机的分类
网关型堡垒机
- 网关型堡垒机主要部署在
外部网络
和内部网络
之间,本身不直接向外部提供服务,而是作为进入内部网络的一个检查点,用于提供对内部网络特定资源的安全访问控制。 - 网关型堡垒机不提供路由功能,将内外网从网络层隔离开来,除授权访问外,还可以过滤掉一些针对内网的、来自应用层以下的攻击,为内部网络资源提供了一道安全屏障。
- 网关型堡垒机需要处理应用层的数据内容,性能消耗很大,所以随着网络进出口处流量越来越大,部署在网关位置的堡垒机逐渐成为了性能瓶颈,所以,网关型的堡垒机逐渐被日趋成熟的防火墙、UTM、IPS、网闸等安全产品所取代。
运维审计型堡垒机
- 运维审计型堡垒机,也被称作"内控堡垒机",这类堡垒机也是当前应用最为普遍的一种。运维审计型堡垒机被部署在
内网中服务器和网络设备
等核心资源的前面,对运维人员的操作权限进行控制
和操作行为审计
。 - 运维审计型堡垒机即解决了运维人员权限难以控制混乱局面,又可对违规操作行为进行控制和审计,而且由于运维操作本身不会产生大规模的流量,堡垒机不会成为性能的瓶颈,所以堡垒机作为运维操作审计的手段得到了快速发展。
JumpServer的含义
JumpServer 是广受欢迎的开源堡垒机
,是符合 4A 规范的专业运维安全审计系统
。JumpServer 帮助企业以更安全的方式管控和登录所有类型的资产,实现事前授权、事中监察、事后审计。
JumpServer的安装
以下都是在linux
系统下安装的命令。
注意堡垒机的基本运行条件是:2个cpu内核、4G内存、50G硬盘
在线安装
-
安装命令
curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash
-
首次安装后需要修改config.txt配置文件,定义 DOMAINS 字段后即可正常使用
vim /opt/jumpserver/config/config.txt # 可信任 DOMAINS 定义, # 定义可信任的访问 IP, 请根据实际情况修改, 如果是公网 IP 请改成对应的公网 IP, # DOMAINS="demo.jumpserver.org" # 使用域名访问 # DOMAINS="172.17.200.191" # 使用 IP 访问 # DOMAINS="demo.jumpserver.org,172.17.200.191" # 使用 IP 和 域名一起访问 DOMAINS=
-
JumpServer服务的开启和关闭命令
cd /opt/jumpserver-installer-v3.10.7 # 启动 ./jmsctl.sh start # 停止 ./jmsctl.sh down # 卸载 ./jmsctl.sh uninstall # 帮助 ./jmsctl.sh -h
-
验证是否已经安装成功
通过浏览器访问登录 JumpServer:- 地址:
http://<JumpServer服务器IP地址>:<服务运行端口>
,默认服务运行端口号是80 - 用户名: admin
- 密码: admin
- 地址:
-
jumpServer操作页面
登陆成功之后就进入到jumpServer的操作页面,可以进行内容的管理。
离线安装
内网机器可能不联网所以我们需要离线安装。
-
再本地机器上从飞致云社区 下载最新的 linux/amd64 离线包, 并上传到部署服务器的
/opt
目录:
-
然后将下载好的文件通过
rz
命令上传到虚拟机上/opt
目录:
-
部署:
-
解压文件,进入文件目录
cd /opt tar -xf jumpserver-offline-installer-v3.10.7-amd64.tar.gz cd jumpserver-offline-installer-v3.10.7-amd64
-
配置文件
根据需要修改配置文件模板config-example.txt
,cat config-example.txt
# JumpServer configuration file example. # # 如果不了解用途可以跳过修改此配置文件, 系统会自动填入 # 完整参数文档 https://docs.jumpserver.org/zh/master/admin-guide/env/ ################################## 镜像配置 ################################### # # 国内连接 docker.io 会超时或下载速度较慢, 开启此选项使用华为云镜像加速 # 取代旧版本 DOCKER_IMAGE_PREFIX # # DOCKER_IMAGE_MIRROR=1 ################################## 安装配置 ################################### # # JumpServer 数据库持久化目录, 默认情况下录像、任务日志都在此目录 # 请根据实际情况修改, 升级时备份的数据库文件(.sql)和配置文件也会保存到该目录 # VOLUME_DIR=/data/jumpserver # 加密密钥, 迁移请保证 SECRET_KEY 与旧环境一致, 请勿使用特殊字符串 # (*) Warning: Keep this value secret. # (*) 勿向任何人泄露 SECRET_KEY # SECRET_KEY= # 组件向 core 注册使用的 token, 迁移请保持 BOOTSTRAP_TOKEN 与旧环境一致, # 请勿使用特殊字符串 # (*) Warning: Keep this value secret. # (*) 勿向任何人泄露 BOOTSTRAP_TOKEN # BOOTSTRAP_TOKEN= # 日志等级 INFO, WARN, ERROR # LOG_LEVEL=ERROR # JumpServer 容器使用的网段, 请勿与现有的网络冲突, 根据实际情况自行修改 # DOCKER_SUBNET=192.168.250.0/24 # ipv6 nat, 正常情况下无需开启 # 如果宿主不支持 ipv6 开启此选项将会导致无法获取真实的客户端 ip 地址 # USE_IPV6=0 DOCKER_SUBNET_IPV6=fc00:1010:1111:200::/64 ################################# MySQL 配置 ################################## # 外置 MySQL 需要输入正确的 MySQL 信息, 内置 MySQL 系统会自动处理 # DB_HOST=mysql DB_PORT=3306 DB_USER=root DB_PASSWORD= DB_NAME=jumpserver # 如果外置 MySQL 需要开启 TLS/SSL 连接, 参考 https://docs.jumpserver.org/zh/master/install/install_security/#ssl # # DB_USE_SSL=True ################################# Redis 配置 ################################## # 外置 Redis 需要请输入正确的 Redis 信息, 内置 Redis 系统会自动处理 # REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD= # 如果使用外置 Redis Sentinel, 请手动填写下面内容 # # REDIS_SENTINEL_HOSTS=mymaster/192.168.100.1:26379,192.168.100.1:26380,192.168.100.1:26381 # REDIS_SENTINEL_PASSWORD=your_sentinel_password # REDIS_PASSWORD=your_redis_password # REDIS_SENTINEL_SOCKET_TIMEOUT=5 # 如果外置 Redis 需要开启 TLS/SSL 连接, 参考 https://docs.jumpserver.org/zh/master/install/install_security/#redis-ssl # # REDIS_USE_SSL=True ################################## 访问配置 ################################### # 对外提供服务端口, 如果与现有服务冲突请自行修改 # HTTP_PORT=80 SSH_PORT=2222 MAGNUS_MYSQL_PORT=33061 MAGNUS_MARIADB_PORT=33062 MAGNUS_REDIS_PORT=63790 ################################# HTTPS 配置 ################################# # 参考 https://docs.jumpserver.org/zh/master/admin-guide/proxy/ 配置 # # HTTPS_PORT=443 # SERVER_NAME=your_domain_name # SSL_CERTIFICATE=your_cert # SSL_CERTIFICATE_KEY=your_cert_key # # Nginx 文件上传下载大小限制 # CLIENT_MAX_BODY_SIZE=4096m ################################## 组件配置 ################################### # 组件注册使用, 默认情况下向 core 容器注册, 集群环境需要修改为集群 vip 地址 # CORE_HOST=http://core:8080 PERIOD_TASK_ENABLED=True # Core Session 定义, # SESSION_COOKIE_AGE 表示闲置多少秒后 session 过期, # SESSION_EXPIRE_AT_BROWSER_CLOSE=true 表示关闭浏览器即 session 过期 # # SESSION_COOKIE_AGE=86400 SESSION_EXPIRE_AT_BROWSER_CLOSE=True # 可信任 DOMAINS 定义, # 定义可信任的访问 IP, 请根据实际情况修改, 如果是公网 IP 请改成对应的公网 IP, # DOMAINS="demo.jumpserver.org" # DOMAINS="172.17.200.191" # DOMAINS="demo.jumpserver.org,172.17.200.191" DOMAINS= # Lion 开启字体平滑, 优化体验 # JUMPSERVER_ENABLE_FONT_SMOOTHING=True ################################# XPack 配置 ################################# # XPack 包, 开源版本设置无效 # RDP_PORT=3389 MAGNUS_POSTGRESQL_PORT=54320 MAGNUS_ORACLE_PORTS=30000-30030 ################################## 其他配置 ################################## # 终端使用宿主 HOSTNAME 标识, 首次安装自动生成 # SERVER_HOSTNAME=${HOSTNAME} # 使用内置 SLB,如果 Web 页面获取到的客户端 IP 地址不正确,请将 USE_LB 设置为 0 # USE_LB 设置为 1 时,使用配置 proxy_set_header X-Forwarded-For $remote_addr # USE_LB 设置为 0 时,使用配置 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for USE_LB=1 # 当前运行的 JumpServer 版本号, 安装和升级完成后自动生成 # CURRENT_VERSION=
-
安装
./jmsctl.sh install
-
启动
./jmsctl.sh start
支持自启动,启动之后再开机无需再启动,支持自启动。
-
-
登录
访问安装jumServer的主机地址,jumServer默认安装在80端口,可以获取jumServer的登录页面。有默认的账户:用户名 - admin,密码 - admin 。 -
其他明令:
# 停止 ./jmsctl.sh down # 卸载 ./jmsctl.sh uninstall # 帮助 ./jmsctl.sh -h
-
配置文件路径
/opt/jumpserver/config/config.txt
JumServer的使用
jumpServer一共有3种模式:控制台、审计台、工作台。
控制台
用户管理
作用:给用户分配账号使用。
总共有3种角色:
- 用户:权限最低。只有工作台的权限
- 系统审计员:有工作台和审计台的权限
- 系统管理员:权限最高。有控制台、审计台、工作台的权限。
用户管理常做的操作是:创建用户,为用户分配权限;创建分组,为用户分组。
添加用户:
资产管理
资产管理
常见的资产有:
- 主机
- 网络设备
- 数据库
- 云服务
- web
- GPT
所添加的资产就是对应我们需要控制的 主机、网络设备、数据库、云服务等现实资产。
添加资产的时候通过资产的唯一标识
添加资产信息,这里以Linux主机为例:
网域管理
网域功能是为了解决部分环境无法连接的问题,原理是通过网关服务器进行 SSH 隧道进行流量转发。
具体操作:https://docs.jumpserver.org/zh/v3/guide/admin/asset/domain_list/#1
账号管理
不同的资产可以对应一个或多个账号,这里的账号只的是登录主机或数据库所需要的账号,需要设置对应的密码。所以一个资产必须要有一个对应的账号操作它。
上面的Linux需要创建如下账号:
权限管理
创建好用户、资产和账号之后就可以将三者连接起来:
选择用户、资产和账号创建对应的权限管理,创建之后就可以建立起三者的联系:用户通过指定的账号登录资产。
上述登录示例:使用yang用户,点击工作台==>我的资产,选择刚刚分配的资产,点击右侧运行按钮:
点击之后就是登录界面,点击连接,连接成功之后就可以控制对应的资产:
右侧的设置按钮可以进行一些操作。
这样管理的好处是:用户无需知道资产的用户名和密码就可以登录资产,完全由管理员控制,保护了资产的安全性。
任务管理
jumpServer自动执行的任务,我们无法干预。
审计台
审计主要就是记录用户的操作内容
会话审计
-
会话记录:以视频的方式记录用户的操作
-
命令记录:记录用户操作的命令
-
文件传输:记录文件传输内容
日志审计
- 登录日志
- 操作日志
- 改密日志
- 作业日志
工作台
用户通过工作台执行的文件、作业操作都会被记录下来,jumpServer可以识别所操作信息的安全性,来中断或执行操作,所以可以使用jumpServer达到保护的效果。
我的资产
里面包含用户所能看到的所有资产,但是只有部分资产该用户可以使用:
web终端
连接资产的终端
文件管理
使用文件管理可以将目标资产的文件进行下载,将本地的文件进行上传:
作业中心
一些命令的管理:
堡垒机命令过滤规则创建
对于一些信息敏感的命令我们不希望用户进行操作,就可以使用过滤规则过滤掉该命令:
- 首先创建命令组:控制台==>权限管理==>命令过滤==>命令组
- 其次创建命令过滤:控制台==>权限管理==>命令过滤==>命令过滤
创建完之后就生效了:
jumpServer系统设置
比较重要的是消息通知,设置之后可以是jumpServer发送邮件给用户:
-
邮件服务器:
需要SMTP的主机、端口、账号和密码,需要我们手动申请。
SMTP主机:smtp.qq.com
SMTP端口:465
SMTP账号:即QQ账号
SMTP密码:就是授权码,需要我们手动申请,如下是QQ申请的方式。
以QQ邮箱申请为例:- 登录QQ邮箱==>设置==>账号==>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
- 首先点击开启服务
- 开启之后,然后点击继续获取授权码。通过短信验证获取授权码。
邮件服务器注册:
- 登录QQ邮箱==>设置==>账号==>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
-
邮件发送
发件人:默认是SMTP的邮箱
主题前缀:邮件发送的主题 -
邮件内容定制
发给用户的邮件内容 -
最后可以设置收件人,测试功能是否可用