Firewalld 是一个用于管理 Linux 系统上的防火墙规则的动态防火墙管理器。它提供了简化的界面和命令行工具,用于配置和管理防火墙规则。
以下是一些常见的 Firewalld 相关配置:
1.查看防火墙状态: 要查看防火墙状态,可以使用以下命令:
[root@localhost ~]# firewall-cmd --state
running
该命令将显示防火墙是否正在运行。
2.查看防火墙规则: 要查看当前的防火墙规则,可以使用以下命令:
[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default # 目标设置为默认(target: default),表示默认状态下防火墙会根据规则允许通过或拒绝传入的连接。
icmp-block-inversion: no # ICMP 阻塞反转被禁用(icmp-block-inversion: no),这意味着 ICMP 流量不会被阻止。
interfaces: ens33 # 正在使用的网络接口是 ens33(interfaces: ens33)。
sources: # 源地址没有明确指定(sources:)。
services: dhcpv6-client ssh # 服务包括 DHCPv6 客户端和 SSH(services: dhcpv6-client ssh)。
ports: # 没有指定特定的端口(ports:)和协议(protocols:)。
protocols: # 没有启用伪装(masquerade: no),这意味着 NAT 不会应用于连接。
masquerade: no # 没有配置转发端口(forward-ports:)和源端口(source-ports:)。
forward-ports: # 没有指定阻塞的 ICMP 类型(icmp-blocks:)。
source-ports: # 没有额外的自定义规则(rich rules:)。
icmp-blocks: # 这意味着防火墙当前允许通过 DHCPv6 和 SSH 服务的流量,并且没有其他自定义
rich rules: # 规则或端口开放。请注意,这只是您当前的防火墙配置的一个快照,实际上可能会根据您的配置和网络环境进行更改。如果您有其他问题或需要进一步的帮助,请告诉我。
该命令将显示已配置的防火墙规则,包括服务、端口和源/目标等信息。
3.允许/拒绝服务或端口: 要允许或拒绝特定的服务或端口,可以使用以下命令:
# 允许服务
firewall-cmd --add-service=<service>
# 例如
firewall-cmd --add-service=http
# 拒绝服务
firewall-cmd --remove-service=<service>
# 例如
firewall-cmd --remove-service=http
或
firewall-cmd --add-port=<port>/tcp
firewall-cmd --add-port=80/tcp
firewall-cmd --remove-port=<port>/tcp
firewall-cmd --remove-port=80/tcp
将 <service>
替换为要允许/拒绝的服务名称,例如 http
或 ssh
。将 <port>
替换为要允许/拒绝的端口号。
4.持久化配置更改: 临时更改防火墙规则后,重新启动系统后可能会还原为默认状态。为了使配置更改持久化,可以使用以下命令:
firewall-cmd --runtime-to-permanent
或者允许服务时,直接配置持久化
firewall-cmd --add-port=22/tcp --permanent
该命令将当前的临时配置更改保存为永久配置。
5.其他常用命令:
firewall-cmd --reload
:重新加载防火墙规则。firewall-cmd --zone=<zone>
:切换到指定的防火墙区域。firewall-cmd --list-services
:列出当前启用的服务。firewall-cmd --list-ports
:列出当前允许的端口。
请注意,Firewalld 的具体配置和语法可能因 Linux 发行版和版本而有所不同。