通过 iptables 配置 JumpServer 堡垒机(跳板机)策略学习
JumpServer 作为企业级堡垒机,核心价值在于实现资产的安全访问与精细化管控。本文将详细介绍如何通过 iptables 配置防火墙策略,限制资产仅允许通过 JumpServer 访问,并完整覆盖 Linux/Windows 资产的接入、授权与审计流程。
一、JumpServer 终端核心特性
JumpServer 终端(Web Terminal)是其核心功能模块,具备以下关键特性,支撑安全便捷的远程访问:
1. 多协议全面支持
- SSH/RDP/VNC/Telnet:覆盖 Linux、Windows 等主流操作系统远程连接
- 数据库协议:兼容 MySQL、PostgreSQL、Oracle 等数据库直连(需提前配置对应应用)
- Kubernetes:支持通过 Web 终端直接连接 Kubernetes 容器
2. 浏览器原生访问
- 无需客户端:浏览器内即可完成 SSH/RDP 等会话连接,免装额外工具
- 跨平台兼容:支持 Chrome、Firefox、Edge 等现代浏览器
- 图形化适配:RDP/VNC 协议支持远程桌面渲染、剪贴板共享、文件传输(需策略授权)
3. 安全审计与监控
- 会话录制:全程记录操作日志(视频/文本格式),支持事后回放审计
- 实时监控:管理员可实时查看用户操作,高风险场景可强制中断会话
- 命令拦截 :通过正则规则库阻断危险命令(如
rm -rf /、shutdown等)
4. 权限精细化控制
- 资产粒度授权:按用户/用户组分配主机、数据库等资源的访问权限
- 二次验证:支持 OTP 动态令牌(如 Google Authenticator)
- 时间限制:可设置会话有效期或指定时间段允许访问
5. 文件传输能力
- SFTP 集成:通过 Web 界面直接完成文件上传/下载,无需额外配置 FTP
- RDP 剪贴板共享:本地与远程桌面间可复制文本/文件(需策略允许)
6. 多会话高效管理
- 标签页式会话:同一浏览器窗口并行管理多个终端连接
- 会话共享:支持多人协作接入同一会话,权限可灵活分离
7. 性能优化设计
- 压缩与缓存:减少网络流量消耗,提升远程操作响应速度
- 自适应分辨率:RDP/VNC 协议可根据终端窗口大小动态调整显示
8. 扩展性与集成能力
- API 支持:可与 CMDB、Prometheus 等运维工具无缝集成
- 多云兼容:支持管理 AWS、Azure、阿里云等主流云厂商主机
典型使用场景
- 运维人员:通过统一入口管理混合云/本地资产
- 审计合规:满足等保、GDPR 等合规要求的操作审计
- 外包协作:临时授权第三方访问特定资源,避免凭证直接暴露
已知限制
- 图形性能:RDP/VNC 在高延迟网络(如公网)下可能出现卡顿,推荐 LAN 或专线环境使用
- 高级协议特性:部分 SSH 端口转发、X11 转发功能需额外配置启用
二、被保护服务端配置(核心:仅允许 JumpServer 访问)
被管理的资产(Linux/Windows 服务器)需配置访问控制策略,仅开放对应端口给 JumpServer 服务器 IP,拒绝其他来源的直接访问。
2.1 管理方案
markdown
# JumpServer 堡垒机安全访问控制策略(禁止直连 + 审计全覆盖)
一、策略核心目标
- 阻断直连通道:禁止任何终端(运维机、办公机、外部设备)直接访问业务服务器的 SSH/RDP/VNC 等管理端口,所有运维操作必须经过 JumpServer 代理;
- 审计无死角:所有运维会话(命令、文件传输、屏幕操作)全量记录、可回放,满足合规要求(等保 2.0、SOX 等);
- 权限最小化:基于"角色 - 资源 - 操作"三维授权,避免越权运维;
- 风险实时管控:高危操作实时告警、异常行为阻断,降低运维误操作 / 恶意操作风险。
二、策略设计原则
- 强制代理原则:业务服务器仅对 JumpServer 内网 IP 开放管理端口,JumpServer 作为唯一运维入口;
- 审计全覆盖原则:禁用 JumpServer"免审计模式",所有会话强制开启"命令审计 + 屏幕录像 + 文件传输审计";
- 权限精细化原则:按"岗位 - 职责 - 资源"分配权限,临时权限需审批、自动回收;
- 纵深防御原则:结合网络隔离、身份认证、会话监控、应急兜底多层防护。
三、具体安全策略(技术落地)
(一)网络层:阻断直连通道,锁定 JumpServer 唯一入口
-
服务器端口隔离
- 业务服务器(Linux/Windows)的管理端口(22/3389/5900 等)仅允许 JumpServer 集群的内网 IP 段访问(通过防火墙 / 安全组 / ACL 配置);
- 禁止服务器配置公网 IP,管理流量仅在企业内网 / VPN 环境中传输(外部运维需先连 VPN,再通过 JumpServer 访问);
示例(云服务器安全组规则):
| 方向 | 协议端口 | 源地址 | 动作 | 说明 |
|---|---|---|---|---|
| 入站 | SSH(22) | JumpServer 内网 IP | 允许 | 仅 JumpServer 可访问 |
| 入站 | 所有端口 | 0.0.0.0/0 | 拒绝 | 阻断其他所有直连 |
- JumpServer 网络隔离
- JumpServer 部署在独立网段(如"运维管理区"),与业务区、办公区通过防火墙隔离;
- 运维终端仅允许访问 JumpServer 的 Web 端口(80/443)和代理端口(如 2222),禁止直接访问业务区网段。
(二)身份认证与授权:确保"合法人 + 合法权限"
-
强身份认证
- 强制开启 JumpServer 多因素认证(MFA):密码 + 动态令牌(如 Google Authenticator)/ 短信验证,拒绝单一密码登录;
- 集成企业统一身份系统(LDAP/AD/OAuth2.0),实现身份统一管理、离职自动销户,避免孤儿账号;
- 禁止共享账号:每个运维人员分配独立账号,账号与人员实名绑定。
-
精细化授权
- 基于 RBAC 模型分配权限:
- 角色划分:开发、运维、DBA、审计员、管理员(职责分离,审计员无运维权限);
- 资源授权:按"业务线 + 服务器集群"授权(如运维 A 仅能访问电商业务服务器,无法访问财务服务器);
- 操作授权:按"最小权限"分配(如开发仅能读文件,运维可执行操作,DBA 仅能访问数据库);
- 临时权限管控:
- 紧急运维需申请临时权限,通过 OA 审批后自动生效,过期(如 2 小时)自动回收;
- 临时权限仅开放必要操作,禁止授予 root/admin 超级权限。
- 基于 RBAC 模型分配权限:
(三)会话审计:确保"操作可追溯、风险可阻断"
-
强制审计模式
- 禁用 JumpServer"免审计会话"功能,所有运维会话默认开启:
- 命令审计:记录所有输入命令(含错误命令)、执行结果、操作时间;
- 屏幕录像:全程录制操作过程(支持回放、倍速播放、关键操作标记);
- 文件传输审计:记录上传 / 下载的文件名称、大小、路径、时间(支持文件哈希校验);
- 审计日志不可篡改:日志存储在独立服务器 / 对象存储,开启写保护,支持同步至 SIEM 系统(如 ELK、Splunk)。
- 禁用 JumpServer"免审计会话"功能,所有运维会话默认开启:
-
实时风险管控
- 配置高危命令拦截规则:对
rm -rf /*、sudo su、format等高危命令设置"告警 + 阻断"(需审批后可执行); - 异常行为监控:设置会话时长阈值(如单次会话不超过 2 小时)、异地登录告警(非常用 IP 登录触发短信通知)、高频操作告警(短时间内大量执行敏感命令);
- 会话实时监控:管理员可实时查看正在进行的运维会话,发现异常可强制中断。
- 配置高危命令拦截规则:对
(四)运维流程规范:固化"审计模式"为唯一路径
-
标准运维流程
- 运维人员通过 VPN / 办公内网登录 JumpServer(MFA 认证);
- 基于分配的权限选择目标服务器,发起审计模式会话(自动开启录像 + 命令审计);
- 执行运维操作(文件传输需通过 JumpServer 文件管理模块,禁止直接拖拽);
- 会话结束后,审计日志自动归档,支持事后回放追溯。
-
禁止违规操作
- 禁止运维人员通过代理工具(如 Proxifier)绕过 JumpServer 直连;
- 禁止服务器开启跳板进程(如 SSH 隧道、frp 转发),定期通过 JumpServer 巡检服务器进程;
- 禁止共享 JumpServer 账号、借用他人权限,违者纳入安全考核。
(五)应急兜底机制:避免业务中断
-
JumpServer 故障应急
- 部署 JumpServer 集群(主备 / 负载均衡),避免单点故障;
- 预留"应急通道":仅对核心业务服务器开放,需双人审批 + 临时授权(有效期 1 小时),且应急操作全程审计;
- 应急通道默认关闭,仅在 JumpServer 集群不可用时启用,事后需提交运维报告。
-
入侵应急响应
- 若发现异常会话(如黑客通过 JumpServer 登录服务器),立即中断会话、锁定相关账号;
- 通过审计日志追溯操作路径、提取恶意命令,同步清理服务器后门;
- 联动防火墙封禁异常 IP,更新 JumpServer 权限策略。
四、可行性分析
(一)技术可行性:完全落地
JumpServer 的核心特性已覆盖策略需求:
- 网络控制:支持通过安全组 / ACL 限制服务器访问源,JumpServer 本身支持 TCP/UDP 代理转发;
- 审计能力:自带命令审计、屏幕录像、文件传输日志,支持日志导出与 SIEM 集成;
- 权限管理:RBAC 模型、临时权限申请、MFA 认证均为原生功能;
- 兼容性:支持 Linux/Windows 服务器、SSH/RDP/VNC 等协议,适配云服务器、物理机、容器。
(二)实施挑战与应对
| 挑战类型 | 具体问题 | 应对措施 |
|---|---|---|
| 运维习惯抵触 | 原直连操作便捷,现需通过 JumpServer,效率感知下降 | 1. 优化 JumpServer 登录流程(如单点登录);2. 提供操作培训,制作快速指南;3. 强调审计对运维人员的"免责保护"(操作可追溯,避免背锅) |
| 网络架构调整复杂 | 大型企业现有防火墙 / 安全组规则多,修改需跨团队协调 | 1. 分阶段实施(先试点非核心业务,再推广全量);2. 联合网络团队梳理规则,制定灰度切换计划;3. 保留回滚方案 |
| 性能压力 | 高并发场景(如百级运维同时操作)下 JumpServer 卡顿 | 1. 部署 JumpServer 集群 + 负载均衡;2. 优化录像存储;3. 配置资源弹性扩容 |
| 日志存储成本高 | 全量屏幕录像占用大量存储空间 | 1. 按业务重要性分级存储;2. 采用对象存储降低成本;3. 开启录像自动压缩 |
| JumpServer 自身安全风险 | 若 JumpServer 被攻破,将成为黑客跳板 | 1. 加固 JumpServer;2. 定期渗透测试;3. 审计员账号独立部署 |
(三)合规适配性
该策略完全满足等保 2.0 三级"安全审计""访问控制"要求:
- 等保 2.0 要求:"应对重要用户的操作行为、系统命令、登录退出等进行记录审计""应禁止未授权的直接访问";
- 审计日志可直接用于合规检查(如公安、金融行业的年度审计),无需额外改造。
五、落地建议
-
分阶段实施:
- 第一阶段(1-2 周):试点非核心业务服务器,配置网络规则、权限策略,培训核心运维人员;
- 第二阶段(2-4 周):推广至核心业务服务器,关闭非试点服务器的直连通道;
- 第三阶段(1 个月后):优化策略(如调整高危命令规则、日志存储周期),开展合规自查。
-
资源投入:
- 硬件 / 云资源:JumpServer 集群(2 台以上节点,4 核 8G 起)、对象存储(按 100 台服务器 / 10 人运维,预估每月存储需求 50-100GB);
- 人力投入:网络团队(调整安全组)、运维团队(配置 JumpServer 权限)、培训团队(制作操作手册)。
-
持续优化:
- 每月 review 审计日志,识别高频高危操作,优化拦截规则;
- 每季度更新权限矩阵,清理冗余账号 / 权限;
- 跟进 JumpServer 版本更新,启用新的安全特性(如 AI 异常行为识别)。
(注:文档部分内容可能由 AI 生成)
2.1 Linux 资产配置
步骤 1:安装并启用 SSH 服务端
Linux 资产通过 SSH 协议被 JumpServer 管理,需先确保 SSH 服务正常运行:
bash
# 安装 openssh-server(Debian/Ubuntu 系统)
sudo apt update && sudo apt install openssh-server -y
# 设为开机自启并启动服务
sudo systemctl enable sshd
sudo systemctl start sshd
# 验证服务状态(可选)
sudo systemctl status sshd

步骤 2:创建 JumpServer 专属管理用户
为避免直接使用 root 账号,创建专属管理用户用于审计和权限管控:
bash
# 创建用户(-m 自动创建家目录,-s 指定默认shell)
sudo useradd jumpserver-admin -m -s /bin/bash
# 设置用户密码(示例密码:202019,实际生产建议使用强密码)
echo "jumpserver-admin:202019" | sudo chpasswd
# 授予 sudo 无密码权限(根据实际需求调整,非必需)
echo "jumpserver-admin ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers

步骤 3:配置 iptables 访问控制策略
通过 iptables 限制仅允许 JumpServer 服务器 IP 访问 SSH 22 端口,拒绝其他所有来源:
bash
# 允许来自 JumpServer 的 IP(示例:192.168.20.194)访问 22 端口
sudo iptables -A INPUT -s 192.168.20.194 -p tcp --dport 22 -j ACCEPT
# 拒绝所有其他来源的 22 端口访问(注意:先加ACCEPT再加REJECT,顺序不可颠倒)
sudo iptables -A INPUT -p tcp --dport 22 -j REJECT
说明:iptables 规则默认临时生效,重启后丢失。如需永久保存(以 Debian/Ubuntu 为例):
bash# 安装 iptables-persistent sudo apt install iptables-persistent -y # 保存当前规则(IPv4) sudo iptables-save > /etc/iptables/rules.v4

步骤 4:JumpServer UI 创建 Linux 资产
- 登录 JumpServer 控制台,进入「资产」→「资产列表」→「创建资产」
- 填写资产信息(IP 地址、操作系统、协议类型(SSH)、端口 22 等)
- 关联之前创建的
jumpserver-admin账号作为登录凭证

步骤 5:测试资产连接与功能验证
通过 JumpServer 终端连接 Linux 资产,验证核心功能:
- 文件传输:支持通过 Web 界面上传/下载文件
- 会话审计:所有操作实时记录,支持命令回放
- 权限管控:仅授权用户可访问,未授权 IP 直接被 iptables 阻断

核心审计功能展示:
- 资产仪表盘 :实时查看资产连接状态

- 连接记录审计 :完整记录所有会话的访问时间、用户、操作内容

- 命令回放 :支持视频/文本格式回放操作全过程

- 命令结果记录 :精准记录每条命令的执行结果

- 在线会话管理 :实时查看当前活跃会话,支持强制中断

- 批量用户创建 :支持一次性为多台服务器创建统一管理用户

2.2 Windows 资产配置
Windows 资产通过 RDP 协议(3389 端口)被 JumpServer 管理,需配置防火墙规则限制仅允许 JumpServer IP 访问。
步骤 1:配置 Windows 防火墙 RDP 规则
- 打开 Windows「控制面板」→「系统和安全」→「Windows Defender 防火墙」→「高级设置」
- 新建「入站规则」:
- 规则类型:端口
- 协议:TCP,端口:3389
- 操作:允许连接
- 适用范围:仅允许来自 JumpServer 的 IP 地址(示例:192.168.20.194)
- 命名规则 :
允许 JumpServer 访问 RDP

步骤 2:JumpServer UI 创建 Windows 资产并连接
- 进入 JumpServer 控制台「资产」→「创建资产」,选择操作系统为 Windows,协议类型为 RDP,端口 3389
- 填写 Windows 登录账号密码(建议为 JumpServer 专属授权账号)
- 保存后,通过 JumpServer 终端发起 RDP 连接,直接在浏览器内访问 Windows 桌面
