5.3 Linux 防火墙基础与 firewalld 管理

5.3 Linux 防火墙基础与 firewalld 管理

一、防火墙基础

防火墙用于控制服务器网络流量,决定:

  • 哪些端口允许访问
  • 哪些服务允许通信
  • 哪些连接被拒绝

Linux 常见防火墙方案:

工具 说明
firewalld CentOS 7+/RHEL 默认方案
iptables 传统 Linux 防火墙
nftables 新一代 Linux 防火墙框架
ufw Ubuntu 简化防火墙工具

二、firewalld 简介

firewalld 是基于:

id
1
nftables / iptables

封装的动态防火墙管理工具。

特点:

  • 支持动态修改规则
  • 支持区域(Zone)
  • 支持服务与端口管理
  • 配置相对简单

三、firewalld 服务管理

3.1 查看状态

id
1
systemctl status firewalld

3.2 启动与停止

启动防火墙

id
1
systemctl start firewalld

停止防火墙

id
1
systemctl stop firewalld

3.3 开机自启

id
1
systemctl enable firewalld

3.4 禁止开机启动

id
1
systemctl disable firewalld

生产环境通常不建议关闭防火墙。


四、firewalld 区域(Zone)

firewalld 使用区域划分不同安全级别。

常见区域:

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

4.1 查看当前区域

id
1
firewall-cmd --get-active-zones

4.2 查看默认区域

id
1
firewall-cmd --get-default-zone

五、查看防火墙规则

查看当前区域所有规则

id
1
firewall-cmd --list-all

查看允许的服务

id
1
firewall-cmd --list-services

查看开放端口

id
1
firewall-cmd --list-ports

六、服务与端口管理

firewalld 支持:

  • 服务规则
  • 端口规则

推荐优先使用:

id
1
service

方式,更易维护。


七、开放与关闭服务

开放 HTTP 服务

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

开放 HTTPS 服务

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

删除服务规则

id
1
firewall-cmd --remove-service=http --permanent

重载规则

id
1
firewall-cmd --reload

八、开放与关闭端口

开放 TCP 端口

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

开放 UDP 端口

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

开放端口范围

id
1
firewall-cmd --add-port=1000-2000/tcp --permanent

删除端口规则

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

九、永久规则与临时规则

firewalld 分为:

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

9.1 临时规则

不加:

id
1
--permanent

例如:

id
1
firewall-cmd --add-port=9999/tcp

9.2 永久规则

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

永久规则修改后需要:

id
1
firewall-cmd --reload

十、富规则(Rich Rule)

firewalld 支持更细粒度控制。


限制指定 IP 访问 SSH

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

拒绝指定 IP

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

十一、查看监听端口

开放防火墙端口前,需要确认服务是否监听。


使用 ss

id
1
ss -tunlp

过滤指定端口

id
1
ss -tunlp | grep 80

十二、防火墙常见场景

放行 Web 服务

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

放行 SSH 新端口

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

放行数据库端口

id
1
firewall-cmd --add-port=3306/tcp --permanent

注意:

数据库通常不建议直接暴露公网。


十三、防火墙与云服务器

云服务器通常存在两层防护:

层级 说明
云平台安全组 云厂商控制
系统防火墙 Linux 本机控制

只有:

id
1
两层都放行

外部才能访问对应端口。


十四、总结

命令 作用
systemctl status firewalld 查看状态
firewall-cmd –list-all 查看规则
firewall-cmd –add-service 开放服务
firewall-cmd –add-port 开放端口
firewall-cmd –reload 重载规则
ss -tunlp 查看监听端口

Linux 防火墙是服务器安全基础,用于:

  • 控制端口访问
  • 限制网络流量
  • 保护服务安全
  • 管理公网暴露面
  • 配合云安全组进行访问控制

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