firewalld 防火墙

管理 firewalld 的方式

  • 命令行 firewall-cmd
  • 图形化 firewall-config
  • 配置文件 /etc/firewalld
区域名称 默认配置
trusted 允许所有的数据包
home 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量
internal 等同于home区域
work 拒绝流入的流量,除非与流出的流量数相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量
public 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量
external 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
dmz 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
block 拒绝流入的流量,除非与流出的流量相关
drop 拒绝流入的流量,除非与流出的流量相关

firewall-cmd

firewall-cmd 命令 说明
–get-default-zone 查询当前默认区域
–set-default-zone= 设置默认区域,此命令会同时更改运行时配置和永久配置
–get-zones 列出所有可用区域
–get-active-zones 列出当前正在使用的所有区域(具有关联的接口或源)及其接口和源信息
–add-source= [–zone=] 将来自 IP 地址或网络/子网掩码 的所有流量路由到指定区域,如果未提供 –zone 选项,则将使用默认区域
–remove-source= [–zone=] 从指定区域中删除用于路由来自 IP 地址或网络/子网掩码 的所有流量的规则,如果未提供 –zone 选项,则将使用默认区域
–add-interface= [–zone=] 将来自 的所有流量路由到指定区域,如果未提供 –zone= 选项,则将使用默认区域
–change-interface= [–zone=] 将接口与 而非当前区域关联,如果未提供 –zone 选项,则将使用默认区域
–list-all [–zone=] 列出 的所有已配置接口、源、服务和端口,如果未提供 –zone 选项,则将使用默认区域
–list-all-zones 检索所有区域的所有信息(接口、源、端口、服务等)
–add-service= [–zone=] 允许到 的流量,如果未提供 –zone 选项,则将使用默认区域
–add-port=<PORT/PROTOCOL> [–zone=] 允许到 <PORT/PROTOCOL> 端口的流量,如果未提供 –zone 选项,则将使用默认区域
–remove-service= [–zone=] 从区域的允许列表中删除 ,如果未提供 –zone 选项,则将使用默认区域
–remove-port=<PORT/PROTOCOL> [–zone=] 从区域的允许列表中删除 <PORT/PROTOCOL> 端口,如果未提供 –zone 选项,则将使用默认区域
–reload 丢弃运行时配置并应用持久配置

firewalld 富规则

除了 firewalld 提供的常规区域和服务语法之外,管理员还有另外两种选项来添加防火墙规则:直接规则和富规则

富规则基本语法

富规则可用于表达基本的允许/拒绝规则,但是也可以用于配置记录(面向 syslog 和 auditd)以及端口转发、伪装和速率限制

1
2
3
4
5
6
7
rule
[source]
[destination]
service | port | protocol | icmp-block | masquerade | forward-port
[log]
[audit]
[accept | reject | drop]

规则排序

  1. 为该区域设置的任何端口转发和伪装规则
  2. 为该区域设置的任何记录规则
  3. 为该区域设置的任何允许规则
  4. 为该区域设置的任何拒绝规则

处理富规则的四个选项

选项 说明
–add-rich-rule=’ 向指定区域中添加 ,如果未指定区域,则向默认区域中添加
–remove-rich-rule=’ 从指定区域中删除 ,如果未指定区域,则从默认区域中删除
–query-rich-rule=’ 查询 是否已添加到指定区域,如果未指定区域,则为默认区域,如果规则存在,则则返回 0,否则返回 1
–list-rich-rules 输出指定区域的所有富规则,如果未指定区域,则为默认区域