堡垒机jumpserver的部署与应用

一、适用场景

1、统一运维入口

把分散在本地、多云或混合云中的 Linux/Windows 主机、网络设备、数据库、K8s 集群等资产全部纳管,运维人员通过 Web 浏览器或 SSH/RDP 客户端即可一键登录,无需再记 IP、端口、账号密码。

2、细粒度权限与审批控制

支持基于 RBAC 的角色授权,可限制"谁、在什么时间、对哪台资产、使用什么协议、能执行哪些命令/脚本",并能与工单系统联动实现"先申请、后授权"的审批流程,避免越权操作。

3、成本敏感 & 快速落地

对初创/中小型企业、预算有限的政府或教育单位,JumpServer 社区版零授权费用、一键脚本部署,1 台 4C 8G 虚拟机即可拉起完整堡垒机,最快 30 分钟投产。

4、合规审计与事后追溯

完整记录 SSH/RDP/VNC/Telnet/数据库等会话的"文字命令 + 图形录像",支持秒级回放、关键字检索、危险命令邮件告警,满足等保 2.0、SOX、PCI-DSS、金融行业监管等各类合规审计要求。

5、DevOps / 自动化场景

提供开放 API、批量命令/脚本推送、定时任务、Webhook 等功能,可与 Ansible/Jenkins/GitLab-CI 等工具链集成,实现"发布即审计、自动化可回溯"。

6、高并发 & 分布式/灾备部署

当企业资产或运维团队分布在多地域、多可用区时,可采用"主控+分支节点"分布式集群,实现就近接入、数据同步、故障自动转移,支撑"两地三中心"或海量资产高并发场景。

总之,只要你的组织存在"多人访问多资产、需要防泄密、要过等保、还要降本增效"的诉求,就适合用 JumpServer。本例采用CentOS8+jumpserver4.10社区版完成,企业版则功能更强大。jumpserver安装过程比zabbix部署简单,仅一步即可(jumpserver的服务组件集成打包于docker中,只需等待安装结束)。zabbix使用过程中的函数、参数配置复杂,jumpserver配置则更贴近于常规管理。

CentOS8的安装过程本例不再赘述,可参考文章:

虚拟化部署ESXI6.7跑多个vm server系统(CentOS操作系统安装):

https://blog.csdn.net/weixin_43075093/article/details/124055072

二、部署安装jumpserver

1、下载jumpser

https://community.fit2cloud.com/#/products/jumpserver/documentation

2、等待下载完成

3、准备将下载的jumpser安装包上传到CentOS8中/opt/下

4、本例通过winscp连接到CentOS8,使用CentOS8的SFTP协议完成上传。

5、在CentOS8中执行指令解压

Cd /

Cd opt

Tar -zxf jumpserver-ce-v4.10.14-x86_64.tar.gz

6、执行jumpserver的安装指令,完成安装的过程

Cd /opt/jumpserver-ce-v4.10.14-x86_64

./jmsctl.sh install

7、安装过程中,是否需要对ipv6的支持,根据情况选择y

8、整个安装过程,留意是否有失败的提示即可,基本自动完成。本例采用安装包中docker环境下自动部署的数据库与redis。所以选择n

9、等待安装完成

10、记录下图中的访问WEB地址,即为登录jumpserver的管理地址

11、执行指令启动jumpserver

./jmsctl.sh start

从上图中可以看到started、running,即说明jumpserver的各依赖组件已启动,正常运行中。

三、添加管理的信息资产到jumpserver

(一)登录到jumpserver

1、打开浏览器后,输入WEB访问地址

2、在下图中的登录界面,输入默认用户和默认密码,验证码,第一次登录后需要修改密码

3、登录后看到的界面如下:

(二)添加Linux的ESXi主机(物理服务器)到jumpserver中

1、左侧选控制台------》资产列表------》主机------》创建

注:左侧有控制台、PAM、审计台、工作台

2、带*号的根据实际安装部署的ESXi情况填写

