当前位置:首页 > 服务器技术 > 正文

Linux防火墙管理利器(firewall-cmd从入门到实战)

在现代Linux系统中,网络安全至关重要。无论是个人电脑还是服务器,都需要一个可靠的防火墙来保护系统免受未经授权的访问。在众多Linux发行版(如CentOS、RHEL、Fedora等)中,firewalld 是默认的防火墙管理工具,而 firewall-cmd 则是其核心命令行接口。

本教程将带你从零开始,掌握 firewall-cmd 的基本用法,即使你是Linux新手,也能轻松上手!

Linux防火墙管理利器(firewall-cmd从入门到实战) firewall-cmd  Linux防火墙 firewalld教程 网络安全配置 第1张

一、什么是 firewall-cmd?

firewall-cmdfirewalld 防火墙服务的命令行客户端。它允许用户动态地管理防火墙规则,无需重启服务即可生效。与传统的 iptables 相比,firewalld 使用“区域(zones)”和“服务(services)”的概念,使配置更加直观。

二、准备工作:检查 firewalld 状态

在使用 firewall-cmd 之前,请确保 firewalld 服务正在运行:

# 检查 firewalld 是否正在运行sudo systemctl status firewalld# 如果未启动,可以使用以下命令启动并设置开机自启sudo systemctl start firewalldsudo systemctl enable firewalld

三、常用 firewall-cmd 命令详解

1. 查看当前防火墙状态

firewall-cmd --state

如果返回 running,说明防火墙已启用。

2. 查看默认区域(zone)

firewall-cmd --get-default-zone

常见的区域包括 publicinternaldmz 等,不同区域对应不同的信任级别。

3. 开放端口(临时生效)

# 开放TCP 80端口(HTTP)firewall-cmd --add-port=80/tcp# 开放UDP 53端口(DNS)firewall-cmd --add-port=53/udp

注意:以上命令仅在当前会话有效,重启后失效。

4. 永久开放端口

# 永久开放80端口sudo firewall-cmd --permanent --add-port=80/tcp# 重新加载配置使永久规则生效sudo firewall-cmd --reload

添加 --permanent 参数表示永久生效,但必须执行 --reload 才能立即应用。

5. 使用预定义服务开放端口

firewalld 内置了许多常见服务(如 http、https、ssh),可以直接启用:

# 永久开启SSH服务(默认22端口)sudo firewall-cmd --permanent --add-service=ssh# 永久开启Web服务sudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=https# 重载配置sudo firewall-cmd --reload

6. 查看当前开放的端口和服务

# 查看所有活动规则firewall-cmd --list-all# 仅查看开放的端口firewall-cmd --list-ports# 仅查看启用的服务firewall-cmd --list-services

四、实用技巧与注意事项

  • 修改规则前建议先备份:cp /etc/firewalld/zones/public.xml ~/public.xml.bak
  • 临时规则适合测试,确认无误后再设为永久规则。
  • 若误操作导致无法连接,可通过本地控制台或VNC恢复。
  • 学习 firewalldfirewall-cmd 是提升 网络安全配置 能力的重要一步。

五、总结

firewall-cmd 是管理Linux防火墙的强大工具。通过本教程,你已经掌握了如何查看状态、开放端口、启用服务等核心操作。无论你是系统管理员还是普通用户,合理配置防火墙都是保障系统安全的第一道防线。

记住:安全不是一次性的任务,而是持续的过程。定期检查你的 Linux防火墙 规则,确保只开放必要的端口和服务。

希望这篇 firewalld教程 对你有所帮助!如果你觉得有用,欢迎分享给更多需要的朋友。