HOME

firewall-cmd

firewall-cmd 是一个用于管理 Linux 系统中 firewalld 的命令行工具。firewalld 是一种动态防火墙配置工具,能够为 IPv4 和 IPv6 提供即时服务和端口过滤功能,并支持丰富的策略选项。使用 firewall-cmd 可以轻松地对系统进行网络访问控制、添加或删除规则。

安装与启动

在大多数 Linux 发行版中,如 CentOS、Fedora、OpenSUSE 等,通常已经预安装了 firewalld 以及相应的管理工具。要检查是否已安装,请使用以下命令:

sudo firewall-cmd --version

若未安装,可以通过发行版的包管理器进行安装。例如,在 Fedora 中可以使用以下命令:

sudo dnf install firewalld

或者在 CentOS 上:

sudo yum install firewalld

安装完成后,启动 firewalld 并设置开机自启:

sudo systemctl start firewalld
sudo systemctl enable firewalld

基本操作

查看防火墙状态

使用以下命令查看防火墙是否正在运行以及当前的状态:

sudo firewall-cmd --state

如果返回 running,则表示防火墙正在正常工作。

查询服务和端口

要查询已配置的服务或端口,请使用以下命令:

sudo firewall-cmd --list-services

查看特定服务的状态:

sudo firewall-cmd --query-service <service-name>

例如,检查 http 服务是否已被添加到防火墙中:

sudo firewall-cmd --query-service=http

添加规则

添加服务

允许 HTTP 和 HTTPS 流量:

sudo firewall-cmd --add-service=http
sudo firewall-cmd --add-service=https

或者一次性添加多个服务:

sudo firewall-cmd --add-services=ssh,http,https

开放端口

开放 8080 端口供 HTTP 流量使用:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

同样可以一次性添加多个端口:

sudo firewall-cmd --zone=public --add-port=22-33/tcp --permanent

保存配置

firewalld 进行任何更改后,需要使用 --permanent 参数来使更改生效,并在重新启动系统时保持这些设置:

sudo firewall-cmd --reload

这会将临时配置文件重载为永久配置文件。

常见场景

网络隔离

使用 firewall-cmd 可以对网络进行细致的控制。例如,假设只想允许从本地网络访问特定服务:

sudo firewall-cmd --zone=trusted --add-service=http

动态调整规则

防火墙在运行时可以动态地添加、修改或删除规则,而无需重启服务。这对于需要快速响应的应用场景非常有用。

总结

firewall-cmdfirewalld 防火墙系统的命令行管理工具,提供了丰富的配置选项和灵活的网络策略控制能力。通过它我们可以方便地为系统添加、删除或调整防火墙规则,从而更好地保护系统免受未经授权的访问。

掌握 firewall-cmd 的使用技巧,可以帮助你高效地管理和优化网络访问策略,保障系统的安全性和稳定性。