3、填写jumpserver对ESXi主机的访问账号,本例为测试环境使用root,若是生产环境下,建议在ESXi上新建一个权限为读取的用户,再填写到jumpserver中。

4、完成账号编辑后,有多个资产时,保存并继续添加,如下图:

5、制定模板添加主机

(1)创建模板

(2)指定模板的基本设置、密钥/密码/令牌/API Key/密文策略

6、查看账号的活动状态

7、在账号选项卡中的主机列表中,点连接下方的显示器小图标,可以完成连接性的测试,成功,则说明从jumpserver到ESXi主连接成功。

8、资产连接性的测试方式:

(1)在添加后的资产列表,右侧操作的...,菜单中点击测试,可完成资产连接性的测试

(2)在资产列表中,点击左侧的资产名称,在弹出的窗口中,选择基本设置,右侧的测试按钮,也可完成资产连接性的测试。

(3)连接测试的过程中,会弹出以下窗口,显示ok=1,说明测试连接性正常

(三)添加ESXi主机到jumpserver时遇到资产连接性错误的解决方案

1、在主机列表中,多个是成功的,有一个是错误的,如下图:

2、测试连接性时,会弹出的窗口有以下提示:

Unreachable=1,说明不可达,最左侧显示的是ESXi_3,即指从jumpserver的主机到ESXi_3之间不可达

3、从jumpserver到ESXi主机不可达的可能性:

(1)Linux系统防火墙拦截,检查安装jumpserver的系统防火墙开启的端口号

Firewall-cmd --list-ports

Systemctl status firewalld

以上是在安装jumpserver的CentOS中查看的防火墙状态,是jumpserver与ESXi主机正常连接时。

在 ESXi 主机上,防火墙采用"白名单"机制,只有显式启用的规则集(ruleset)里定义的端口才会对外开放。要"一站式"列出所有已开启的端口,只需在 SSH 或本地 ESXi Shell 里执行

在ESXi主机上执行以下指令

esxcli network firewall get

Enabled: true 表示防火墙已开启; false 则为关闭。

Loaded: true 说明规则集已成功载入内核

esxcli network firewall ruleset list

上图中,Enabled=true 的那一行就代表该端口已放行

(2)ACL访问控制,如下图所示,若在jumpserver服务器与esxi主机之间有类似以下ACL的配置,则可能规则限制网络不可达。

(3)访问资产的用户和密码不正确

(4)jumpserver到ESXi主机之间的路由不可达,相互之间ping不通

(5)ESXi上禁用了ssh和shell

4、本例在ESXi主机上启用ssh和shell

5、再次测试连接性OK,如下图:

6、再次点右上角的刷新按钮查看时,连接性成功,如下图:

(四)添加windows Server到jumpserver

1、为提高安全性,将windows Server的远程桌面端口从3389改为自定义的其他端口号(尽量使用1024以上的端口号,如:1025------65535,本例测试使用3300)

(1) 打开注册表编辑器

Win + R → 输入 regedit → 回车。

(2)改第一处,定位到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp

右侧双击 PortNumber → 选"十进制" → 输入新端口(如 3300)→ 确定

(3)改第二处,定位到

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

同样把 PortNumber 改成与上一步完全相同的值

(4)更新防火墙

高级设置 → 入站规则 → 新建一条 TCP 端口规则,允许新端口3300;同时禁用或修改旧的 3389 规则

(5)重启远程桌面服务(无需重启整机)

管理员 PowerShell / CMD 执行:

net stop termservice && net start termservice

或 Restart-Service TermService -Force

完成以上步骤后,RDP 就会在新的端口上监听,原 3389 不再响应。

(6)通过另一台局域网内的电脑telnet win server的ip 3300

(7)在窗口左上角有光标闪烁,没有报错,则说明新定义的远程桌面端口已经开启,如下图所示:

2、执行MSTSC,测试自定义的远程桌面连接

3、远程连接成功

4、默认在jumpserver中添加windows server,信息如下:

5、在jumpserver中添加windows Server后,测试连接性

6、修改端口,设置为windows server中自定义的端口号

