宝塔面板可通过组合配置JumpServer或Next Terminal等开源堡垒机,并启用内置SSH强化、Web终端代理及双因素认证,构建具备资产纳管、会话审计与权限隔离的轻量级堡垒化访问体系。

如果您希望在宝塔面板环境中增强服务器远程登录的安全性,并借助其生态实现类似堡垒机的访问控制能力,则需注意:宝塔面板本身并非原生堡垒机,但可通过组合配置第三方开源堡垒机(如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白名单、登录失败锁定、会话超时等基础堡垒化行为。
吐槽大师(Roast Master) - 终极 AI 吐槽生成器,适用于 Instagram,Facebook,Twitter,Threads 和 Linkedin
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字段输出。
Generated by Clearly Reader
暂无评论