Linux防火墙状态查看:全面掌握系统安全的关键步骤(2025最新指南)

在当今网络安全形势日益严峻的背景下,Linux防火墙作为守护服务器与个人设备的第一道防线,其状态监控和管理显得尤为重要。无论是运维工程师、开发人员还是普通用户,掌握如何正确查看Linux防火墙状态,都是保障系统安全的基础技能。

Linux防火墙状态查看:全面掌握系统安全的关键步骤(2025最新指南)

本文将为您详细解析Linux防火墙状态查看的完整方法,涵盖主流防火墙工具(firewalldiptablesufw)的操作命令,并结合不同Linux发行版进行说明,助您快速定位问题、提升系统安全性。


为什么需要查看Linux防火墙状态?

防火墙通过预设规则控制进出系统的网络流量,防止未经授权的访问和潜在攻击。定期检查防火墙状态可以帮助您:

  • ✅ 确认防火墙服务是否正常运行

  • ✅ 检查关键端口是否已开放或被阻止

  • ✅ 验证安全策略是否生效

  • ✅ 快速排查网络连接异常问题

📌 小贴士:即使您未手动配置防火墙,现代Linux系统通常默认启用某种防火墙服务,忽略其存在可能导致服务无法访问或安全漏洞。


主流Linux防火墙工具及状态查看方法

Linux系统中常见的防火墙管理工具有三种:firewalld(CentOS/RHEL/Fedora)、ufw(Ubuntu/Debian)和传统的iptables。以下是针对每种工具的详细查看方法。

1. 使用 firewalld(适用于 CentOS 7+、RHEL、Fedora 等)

firewalld 是目前大多数主流发行版的默认防火墙管理工具,支持动态更新规则而无需重启服务。

✅ 查看防火墙运行状态

systemctl status firewalld

输出示例:

● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2025-09-16 09:30:12 CST; 20min ago
  • Active: active (running):表示防火墙正在运行。

  • Active: inactive (dead):表示防火墙已关闭。

✅ 快速判断状态(仅返回 running 或 not running)

sudo firewall-cmd --state

输出:

running

✅ 查看当前防火墙规则详情

sudo firewall-cmd --list-all

该命令将显示当前区域(通常是 public)的所有开放端口、服务、富规则等信息,便于全面了解配置。

✅ 常用辅助命令

功能命令
查看所有开放端口firewall-cmd --list-ports
查看允许的服务firewall-cmd --list-services
查看活跃区域firewall-cmd --get-active-zones
重启防火墙systemctl restart firewalld
开启防火墙systemctl start firewalld
关闭防火墙systemctl stop firewalld
开机自启systemctl enable firewalld

2. 使用 ufw(适用于 Ubuntu、Debian 等)

Ubuntu系统默认使用 UFW(Uncomplicated Firewall),它是一个简化iptables配置的前端工具,非常适合新手使用。

✅ 查看防火墙状态

sudo ufw status

输出示例:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
  • Status: active:防火墙已启用。

  • Status: inactive:防火墙未运行。

✅ 以详细模式查看状态

sudo ufw status verbose

可查看更详细的规则信息,如日志状态、默认策略等。

✅ 常用UFW命令

功能命令
启用防火墙sudo ufw enable
禁用防火墙sudo ufw disable
允许端口sudo ufw allow 80/tcp
拒绝IP访问sudo ufw deny from 192.168.1.100
删除规则sudo ufw delete allow 22/tcp

3. 使用 iptables(传统工具,适用于旧系统或自定义环境)

尽管firewalld已成为主流,但在一些老旧系统或特定场景下,仍使用iptables直接管理规则。

✅ 查看当前iptables规则

sudo iptables -L -n -v

参数说明:

  • -L:列出规则

  • -n:以数字形式显示IP和端口(加快显示速度)

  • -v:显示详细信息(如数据包和字节数)

输出将显示 INPUTFORWARDOUTPUT 三个链的规则列表。

✅ 保存和恢复iptables规则(部分系统)

# 保存当前规则
sudo service iptables save

# 或使用
sudo iptables-save > /etc/iptables/rules.v4

⚠️ 注意:iptables在CentOS 7及以上版本中默认不启用,需安装 iptables-services 包后方可使用。


如何判断你的系统使用哪种防火墙?

不同Linux发行版默认使用的防火墙工具不同,可通过以下命令判断:

# 检查 firewalld 是否存在
systemctl is-active firewalld

# 检查 ufw 是否存在
ufw status | grep Status

# 检查 iptables 规则
sudo iptables -L -n | head -5
发行版默认防火墙
CentOS 7/8/9, RHEL, Fedorafirewalld
Ubuntu 16.04+, Debianufw(可选)
CentOS 6 及更早版本iptables

四、实用技巧与最佳实践

  1. 定期检查防火墙状态:建议将 sudo firewall-cmd --list-all 或 sudo ufw status 加入日常巡检脚本。

  2. 避免误关防火墙:生产环境中不要随意执行 stop 或 disable 命令,可能导致服务中断。

  3. 使用永久规则:在 firewalld 中添加规则时使用 --permanent 参数,确保重启后仍有效。

  4. 日志审计:启用防火墙日志功能,便于追踪异常访问行为。

  5. 最小权限原则:只开放必要的端口和服务,减少攻击面。


常见问题解答(FAQ)

Q1:执行 firewall-cmd --state 报错怎么办?
A:可能是 firewalld 服务未启动或未安装。请先运行 systemctl start firewalld

Q2:ufw 命令不存在?
A:Ubuntu系统可能未安装UFW,请使用 sudo apt install ufw 安装。

Q3:如何查看某个端口是否开放?
A:

# firewalld
firewall-cmd --query-port=80/tcp

# ufw
ufw status | grep 80

掌握 Linux防火墙状态查看 的方法,是每位Linux用户必备的技能。无论您使用的是 firewalldufw 还是 iptables,本文提供的命令和技巧都能帮助您高效管理网络安全策略。

🔐 安全提醒:防火墙只是安全体系的一部分,建议结合SSH密钥登录、定期更新系统、关闭无用服务等措施,构建多层次防御体系。

如果您觉得这篇文章对您有帮助,欢迎点赞、收藏并分享给更多需要的朋友!关注我,获取更多实用的Linux运维与安全知识。

发表评论

评论列表

还没有评论,快来说点什么吧~