7、修改jumpserver中的系统设置为自定义的端口号后,再测试连接性,成功

8、右上角刷新后,可以看到自定义后的端口连接性成功

9、自定义远程端口后,远程桌面连接时遇到的问题处理:

(1)提示无法连接到远程计算机

(2)执行gpedit.msc打开本地组策略编辑器,计算机配置------》windows设置------》安全配置------》安全选项------》网络安全------》LAN管理器身份验证级别------》设置为NTLMV2响应或以上的级别

(3)在网络访问:本地帐户的共享和安全模型,设置为经典-对本地用户进行身份验证,不其本来身份。

(4)执行gpupdate /force更新策略

(5)将远程登录的用户,加入到remote desktop users组中

(六)添加NAS存储系统到jumpserver

1、本例采用的是群晖NAS系统,使用winscp登录到NAS系统,测试SSH协议是否可用。

2、输入用户和口令后,可以正常登录到群晖NAS系统中。但是:

群晖 NAS 的"底层操作系统"并不是一套完全独立的发行版,而是 Synology 在 Linux 内核之上深度裁剪、加固和定制后形成的嵌入式系统。要点如下:

(1)内核:采用标准 Linux 内核(版本随 DSM 更新而升级),负责硬件驱动、文件系统和网络协议栈。

(2)用户空间:用 BusyBox 替代 GNU coreutils,去除 apt/yum 等通用包管理器,改以自有的 synopkg / ipkg 进行套件分发 。

(3)架构:官方称为"模块化微内核设计"------底层只保留存储、网络、硬件抽象等核心服务,其余功能(虚拟机、Docker、多媒体等)均以可插拔套件形式动态加载。

(4)文件系统布局、引导流程和固件封装( .pat 文件)均由 Synology 重新设计,与普通 Linux 发行版不兼容。

因此,DSM 的"底层"本质上是 Linux,但经过了高度定制,只能算"基于 Linux 内核的 Synology 专用嵌入式系统",而非通用 Linux 发行版。

3、通过windows的CMD窗口执行命令测试SSH连接到群晖NAS系统,出现以下菜单

4、在上面的菜单中,执行Quit后,会退出到Linux的命令提示符状态,并能执行Linux中的相关命令,如下图:

5、从以上的几步操作来看,SSH协议是可以连接到NAS系统的,接下来,回到jumpserver中添加好NAS系统,再执行连接性测试,如下图:

6、如上图:在jumpserver中测试与NAS系统的连接性失败,所以只能另辟蹊径,进入自定义系统的环节,如下图:

(六)添加jumpserver默认列表中没有的操作系统类型,如Unix

1、jumpserver的默认主机列表中并没有Unix,如下图:

2、进入系统设置的方法

(1)点右上方的齿轮,进入系统设置

(2)在控制台的资产列表中,主机选项卡中,点创建按钮,然后从右上方点管理平台,也可进入到系统设置中

(七)自定义系统设置,添加NAS存储系统到jumpserver的网络设备中

1、在系统设置中,平台列表,网络设备,添加群晖系列到网络设备列表中,

2、再回到系统控制台

3、在jumpserver的资产列表中,选中添加的NAS系统,开启telnet与23端口

4、给添加的NAS系统资产新增一个登录帐号

5、配置NAS系统,开启telnet的23号端口

6、点添加好的NAS系统右侧的...从菜单中选择测试

7、此时连接性正常,OK=1

8、再点右上方的刷新按钮,连接性下方的成功即可显示

(八)添加其他网络设备到jumpserver的资产列表中

1、以华为网管型交换机为例配置ssh协议:

(1)配置ssh协议安全访问

acl number 3000

description manager

rule 5 permit ip source 192.168.176.0 0.0.0.255 destination 192.168.80.0 0.0.0.255

rule 10 permit ip source 192.168.80.0 0.0.0.255 destination 192.168.176.0 0.0.0.255

rule 15 permit ip source 192.168.0.0 0.0.0.255 destination 192.168.80.0 0.0.0.255

