IW3C 发表于 2020-8-26 01:21:03

[风险]Debian 系统防火墙失效问题

系统版本 Debian GNU/Linux 10(Py3.7.8)使用宝塔官方的 debian 安装命令wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh 安装了 最新的 7.4.3的 面板
云服务安全组全部开启,放通所有流量
安装官方的默认推荐 我们安装 nginx , mysql , pure-ftp , php , phpmyadmin ,安装 完成后 打开宝塔面板的安全页面,如图所示


回到数据库页面 , 尝试打开 phpmyadmin

发现 能够正常的的打开 phpmyadmin ,此时再次回到宝塔的安全页面,查看防火墙配置

发现 宝塔的防火墙里面并没有显示放行了 888 号端口 。
为了验证这一防火墙安全漏洞,我用nginx 新建了一个端口号 为 8081 的网站.(ps:此处提交另外一个BUG , 创建端口号为 8080 的 网站会提示端口号非法)

如图所示 , 访问指定的页面


再一次的打开宝塔的安全页面 ,可以看见此时 显示 放行了8081 , 点击删除这个端口 ,可以发现此时防火墙的安全策略生效 , 8081 端口不能访问
但是反过来 防火墙中不显示的 888 好端口依然可以访问 。
借下里试验 80 端口 ,按照宝塔的默认规则 ,当安装了 nginx 时,如果不设置站点 ,访问IP:80 应该得到如图的页面

此时如果从防火墙中删除 80 端口 , 再次打开安全页面


看日志已经删除了80 端口 ,但是依旧可以正常打开 nginx 没有绑定站点 的页面

接下来尝试从代码层解析问题
根据 前端抓包 , 读取防火墙的配置信息的接口 是 data?action=getData , 从 data.py 得知 宝塔获取防火墙的配置文件 依赖于 默认数据库 default.db

在此做出假设 , 假设某客户机器存在 7.4.2 的漏洞 ,被一个非常高明的黑客入侵后 通过某种手段在面板内创建了某个服务,同时为了避免用户察觉,该黑客通过篡改 default.db 文件中关于面板开放端口 和 日志文件的数据表 , 那么用户可能完全无法感知到服务器的入侵风险

故希望
1、官方立即上线入侵日志查询插件 ,帮助可能存在入侵风险的用户自查服务器风险
2、立即修复面板端口和实际防火墙策略不匹配问题
3、立即更新读取面板防火墙端口的原理和策略机制
4、通过md5, sha256 途径对数据库进行 强制数据效验 , 避免 黑客入侵后篡改宝塔的 defalut.db

衷心的希望宝塔越来越好,也提醒各位心怀鬼胎的 灰产 、 黑产 , 法网恢恢,疏而不漏






IW3C 发表于 2020-8-27 17:54:42

没人注意到这个问题吗

baota998 发表于 2023-3-7 21:18:56

这个问题,现在依旧(我是在Debian11上测试的)

宝塔用户_bfbebz 发表于 2023-3-9 20:06:17

我有三台服务器在主服务器上安装了 系统防火墙,将两个子服务器的ip设置为白名单放行结果 两个子服务器还是无法访问主服务器

南南呦 发表于 2023-3-9 23:11:01

宝塔用户_bfbebz 发表于 2023-3-9 20:06
我有三台服务器在主服务器上安装了 系统防火墙,将两个子服务器的ip设置为白名单放行结果 两个子服务器 ...

另外的帖回复您了
页: [1]
查看完整版本: [风险]Debian 系统防火墙失效问题