凡人修云传(十一 : 管理网络安全)
文章目录
一、linux的防火墙
基于网络层和应用层的访问控制机制,通过预设的安全策略(允许拒绝规则)过滤进出系统的网络数据包。Firewalld是默认的动态防火墙管理器(采用 “区域(Zone)” 管理不同的网络环境,可以把网卡分配到不同的区域,给每个区域设置不同的防火墙规则)
1.1 防火墙技术架构(三层结构)
| 层级 | 名称 | 作用 |
|---|---|---|
| 底层 | netfilter | Linux内核框架,提供数据包过滤的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,可以使用什么命令?
- 添加永久性规则(立即生效需reload)
firewall-cmd --zone=public --add-port=82/tcp --permanent - 重新加载防火墙配置使规则生效
firewall-cmd --reload
2.3管理服务防火墙

-
确认firewalld运行状态
systemctl status
firewalld -
查看当前默认zone
firewall-cmd
–get-default-zone
→ public -
永久添加https服务
firewall-cmd
–permanent
–add-service=https
(仅写入配置文件) -
重载配置使其生效
firewall-cmd --reload
(运行时立即生效) -
验证配置结果
firewall-cmd
–list-all
确认services含https -
测试访问
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 模块,否则防火墙规则可能无法覆盖桥接流量
更多推荐



所有评论(0)