答案:Linux防火墙管理需选择firewalld或iptables工具。firewalld适用于现代系统,通过区域概念动态管理规则,使用systemctl控制服务状态,firewall-cmd配置持久化规则并重载生效。

firewalld或
iptables,来精确控制进出系统的网络流量。这不仅仅是技术操作,更是对系统安全策略的深思熟虑,确保只有被允许的服务才能与外界通信,从而构建起一道坚实的数字屏障。
解决方案
我发现很多人在管理Linux防火墙时,往往在
firewalld和
iptables之间感到困惑。实际上,它们都是强大的工具,只是管理哲学和操作方式有所不同。下面我将以两种主要方式来阐述,帮助你快速上手。
使用 firewalld
进行动态管理 (推荐用于现代系统)
firewalld是RHEL、CentOS、Fedora等现代Linux发行版中默认的防火墙管理服务。它的核心概念是“区域”(Zones),允许你根据网络环境(如公共、家庭、内部等)应用不同的安全策略。
-
检查
firewalld
状态: 在开始之前,确保firewalld
服务正在运行。sudo systemctl status firewalld
如果服务没有运行,你可以启动它并设置开机自启:
sudo systemctl start firewalld sudo systemctl enable firewalld
-
查看当前活动的区域和规则: 了解你的系统当前处于哪个区域以及该区域的规则至关重要。
sudo firewall-cmd --get-active-zones sudo firewall-cmd --list-all --zone=public # 假设你的活动区域是public
这会列出该区域开放的服务、端口、端口转发等信息。
-
开放或关闭服务端口: 例如,如果你需要开放HTTP (80/tcp) 和HTTPS (443/tcp) 服务,或者一个自定义的端口,比如8080/tcp:
sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --zone=public --add-service=https --permanent sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
注意
--permanent
选项,它会将规则写入配置文件,使其在重启后依然生效。没有它,规则只在当前会话有效。 移除服务或端口也很简单,只需将--add-service
替换为--remove-service
,或--add-port
替换为--remove-port
。 -
重新加载防火墙规则: 所有带有
--permanent
选项的更改都需要重新加载firewalld
才能生效。sudo firewall-cmd --reload