rule 20 permit ip source 192.168.80.0 0.0.0.255 destination 192.168.0.0 0.0.0.255

rule 21 permit ip source 192.168.80.0 0.0.0.255 destination 192.168.80.0 0.0.0.255

rule 30 deny ip

traffic classifier c1 operator or

if-match acl 3000

traffic behavior b1

permit

traffic policy p1

classifier c1 behavior b1

vlan 1

traffic-policy p1 inbound

(2)配置AAA用户和密码,访问协议

aaa

local-user admin password irreversible-cipher %@%@c],U5[jSB70CV

local-user admin privilege level 3

local-user admin service-type ssh

(3)开启stelnet远程服务,指定用户访问的服务类型

stelnet server enable

ssh user admin

ssh user admin authentication-type password

ssh user admin service-type stelnet

(4)配置接口与AAA认证

user-interface vty 0 4

authentication-mode aaa

protocol inbound ssh

(5)配置管理网络的ip地址

Interface vlan 1

Ip address 192.168.80.4 24

2、验证登录

(1)打开secureCRT,新建会话

(2)输入主机名为管理ip地址,端口号

(3)给新建的会话命名:

3、双击新建的会话,输入口令登录

4、登录后,可执行相关交换机的指令:

Display version

Display current-configuration

5、回到jumpserver中,在控制台的资产列表,网络设备列表中添加已配置好的ssh协议的华为设备,即可实现管理

6、注意添加网络设备的过程中,有带*号的是必填项,如下图:

7、为测试连接性,添加一个帐号

8、版本不同的华为网络设备,如AC6508无线控制器安全配置差异:

(1)配置AAA:

Aaa

local-user admin password irreversible-cipher 1a1a1a:Y;@Ht}LK$4P~.:IQ)hNE

local-user admin privilege level 15

local-user admin ftp-directory flash:/

local-user admin service-type terminal ssh

(2)配置ssh协议的源接口、客户端第一次验证协商密钥、开启sftp协议、stelnet服务 ssh server-source -i Vlanif1

ssh client first-time enable

sftp server enable

stelnet server enable

undo telnet server enable

undo telnet ipv6 server enable

telnet server-source -i Vlanif1

(3)配置ssh服务的安全加密密钥位数、允许密钥交换的方式

ssh server secure-algorithms cipher aes256_ctr aes128_ctr

ssh server secure-algorithms hmac sha2_256

ssh server key-exchange dh_group16_sha512 dh_group15_sha512 ecdh-sha2-nistp521 ecdh-sha2-nistp384 ecdh-sha2-nistp256 dh_group_exchange_sha256

ssh client secure-algorithms cipher aes256_ctr aes128_ctr

ssh client secure-algorithms hmac sha2_256

ssh client key-exchange dh_group16_sha512 dh_group15_sha512 ecdh-sha2-nistp521 ecdh-sha2-nistp384 ecdh-sha2-nistp256 dh_group_exchange_sha256

9、在jumpserver中添加配置好的华为交换机

(1)在控制台的资产列表,网络设备中,创建huawei

(2)输入华为交换机的管理ip地址、开启的端口号

(3)添加管理账号信息

(4)添加完成后,点右侧的...连接性测试,最后刷新,连接性成功,如下图:

(九)H3C设备配置SSH协议后添加到jumpserver:

1、配置ACL访问控制列表

acl number 3000

description manager

rule 5 permit ip source 192.168.176.0 0.0.0.255 destination 192.168.80.0 0.0.0.255

rule 10 permit ip source 192.168.80.0 0.0.0.255 destination 192.168.176.0 0.0.0.255

rule 15 permit ip source 192.168.0.0 0.0.0.255 destination 192.168.80.0 0.0.0.255

rule 20 permit ip source 192.168.80.0 0.0.0.255 destination 192.168.0.0 0.0.0.255

rule 21 permit ip source 192.168.80.0 0.0.0.255 destination 192.168.80.0 0.0.0.255

rule 30 deny ip

2、配置流分类与流行为

traffic classifier c1 operator or

