注:以下教程只针对jumpserver-4.5.0版本
jumpserver介绍
一、产品定位
JumpServer是一款开源的运维安全审计系统,即堡垒机,用于帮助企业安全地管控和登录各类资产,实现运维过程的授权、监察和审计,满足等保合规要求。
二、核心功能
- 身份认证:支持多种认证方式,如LDAP/AD认证、多因子认证等,确保登录用户身份的合法性。
- 授权管理:基于角色的访问控制,可对用户的资产访问权限进行细粒度管理,实现最小权限原则。
- 资产管控:支持多种类型的资产,包括Linux、Windows服务器,各类数据库,网络设备等,可集中管理企业内部的各类IT资产。
- 运维审计:记录用户的运维操作过程,包括命令执行记录、文件传输记录等,支持录像回放,方便事后追溯和审计。
三、产品特色
- 开源免费:无需购买商业许可,降低了企业使用成本,同时开源社区活跃,可获取丰富的资源和支持。
- 分布式架构:采用容器化、解耦的分布式架构,易于扩展和维护,可满足大规模资产管理和高并发访问需求。
- 无插件使用:用户仅需通过浏览器即可进行操作,无需在客户端安装额外插件,提升了使用的便捷性。
- 多云支持:一套系统可管理不同云平台上的资产,适应混合云环境,实现云上云下资产的统一管控。
jumpserver安装与配置
一、安装要点
分为在线安装和离线安装,在线安装需要有网。离线安装下载安装包压缩包。
按照官方文档的指引,即可顺利完成 JumpServer 的安装流程。在安装过程中,若系统的 /opt/
目录下同时存在两个名为 jumpserver
的文件夹,其中一个为已配置的文件夹,另一个为代码文件夹 ,则需特别留意配置操作的位置。
二、配置说明
- 配置位置:进行配置工作时,应进入
/opt/jumpserver/conf
目录,而切勿在代码文件夹内进行配置。 - 配置生效:完成相关配置的修改后,需重启服务以使新配置生效。具体操作是通过命令行进入
jumpserver-installer
的对应版本目录(例如cd /opt/jumpserver-installer-v4.4.1
),再执行重启命令./jmsctl.sh restart
。
三、常用命令汇总
- 启动服务:
cd /opt/jumpserver-installer-v4.4.1
,之后执行./jmsctl.sh start
。 - 停止服务:进入相同目录
cd /opt/jumpserver-installer-v4.4.1
,执行./jmsctl.sh down
。 - 卸载服务:在该目录下
cd /opt/jumpserver-installer-v4.4.1
,执行./jmsctl.sh uninstall
。 - 获取帮助:进入指定目录
cd /opt/jumpserver-installer-v4.4.1
,执行./jmsctl.sh -h
,即可获取关于jmsctl.sh
脚本的详细使用帮助。 - 执行安装:在下载并解压安装包进入相应目录后,如
cd /opt/jumpserver-installer-v4.4.1
,执行./jmsctl.sh install
来启动安装进程。
四、默认登录信息
- 登录地址:
http://<JumpServer服务器IP地址>:<服务运行端口>
,请将<JumpServer服务器IP地址>
替换为实际部署 JumpServer 的服务器 IP,<服务运行端口>
替换为实际配置运行的端口号。 - 默认用户名:
admin
。 - 默认密码:
ChangeMe
。首次登录系统后,请及时修改默认密码,以增强系统的安全性,防止未经授权的访问。
JumpServer 页面资产添加与授权
一、用户与组创建
- 创建 JumpServer 页面用户:登录 JumpServer 管理控制台,在用户列表界面点击 “创建”。依次填写名称(郝帅聪)用户名(haoshuaicong)、邮箱(如 1777183@qq.com)等信息,设置密码,设置密码并勾选 “下次登录须修改密码” 选项,同时禁用 MFA(多因素认证),角色选择普通用户。填写完毕后点击 “保存”,完成用户创建。
- 创建用户组:在用户组管理界面点击 “创建用户组”,输入组名(如运维人员组),在用户选择区域勾选已创建的用户(如郝帅聪),添加备注运维人员,后点击 “保存”,将用户添加至相应组,方便后续批量授权管理。
二、资产添加与配置
- 添加资产:在资产列表页面,通过鼠标右键DEFAULT (0)操作可创建节点(如北京机房,上海机房),对资产进行分类管理。点击 “添加资产”,填写资产名称(如 web01 – 10.0.0.7)、IP 地址(如 10.0.0.7)、选择操作系统平台(如 Linux)及所属节点(北京机房)。设置端口默认值(通常 SSH 为 22),根据实际情况选择协议(如 sftp、ssh)。模版添加,创建模版。
- 对于数据库资产,在资产列表点击创建资产,选择数据库类型(如 MariaDB),填写名称、地址、端口等信息,通过模板添加登录数据库的账号信息后保存。
- 配置特权账号:为实现 JumpServer 与后端服务器的免密交互,需配置特权账号。在资产创建或编辑页面的特权账号部分,点击 “创建模版”,输入名称(如特权账号 root),用户名填写 root,密文类型选择 SSH 密钥。首先在 JumpServer 服务器上生成 ssh 密钥对(执行
ssh - keygen
命令),然后将公钥通过ssh - copy - id
命令发送至后端服务器(如ssh - copy - id 10.0.0.7
)。最后将 JumpServer 服务器上的私钥内容复制到模板的私钥框内cat .ssh/id_rsa,完成配置,确保密钥对的安全与正确设置,保障通信顺畅。
三、资产授权流程
- 添加系统账号:在账号模版管理中点击 “更新账号模版”,创建用于登录后端服务器的系统账号。填写名称(如授权给运维的账号)、用户名(如 yunwei01),不设置特权账号,密码密文类型选择密码并随机生成,设置 sudo 权限(如
/bin/whcami /usr/bin/cat /usr/bin/su,/usr/bin/im
),选择 Linux 平台,勾选自动推送,确保系统账号能正确推送至资产,实现用户对后端服务器的合法访问。 - 执行资产授权:在资产授权界面点击 “创建资产授权规则”,填写名称(如授权给运维人员),选择相应的用户或用户组(如运维组)、系统账号(如 yunwei01)或者root。确认无误后点击 “确认”,完成授权操作。授权完成后,系统会自动将系统账号推送给对应的资产,若 sudo 权限后续有修改且自动推送不成功,需手动修改 visudo 文件,确保权限设置的有效性与一致性。
四、命令行访问 JumpServer
在本地命令行环境中(如使用 Xshell),执行 ssh 10.0.0.101 2222
命令(其中 10.0.0.101 为 JumpServer 服务器 IP,2222 为指定端口),输入 JumpServer 登录页面的用户名和密码进行登录。登录成功后,可根据提示输入相应命令,如输入 p
查看有权限访问的资产列表,输入资产 ID 或 IP 地址即可直接访问后端服务器(如输入 10 可访问 web01 服务器),实现便捷的命令行操作与资产访问管理。
xhell会话可以设置连接后执行命令。连接后输入web01即可连接到web01.
五、JumpServer 添加数据库资产教程
(一)创建数据库资产
- 登录 JumpServer 管理控制台,在资产列表页面,通过鼠标右键DEFAULT (0)操作可创建节点 “创建一个数据库节点”。
- 进入创建资产 – 数据库的详细设置页面:
- 在 “基本设置” 部分:
- “用户管理” 下,输入数据库资产的名称(例如 “db01”),并选择对应的用户组。
- “资产管理” 中,填写数据库的地址(如 “10.0.0.51”)和平台(如 “MariaDB”),同时指定资产节点(如 “/DEFAULT/ 数据库”)。
- “网域列表” 保持默认设置或根据实际情况选择。
- “平台列表” 中,确认数据库端口(如 MariaDB 的默认端口 3306)和协议组(如 “mariadb”)。若需要更改协议设置,可点击设置按钮进行调整,但需注意要确保与实际数据库配置一致。若平台信息有更新需求,在此处进行更新操作。
- 在 “账号管理” 部分:由于账号信息与平台相关,点击 “模板添加” 来设置登录数据库的账号。
(二)配置数据库授权账号
- 点击 “模板添加” 后,在弹出的创建模版页面:
- “基本设置” 下的 “数据库授权账号” 区域:
- 输入登录数据库的用户名(例如 “lzy”)。
- 选择特权账号(如 “root”,并确保已在之前配置好 root 的 SSH 密钥等相关信息),设置密码的密文类型为 “密码”,密文策略选择 输入密码。可用账号,需按照实际情况进行设置。对于自动推送选项,若已经提前创建好账号,可选择不需要推送;若需要 JumpServer 协助创建并推送账号,则根据实际情况选择相应设置。
- 填写完上述信息后,点击 “确认” 保存模板。
(三)完成资产添加与授权
- 返回创建资产 – 数据库页面,此时可看到之前设置的模板信息已显示在相应位置。再次确认各项信息无误后,点击 “提交” 按钮完成数据库资产的创建。
- 创建完成后,进行资产授权操作:
- 在资产授权页面,找到新创建的数据库资产 “db01”。
- 由于数据库用户是 “lzy”,且之前的操作中可能涉及到多个用户(如 “yunwei01”“yanfa” 等),在此处需要根据实际的权限分配需求,勾选授权给相应的用户或用户组(如研发人员、运维人员等)。
- 确认授权信息后,点击保存,完成资产授权流程。
- 账号权限限制
- 可以限制远程数据库账号lzy
六、网域功能使用(若有需要)
一、概述
当 JumpServer 无法直接与特定机房(如杭州机房)内网服务器连通时,可借助网域服务器实现跳转访问。本教程将详细介绍如何配置 JumpServer 的网域功能,以实现对阿里云内网服务器的安全访问。
二、操作步骤
(一)创建网域及网关
- 创建网域
- 登录 JumpServer 管理控制台,进入 “网域列表” 页面。
- 点击 “创建网域” 按钮,在基本设置中输入网域名称(例如 “阿里云网域”),然后点击提交。创建或更新成功后,可根据需要添加详细信息。
- 添加网关
- 在创建好的网域(如阿里云网域)网关列表编辑页面,点击 “创建网关”。
- 在基本设置中,名称:阿里云网域,用户管理部分填写网域服务器的公网 IP 地址(如 118.178.230.210),选择用户组,资产管理部分设置平台为 “Gatewa”,指定节点(如 / DEFAULT / 运维),设置协议(如 stp,端口 22)等信息。
- 选择特权账号为 root模版,使用 root 账号推送数据,并保存设置。
- 网域:选择刚创建的阿里云网域
(二)配置网域服务器与内网服务器免密登录
- 在网域服务器上执行以下操作:
- 打开终端,输入
ssh-keygen
命令生成密钥对。 - 然后使用
ssh-copy-id
命令将公钥发送到内网服务器,例如ssh-copy-id 172.27.216.103
(假设内网服务器 IP 为 172.27.216.103),按照提示输入内网服务器密码,完成后即可实现网域服务器到内网服务器的免密登录。
(三)添加阿里云内网服务器资产
- 创建资产模板(注意是给阿里云内网服务器用的)
- 创建资产中添加账号模版,阿里云网域内网特权账号root
- 在基本设置中,用户管理部分输入模板名称(如 “阿里云网域特权账号”)和用户名(如 root),资产管理部分选择特权账号为 root,设置密码的密文类型为 SSH 密钥,指定并随机生成私钥(需将网域服务器的私钥信息复制到此处),然后保存模板。
- 添加内网服务器资产
- 再次点击 “创建资产 – 主机”,填写资产名称(如 “阿里云内网 web01”)、IP 地址(如 172.27.216.103)、选择用户组和节点(如 / DEFAULT 运维)、平台(如 Linux)等信息。
- 在账号管理部分,选择之前创建的模板(阿里云网域内网特权账号root),并根据实际情况勾选其他相关账号(如 yunwei01 等),然后保存资产信息。
(四)账号推送
- 添加完资产后,在控制台的 “账号推送” 页面,可以看到新添加的资产账号信息。
- 点击 “更新账号推送”,选择要推送的账号(如 yunwei01),(重新勾选节点),设置密文生成策略(如指定、随机生成)等信息后提交。
- 最后点击 “执行” 按钮,即可将系统登录账号推送到内网服务器。
三、验证连接
- 在 JumpServer 客户端界面,找到 “我的资产” 中的 “阿里云内网 web”。
- 点击 “开始连接到 yunwei01 (yunwei01)@172.27.216.103”,若配置正确,将成功登录到阿里云内网服务器,并可在终端执行相关命令(如
ip a
查看网络配置等),验证是否正常访问内网资源。
四、注意事项
- 在配置过程中,确保各个服务器之间的网络连通性正常,尤其是 JumpServer 与网域服务器、网域服务器与内网服务器之间的网络连接。
- 密钥对的生成和使用要谨慎,妥善保管私钥信息,避免泄露导致安全问题。
- 在设置账号和权限时,要根据实际的业务需求和安全策略进行合理配置,确保只有授权用户能够访问相应的内网资源。
七、命令限制
- 命令限制设置
- 进入命令过滤页面,先点击 “创建命令组”,输入名称和危险命令的正则表达式,设置忽略大小写等属性后保存。
- 再点击 “创建命令过滤规则”,选择用户、资产、账号范围,勾选创建的命令组,设置动作(如拒绝)和提示方式(告警),保存后重新登录执行命令时,被限制的命令将无法执行。
八、常见问题解决
- sudo 权限修改推送问题:如果 sudo 权限修改后重新推送不成功,需要手动登录到资产服务器,使用 visudo 命令修改 sudoers 文件,确保权限设置正确。
- 连接与授权问题:若资产连接性显示失败,首先检查网络连通性,确保 JumpServer 服务器与资产服务器之间网络正常。同时检查 SSH 密钥配置是否正确,以及资产信息(如 IP 地址、端口、账号等)是否填写准确。若授权后无法访问资产,确认授权规则是否正确设置,包括用户、资产、账号的匹配关系,以及是否成功推送系统账号。