宝塔面板配置堡垒机提升登录安全
时间:2026-05-22 19:17:21 496浏览 收藏
本文详细介绍了如何在宝塔面板环境中构建轻量级但功能完备的堡垒机式安全访问体系——不依赖专业硬件或复杂架构,而是通过灵活组合JumpServer或Next Terminal等开源堡垒机、深度调用宝塔内置SSH强化策略、Web终端代理(Luna)、双因素认证与会话水印等多重手段,实现资产统一纳管、操作全程审计、权限精细隔离和登录强身份验证,既满足等保合规基本要求,又兼顾中小团队的部署效率与运维成本,为服务器远程管理筑起一道坚实可靠的安全防线。

如果您希望在宝塔面板环境中增强服务器远程登录的安全性,并借助其生态实现类似堡垒机的访问控制能力,则需注意:宝塔面板本身并非原生堡垒机,但可通过组合配置第三方开源堡垒机(如JumpServer、Next Terminal)或启用面板内置安全机制,构建具备资产纳管、会话审计、权限隔离特征的轻量级堡垒化访问路径。以下是具体实施步骤:
一、部署JumpServer开源堡垒机(容器化方式)
JumpServer是符合等保要求的国产开源堡垒机,支持SSH/RDP/数据库等协议代理,与宝塔共存于同一服务器时需规避端口冲突并隔离运行环境。该方案提供完整会话录屏、命令审计与多因子认证能力。
1、确认Docker已安装:进入宝塔面板【软件商店】,搜索“Docker”并安装;若未安装,执行命令:yum install -y docker && systemctl start docker。
2、修改宝塔面板默认端口(避免与JumpServer的8080/8081冲突):进入【面板设置】→【安全设置】→将面板端口改为54321,保存后重启面板。
3、在【文件】中进入/www/wwwroot目录,使用【远程下载】功能获取JumpServer离线安装包,地址为:https://github.com/jumpserver/installer/releases/download/v2.20.2/jumpserver-installer-v2.20.2.tar.gz。
4、解压后进入目录,编辑config-example.txt,将SECRET_KEY和BOOTSTRAP_TOKEN替换为通过openssl rand -base64 24 | tr -d '\n'生成的随机密钥串。
5、执行安装脚本:bash install.sh,等待初始化完成,访问http://服务器IP:8080,使用默认账号admin/admin登录并立即修改密码。
二、集成Next Terminal轻量级堡垒终端
Next Terminal资源占用低、部署快捷,适合中小规模运维场景,可直接通过宝塔反向代理对外暴露,无需额外开放高危端口,所有连接经由HTTPS加密中转。
1、在宝塔【软件商店】中安装【Node.js项目】运行环境(版本选择16.x LTS)。
2、新建网站,域名填写内网可解析地址(如nt.internal),根目录设为/www/wwwroot/next-terminal。
3、使用【终端】进入该目录,执行:git clone https://gitee.com/midoks/next-terminal.git . && npm install --production。
4、复制.env.example为.env,将DB_HOST设为127.0.0.1,DB_PORT设为3306,并填入宝塔中已创建的MySQL数据库凭证。
5、在宝塔【网站】→【设置】→【反向代理】中添加规则:目标URL填http://127.0.0.1:3000,启用SSL并强制HTTPS跳转。
三、启用宝塔内置SSH访问强化策略
不依赖外部组件,仅通过宝塔面板对系统SSH服务进行细粒度管控,可快速实现IP白名单、登录失败锁定、会话超时等基础堡垒化行为。
1、进入【安全】→【防火墙】→【放行端口】,删除默认开放的22端口规则,仅添加允许运维跳板机IP段(如192.168.10.0/24)的SSH入站规则。
2、在【终端】中执行命令启用faillock机制:authselect select sssd with-faillock --force,随后编辑/etc/security/faillock.conf,设置deny = 5、unlock_time = 900。
3、进入【计划任务】,新增每5分钟执行一次的Shell脚本:grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | awk '$1 > 3 {print $2}' | xargs -I {} iptables -A INPUT -s {} -j DROP,实现自动封禁暴力破解源IP。
四、配置基于Web的SSH终端代理(Luna Web Terminal)
利用宝塔自带的Luna终端模块(部分版本集成),将SSH会话封装为Web界面操作,隐藏真实服务器IP与端口,所有交互流量经由HTTPS加密传输,且支持操作日志留存。
1、确认宝塔版本≥7.9.0,进入【面板设置】→【安全设置】,开启【Web终端】开关并设置独立访问路径(如/webssh)。
2、在【网站】中新建一个纯静态站点,绑定域名后进入【SSL】→【Let's Encrypt】申请证书,确保HTTPS可用。
3、在该站点根目录下创建.htaccess文件,写入重写规则:RewriteRule ^(.*)$ https://您的主面板域名:54321/luna/$1 [P,L],实现反向代理到面板Luna服务。
4、进入【数据库】→【phpMyAdmin】,在bt_default库中查找users表,将目标管理员账户的role字段值由administrator改为luna_user,限制其仅能访问Web终端模块。
五、启用双因素认证(2FA)与会话水印
在用户登录环节叠加时间动态令牌验证,并对所有Web终端操作画面叠加不可擦除的用户标识水印,满足审计溯源基本要求。
1、进入【面板设置】→【安全设置】→【双重验证】,启用Google Authenticator,扫描二维码绑定管理员手机APP。
2、在【网站】→【设置】→【SSL】→【其他设置】中,勾选【启用会话水印】,输入水印文字格式:[user]@[ip] [time],字体大小设为12px,透明度设为0.15。
3、执行命令强制所有用户下次登录时重新绑定2FA:rm -f /www/server/panel/data/two_factor_auth/*.json。
4、在【监控】→【实时日志】中,筛选关键词two_factor_auth,确认登录事件中包含verified:true字段输出。
本篇关于《宝塔面板配置堡垒机提升登录安全》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于文章的相关知识,请关注golang学习网公众号!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
133 收藏
-
361 收藏
-
336 收藏
-
492 收藏
-
254 收藏
-
496 收藏
-
189 收藏
-
420 收藏
-
289 收藏
-
344 收藏
-
161 收藏
-
444 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习