Firewalld


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 # 正在使用的网络接口是 ens33interfaces: ens33)。
  sources: # 源地址没有明确指定sources:)。
  services: dhcpv6-client ssh # 服务包括 DHCPv6 客户端和 SSHservices: 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> 替换为要允许/拒绝的服务名称,例如 httpssh。将 <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 发行版和版本而有所不同。