5.3 Linux 防火墙基础与 firewalld 管理

5.3 Linux 防火墙管理与 firewalld 实战

防火墙概述

防火墙用于控制主机网络访问行为,通过定义规则决定哪些连接允许通过、哪些连接被拒绝,是 Linux 服务器安全防护的重要组成部分。

常见 Linux 防火墙方案:

工具 说明
firewalld RHEL/CentOS 7+ 默认防火墙
iptables 传统防火墙工具
nftables 新一代网络过滤框架
ufw Ubuntu 简化管理工具

目前主流企业环境多采用 firewalld 或 nftables。


firewalld 核心概念

firewalld 基于 iptables 或 nftables 实现,支持动态加载规则,无需重启服务即可生效。

主要特点:

  • 动态修改规则
  • 支持区域(Zone)管理
  • 支持服务和端口管理
  • 支持细粒度访问控制
  • 与 systemd 深度集成

firewalld 服务管理

查看运行状态:

1
systemctl status firewalld

启动服务:

1
systemctl start firewalld

停止服务:

1
systemctl stop firewalld

设置开机自启:

1
systemctl enable firewalld

重新加载规则:

1
firewall-cmd --reload

Zone 区域管理

firewalld 使用 Zone 对网络环境进行安全级别划分。

常见区域:

区域 说明
public 默认公共网络
internal 内部可信网络
home 家庭网络
trusted 完全信任
drop 丢弃所有连接

查看当前区域:

1
firewall-cmd --get-active-zones

查看默认区域:

1
firewall-cmd --get-default-zone

查看当前区域配置:

1
firewall-cmd --list-all

服务与端口管理

查看已开放服务:

1
firewall-cmd --list-services

查看已开放端口:

1
firewall-cmd --list-ports

开放 HTTP 服务:

1
firewall-cmd --add-service=http --permanent

开放 HTTPS 服务:

1
firewall-cmd --add-service=https --permanent

开放 TCP 端口:

1
firewall-cmd --add-port=8080/tcp --permanent

开放 UDP 端口:

1
firewall-cmd --add-port=53/udp --permanent

删除端口规则:

1
firewall-cmd --remove-port=8080/tcp --permanent

规则修改完成后执行:

1
firewall-cmd --reload

临时规则与永久规则

firewalld 规则分为两种:

类型 特点
临时规则 立即生效,重启失效
永久规则 重启后仍然保留

临时开放端口:

1
firewall-cmd --add-port=8080/tcp

永久开放端口:

1
2
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

生产环境建议统一使用永久规则管理。


Rich Rule 高级规则

允许指定 IP 访问 SSH:

1
2
firewall-cmd --permanent \
--add-rich-rule='rule family="ipv4" source address="192.168.1.10" service name="ssh" accept'

禁止指定 IP 访问:

1
2
firewall-cmd --permanent \
--add-rich-rule='rule family="ipv4" source address="1.2.3.4" drop'

查看已配置 Rich Rule:

1
firewall-cmd --list-rich-rules

常见运维场景

放行 Web 服务:

1
2
3
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

放行 SSH 自定义端口:

1
2
firewall-cmd --add-port=2222/tcp --permanent
firewall-cmd --reload

放行 MySQL 端口:

1
2
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload

查看服务监听状态:

1
ss -tunlp

查看指定端口:

1
ss -tunlp | grep 80

安全建议

  • 优先开放服务而非直接开放端口
  • SSH 建议修改默认端口并限制来源 IP
  • 数据库端口不要直接暴露公网
  • 定期审计开放规则
  • 云服务器需同时检查安全组与系统防火墙
  • 删除不再使用的端口和服务规则

总结

firewalld 是 Linux 服务器中最常用的防火墙管理工具,核心内容包括:

  • 防火墙服务管理
  • Zone 区域控制
  • 服务与端口放行
  • Rich Rule 访问控制
  • 网络监听与安全排查

熟练掌握 firewalld 后,可以完成绝大多数 Linux 服务器网络访问控制与安全加固工作。


5.3 Linux 防火墙基础与 firewalld 管理
https://blog.sh462li.top/2026/05/28/Linux_learn/5.3 Linux防火墙基础与firewalld管理/
作者
SHAO
发布于
2026年5月28日
许可协议