1Panel Version
2.2.3
Please describe your needs or suggestions for improvements
陆陆续续周末研究研究了一下防火墙代码。发现目前防火墙的问题就是所有软件体系都揉在一块了,包括我去年提的 iptables 其实也是继续揉在里面耦合了。
未来半年可能会抽空提点 pr 试着修这个问题,最近让 fable 搓了几个原型,都是大改动,但是方向基本一致的,结合现有的功能,目前想着就是做这些,一点点把防火墙揉出去
第一个阶段:
- 拆分防火墙服务和转发服务。
- 把防火墙分为托管模式(UFW/firewalld)和 1Panel 防火墙(iptables,以及未来的 nftables)。前者完全依赖原软件
提供的能力,UFW/firewalld 有什么接口和命令就做什么;后者由 1Panel 自己管理规则和数据。
- 不同防火墙之间切换时重新初始化,不迁移旧规则,原有的 1Panel 防火墙数据会丢弃。
- 转发功能单独拆出去,不再和防火墙过滤规则混在一起。firewalld 继续使用原生转发,UFW/iptables 暂时保留现实现。
- 逐步收敛基本没人使用的 iptables 高级控制,避免继续扩大维护范围。
- 补好防锁死和回退机制,尤其是 SSH、面板端口以及可能导致服务器失联的操作。
第二个阶段开始动底层:
- 更换防火墙数据模型,参考安全组的方式定义允许和拒绝规则,并明确没有匹配规则时如何处理流量。
- 由 1Panel 保存期望的规则状态,再统一应用到系统防火墙,不再把当前系统中的全部规则直接当作 1Panel 数据。
- 1Panel 只维护自己的规则和链,不接管 Docker、Fail2Ban 或其他程序创建的规则。
- 增加 1Panel 自己的 Docker 防火墙链,让规则能够覆盖 Docker 发布的端口。
- 等新的规则模型和 iptables 实现稳定后,再尝试接入 nftables。
放出来可以讨论讨论怎么整理和拆出来这一坨了
Please describe the solution you suggest
No response
Additional Information
No response
1Panel Version
2.2.3
Please describe your needs or suggestions for improvements
陆陆续续周末研究研究了一下防火墙代码。发现目前防火墙的问题就是所有软件体系都揉在一块了,包括我去年提的 iptables 其实也是继续揉在里面耦合了。
未来半年可能会抽空提点 pr 试着修这个问题,最近让 fable 搓了几个原型,都是大改动,但是方向基本一致的,结合现有的功能,目前想着就是做这些,一点点把防火墙揉出去
第一个阶段:
提供的能力,UFW/firewalld 有什么接口和命令就做什么;后者由 1Panel 自己管理规则和数据。
第二个阶段开始动底层:
放出来可以讨论讨论怎么整理和拆出来这一坨了
Please describe the solution you suggest
No response
Additional Information
No response