if-match acl 3000

traffic behavior b1

filter permit

3、配置用户登录的等级与协议

local-user admin

password cipher '*G]]>%(=^=SQ+DGN*O)1!! authorization-attribute level 3 service-type ssh 4、开启SSH服务,指定用户类型与认证类型 ssh server enable ssh user admin service-type stelnet authentication-type password 5、配置用户接口的认证模式与协议 user-interface vty 0 4 authentication-mode scheme protocol inbound ssh 6、配置管理用户的等级、口令 super password level 3 cipher XG#-P(H5TPaQ=^QMAF4<1!

7、在管理接口上应用流策略

interface Vlan-interface1

ip address 192.168.80.57 255.255.255.0

packet-filter 3000 inbound

8、添加H3C设备到jumpserver

(十)添加mysql数据库到jumpserver

1、mysql的安装与配置本文不再赘述,请参考文章:

CentOS8安装MySQL(商城1)

https://blog.csdn.net/weixin_43075093/article/details/134554154

2、使用Navicat Premium软件测试mysql的连接,输入mysql主机地址、端口号、用户、口令

3、点击test connection按钮测试连接mysql数据库,显示connection Successful则连接正常

4、双击左侧的名称,能展开mysql数据库

5、回到jumpserver中添加mysql数据库,测试连接性,成功,如下图:

(十一)添加私有云主机到jumpserver



四、jumpserver的审计功能

1、用户对设备或系统的会话记录

2、用户登录日志记录

3、用户的操作日志记录

4、资产列表中的活动记录

5、账号最近登录、修改、改密、弱密码、空密码、长时间未改密等的审核

6、工作台中最近的会话记录

7、系统工具可测试、扫描端口等

五、资产添加完成后效果

1、通过ssh2协议管理,且配置了acl访问控制列表,仅允许指定的管理网络访问网络设备,提升了安全性

2、修改远程桌面端口为自定义端口后,纳入到jumpserver管理,安全性提高

复制代码
本文至此结束,本例采用了CentOS 8 Linux系统下安装的jumpserver社区版作为保垒机,是以BS模式运行的,jumpserver以docker为容器运行依赖组件celery、postgresql、chen、core、koko、redis、web、lion,安装和启动过程比zabbix简单易用。登录到WEB管理界面后,可添加主机(unix/Linux、windows server、aix、BSD、gateway,自定义主机操作系统)、网络设备(NAS存储系统、交换机、路由器、防火墙等,支持华为、h3c、群晖等不同品牌的网络设备,可自定义品牌),可添加数据库(mysql、marialDB、PostgreSQL、MongoDB、Redis等),可添加WEB站点、云服务(私有云vmware-vsphere、kubernetes、公有云等)。美中不足的是WEB站点和云服务的连接性测试,不能直接通过jumpserver点击完成,需要手动打开站点。
不足之处敬请批评指正!
相关推荐
步步为营DotNet4 小时前
深度剖析.NET中IHostedService:后台服务管理的关键组件
服务器·网络·.net
一叶星殇5 小时前
.NET WebAPI:用 Nginx 还是 IIS 更好
运维·nginx·.net
Ares-Wang5 小时前
网络》》路由引入 、路由控制 》》路由策略 route-policy 、Filter-Policy(过滤策略)
网络·智能路由器
Jia ming6 小时前
虚拟地址与物理地址:64位VS48位
网络
DARLING Zero two♡6 小时前
【计算机网络】简学深悟启示录:http
网络协议·计算机网络·http
LEEE@FPGA6 小时前
zynq 是不是有了设备树,再linux中不需要编写驱动也能控制
linux·运维·单片机
Trank-Lw6 小时前
Docker Devcontainer 管理命令
运维·docker·容器
RisunJan6 小时前
Linux命令-less(分页查看器)
linux·运维
赛希咨询7 小时前
人工智能自动化如何提高研究生产力
运维·人工智能·自动化
梁正雄7 小时前
linux服务-MariaDB 10.6 Galera Cluster+garbd
linux·运维·mariadb