云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

firewall-cmd详解:从zone到service,5分钟搞定防火墙配置

jxf315 2025-10-13 23:16:08 教程文章 5 ℃

上一次,我们挑战了Linux防火墙的“上古神器”iptables,很多朋友感觉它很强大,但那一大堆复杂的“表”和“链”,也确实很“劝退”。

别怕,时代在进步!从CentOS 7开始,官方为我们提供了一个更简单、更人性化的新一代防火墙管理工具——firewall-cmd。

如果说iptables是需要手动挡、跟趾漂移的老司机,那么firewall-cmd就是人人都能轻松上手的“自动挡”。今天,我们就来看看这个“亲民版”的保安,到底有多好用。

一、firewall-cmd的核心思想:从“规则”到“场景”

iptables的思维是“基于规则”的,你需要像写法律条文一样,手动定义允许哪个IP、哪个端口通过。

而firewall-cmd的思维是“基于场景”的,它更智能。它引入了两个核心概念:

1. 区域 (Zone)

  • 比喻:你可以把它理解为,你电脑网卡当前所处的“安全场景”
  • 举例:比如,当你带着笔记本连接到机场的公共Wi-Fi时,你可以把网卡放入public(公共)区域,防火墙会启用一套非常严格的规则;
  • 当你回到家里,可以切换到home(家庭)区域,规则就会宽松很多。它为你预设了多种场景,一键切换,非常方便。

2. 服务 (Service)

  • 比喻:这是一个个预设好的“规则套餐”
  • 举例:在iptables里,要开放Web服务,你得手动写iptables -A INPUT -p tcp --dport 80 -j ACCEPT。而在firewall-cmd里,你只需要告诉它:firewall-cmd --add-service=http,它就会自动帮你把HTTP服务需要的80端口等一系列规则,全部配置好。

二、常用命令实战:5分钟上手

firewall-cmd的命令非常语义化,一看就懂。

1. 状态查看

  • 查看防火墙状态:firewall-cmd --state
  • 查看当前活动的区域:firewall-cmd --get-active-zones
  • 查看某个区域的所有配置:firewall-cmd --zone=public --list-all

2. 核心操作:开放服务和端口

  • 【最常用】 开放HTTP服务(80端口):
  • firewall-cmd --zone=public --add-service=http --permanent
  • 解读
    • --zone=public:指定在“公共”这个区域操作。
    • --add-service=http:添加“http”这个服务套餐。
    • --permanent:永久生效。不加这个参数,重启后规则就没了!
  • 【重载生效】 添加永久规则后,必须重载防火墙:
  • firewall-cmd --reload
  • 开放一个自定义端口(比如8080):
  • firewall-cmd --zone=public --add-port=8080/tcp --permanent

三、总结:新老搭配,干活不累

firewall-cmd以其易用性和场景化管理,极大地降低了Linux防火墙的配置门槛,非常适合日常和标准化的应用。

当然,iptables凭借其无与伦比的灵活性和强大的底层控制能力,在处理复杂、精细化的网络策略时,依然是无可替代的王者。

对于现代运维工程师来说,firewall-cmd就像是方便好用的“自动挡”,而iptables就像是高手能玩出漂移的“手动挡”,同时掌握,才能在服务器安全的战场上游刃有-余。


如果这篇“亲民版”的防火墙手册让你有所收获,请务必【点赞收藏】,再点个【关注】。我们的“命令行”系列暂告一段落,下期将开启一个全新的、更直观的篇章——《Wireshark抓包从入门到精通》,带你真正“看见”数据包!

最近发表
标签列表