跳转到内容

防火墙

Web.Casa 提供基于 firewalld 的防火墙管理界面,可以直接在面板中配置区域、端口规则、服务规则和富规则,无需使用命令行。

防火墙插件通过 Web.Casa 界面管理服务器的 firewalld 配置。如果系统未安装 firewalld,面板提供一键安装选项。

警告:Docker 端口绕过 — Docker 自行管理 iptables 规则,可能绕过 firewalld。通过 Docker 容器暴露的端口(-p 参数)无论 firewalld 规则如何设置都可以被访问。如需对容器端口实施严格的防火墙控制,请使用 Docker 网络配置或设置 Docker 守护进程的 --iptables=false 选项。

Firewalld 将规则组织到**区域(Zone)**中。防火墙仪表盘显示:

  • 活跃区域 — 当前绑定了接口或源地址的区域
  • 非活跃区域 — 可用但未启用的区域

每个区域拥有独立的规则集、接口和源地址。常用区域包括 public、trusted、internal 和 drop。

添加端口规则以允许或阻止特定端口的流量:

字段选项
端口单个端口(如 8080)或范围(如 3000-3100)
协议TCP 或 UDP
区域规则所属的目标区域
  1. 选择目标区域
  2. 点击添加端口
  3. 输入端口号或范围
  4. 选择协议(TCP/UDP)
  5. 保存规则

使用服务名称(而非端口号)允许已知服务的流量:

  • http、https、ssh、dns、smtp、ftp
  • 以及 firewalld 服务数据库中定义的其他服务

这比手动端口规则更清晰,且当服务默认端口变更时会自动适配。

富规则(Rich Rules)提供超越简单端口允许/拒绝的精细控制:

rule family="ipv4" source address="10.0.0.0/8" accept
rule family="ipv4" source address="192.168.1.0/24" port port="3306" protocol="tcp" accept
rule family="ipv4" source address="203.0.113.50" drop

富规则支持:

  • 源地址过滤 — 允许或拒绝特定 IP 或 CIDR 网段
  • 端口 + 源地址组合 — 将端口访问限制为特定网络
  • 协议匹配 — 按 TCP、UDP 或 ICMP 过滤
  • Accept、Drop 或 Reject 动作

为区域分配网络接口和源地址:

  • 接口 — 将物理或虚拟网络接口(如 eth0、docker0)绑定到区域
  • 源地址 — 将来自特定 IP 或 CIDR 的流量路由到区域进行处理
  • 重载 firewalld 配置以应用更改,不中断活跃连接
  • 所有规则持久化到永久配置
  • 更改立即在运行时配置中生效

提示: 修改防火墙规则后,建议从外部机器测试连通性以验证规则是否按预期工作。可以使用网页终端运行 firewall-cmd --list-all 进行快速验证。