一、linux的防火墙

基于网络层和应用层的访问控制机制,通过预设的安全策略(允许拒绝规则)过滤进出系统的网络数据包。Firewalld是默认的动态防火墙管理器(采用 “区域(Zone)” 管理不同的网络环境,可以把网卡分配到不同的区域,给每个区域设置不同的防火墙规则)

1.1 防火墙技术架构(三层结构)

层级名称作用
底层netfilterLinux内核框架,提供数据包过滤的hook机制
中间层nftables取代iptables,统一管理IPv4/IPv6流量,RHEL9核心
上层firewalld前端管理工具,基于zone简化防火墙配置

1.2 firewalld配置方法

模式特点生效方式
runtime(运行时)立即生效,重启丢失默认模式
permanent(永久)写入配置,重启保留需加--permanent+--reload

1.3 常用命令行操作

查看默认zone
firewall-cmd --get-default-zone

设置默认zone为dmz(永久)
firewall-cmd --set-default-zone=dmz --permanent
firewall-cmd --reload

将192.168.0.0/24分配给internal zone
firewall-cmd --permanent --zone=internal --add-source=192.168.0.0/24

在internal zone开放mysql服务
firewall-cmd --permanent --zone=internal --add-service=mysql
firewall-cmd --reload

列出所有端口标签
semanage port -l

按服务名过滤
semanage port -l | grep ssh

按端口号过滤
semanage port -l | grep 22

二、firewalld

2.1 系统管理员可以通过哪三种方式与firewalld交互?

命令行 firewall-cmd
图形界面 用GUI鼠标点击图形化工具
配置文件 直接修改防火墙的配置文件(/etc/firewalld/firewalld.conf)

2.2 要允许httpd服务侦听端口82/TCP,可以使用什么命令?

  1. 添加永久性规则(立即生效需reload)
    firewall-cmd --zone=public --add-port=82/tcp --permanent
  2. 重新加载防火墙配置使规则生效
    firewall-cmd --reload

2.3管理服务防火墙

在这里插入图片描述

  1. 确认firewalld运行状态
    systemctl status
    firewalld

  2. 查看当前默认zone
    firewall-cmd
    –get-default-zone
    → public

  3. 永久添加https服务
    firewall-cmd
    –permanent
    –add-service=https
    (仅写入配置文件)

  4. 重载配置使其生效
    firewall-cmd --reload
    (运行时立即生效)

  5. 验证配置结果
    firewall-cmd
    –list-all
    确认services含https

  6. 测试访问
    HTTP(80) → 拒绝 ✗
    HTTPS(443)→ 允许 ✓

在这里插入图片描述


Tips

–permanent 和 --reload 必须配合使用,否则配置不会立即生效!

br_netfilter和netfilter和firewalld的关系

1. netfilter
定位:Linux 内核级防火墙框架,提供基础网络流量控制功能
核心功能:
数据包过滤:基于规则允许/丢弃流量(IP、端口、协议等)
NAT:支持地址转换(如端口转发、IP 伪装)
连接跟踪:维护网络连接状态,实现有状态防火墙
工具接口:通过 iptables 或 nftables 配置规则
容器依赖:Docker/Kubernetes 网络底层依赖 netfilter 实现流量管控
2. br_netfilter
定位:内核模块,扩展 netfilter 功能至桥接网络(如 Linux Bridge)
解决的问题:
默认 netfilter 仅处理路由流量(三层),桥接流量(二层交换)会被绕过
作用:
使桥接流量经过 netfilter 钩子,允许应用防火墙规则
典型场景:
Kubernetes 集群中,Pod 间通信依赖桥接网络,需 br_netfilter 支持流量过滤
3. firewalld
定位:用户空间动态防火墙管理工具,基于 nftables/iptables 的高级抽象
核心特性:
区域(Zone):预定义规则集(如 public、trusted),简化配置
服务/端口抽象:直接管理服务(如 HTTP)或端口(如 80/TCP),避免复杂规则编写
动态更新:运行时修改规则无需重启服务(通过 firewall-cmd 命令)

与 netfilter 的关系:
用户空间前端,最终规则通过 nftables/iptables 写入内核

与 br_netfilter 的关系:
若系统使用桥接网络(如 Kubernetes),需加载 br_netfilter 模块,否则防火墙规则可能无法覆盖桥接流量

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