
JumpServer如何安装并基本内网穿透到公网,安全访问家中设备
本文最后更新于 2025-04-20,文章内容距今已超过七天,可能已经过时。
博主的家中部署了几台不上外网的虚拟机,为我的提供如本地书库,远程Coding,WindowsServer服务的一些功能,但是由于局域网的限制,我无法在公网访问到服务器,只能使用服务,但是不能对服务器进行设置,当服务出现了问题时,很难远程运维。
而把SSH或者RDP端口直接投放到公网又是一种很不安全的行为,于是想到使用堡垒机作为跳板,保护局域网的服务器的访问。
JumpServer 简介
JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpServer 帮助企业以更安全的方式管控和登录所有类型的资产,实现事前授权、事中监察、事后审计,满足等保合规要求。
官网:
以上是JumpServer官网的介绍,我选择它有一个原因是因为其管辖区域内的客户端无需安装agent。还有一个原因是其提供了两种及其方便的安装方式——在线一键安装和离线安装包,其中离线安装官方提供了一键安装脚本的。我本次选择离线安装。
环境要求⚓︎
JumpServer对部署它的服务器有着相对于其他小型服务更高的标准,以下为官网介绍的所需配置:
JumpServer 需要使用 MySQL 或 MariaDB 存储数据,使用 Redis 缓存数据,以下是对数据库的要求:
关于配置检测的脚本,网络上有相应的解锁教程。不过我认为既然作为堡垒机了,这样的配置要求也是合情合理。
在线安装
如果没有安装docker,可以选择这种方式,脚本会自带安装docker及相关配置。
root@localhost:/opt#curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.28.8/quick_start.sh | bash
████████████████████████████████████████ 100%
[Success]: download install script to /opt/jumpserver-installer-v2.28.8
[Info]: Start executing the installation script.
[Info]: In an automated script deployment, note the message prompts on the screen.
████████████████████████████████████████ 100%
[Success]: The Installation is Complete.
For more commands, you can enter jmsctl --help to view help information.
脚本运行完成即可使用jmsctl
指令控制JumpServer了。
离线安装
安装包下载链接,请确认安装的主机没有其他服务对JumpServer的服务产生干扰:
下载对应的安装包,使用FTP将文件上传到服务器,将安装包放到服务器的/opt
目录下,并解压。
cd /opt
tar -xf jumpserver-offline-installer-v3.10.18-amd64.tar.gz
cd jumpserver-offline-installer-v3.10.18-amd64
官网提供了config
的修改参考,我们可以直接通过脚本暗转,后续有需求了再进行修改。
直接启动自带的安装脚本:
cd jumpserver-offline-release-v3.10.18-amd64
# 启动
./jmsctl.sh start
# 停止
./jmsctl.sh down
# 卸载
./jmsctl.sh uninstall
# 帮助
./jmsctl.sh -h
在使用脚本时,根据指示选择对应的服务端口,是否使用外部的数据持久化存储(外部的Mysql和Redis)按需配置。
安装完成后,我们输入对应的IP地址和端口,是无法直接访问服务的,我们需要先使用指令关闭服务,设置IP白名单:
# 打开config.txt 配置文件,定义 DOMAINS 字段
vim /opt/jumpserver/config/config.txt
# 可信任 DOMAINS 定义,
# 定义可信任的访问 IP, 请根据实际情况修改, 如果是公网 IP 请改成对应的公网 IP。
# DOMAINS="demo.jumpserver.org" # 使用域名访问
# DOMAINS="172.17.200.191" # 使用 IP 访问
# DOMAINS="example.com,172.17.200.191" # 使用 IP 和 域名一起访问
DOMAINS=
# 重启 JumpServer 服务生效
jmsctl restart
重启完成后,在浏览器输入对应的地址,进入服务:
按照脚本安装时的账号密码进入,第一次进入需要更改密码,并按需开启MFA认证,内置有教程(如需公网访问的话,我是建议开启的,同时应该设置复杂账号密码),MFA认证可以绑定Google的Authenticator。
如需,也可以开启邮件服务器,输入对应的SMTP账号信息:
公网访问JmupServer
参考之前的教程设置FRP,可以使用STCP安全暴露JumpServer的端口,确保服务器没有其他防火墙禁止该端口网络进出。
设置好内网穿透服务后,可以在公网访问到JumpServer服务了。
设置资产和账号并分配
要确保局域网的Linux服务器开启SSH或者VNC,Windows开启RDP,JumpServer内置了链接Linux和Windows的方式。
进入控制台:
创建资产
点击创建资产:
选择对应的主机类型,确保主机可以在JumpServer的网域内访问:
以Windows举例:
资产配置完毕,设置用户账号。
创建用户
首先创建一个用户组:
创建用户:
创建好用户后,就该分配资产了。
分配资产
根据需求创建对应的资产
分批好后,可以进入工作台进行访问(如果创建时许可包含当前帐号的话)
测试
我之前创建了一个非administrator的个人用户,现在退出管理员账号,登录个人账户,模拟日常登录:
登陆成功,进入个人界面:
选择【链接资产】,进入资产列表,也可以通过文件传输和管理管理自己在JumpServer上的资产的文件系统:
为了避免用户水印,我使用管理员账号进行截屏:
可以观察到在公网上成功连接到我这个Windows7机器,说明访问成功。
结语
JumpServer是一个非常强大的开源堡垒机,我们可以用它实现很多网安功能,在未来我也会不断学习和了解更多的操作和技巧。