Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.15.3. 了解 Rich Rule 命令选项

产品线
如果提供了规则系列( ipv4ipv6 ),它会分别将规则限制为 IPv4IPv6。如果未提供规则系列,则会为 IPv4 和 IPv 6 添加规则。如果在规则中使用源或目标地址,则需要提供规则系列。端口转发也是如此。

源和目标地址

source
通过指定源地址,连接尝试的来源可以限制为源地址。源地址或地址范围是 IP 地址或具有 IPv4 或 IPv 6 掩码的网络 IP 地址。对于 IPv4,掩码可以是网络掩码或者普通数字。对于 IPv6,掩码为普通数字。不支持使用主机名。通过添加 not 关键字,可以反转源地址命令的作用;除提供的地址匹配之外。
如果没有为该规则指定系列,则可为 IPv4 和 IPv 6 添加 MAC 地址以及类型为 hash:mac 的 IP 。其他 IP 集需要与规则的 family 设置匹配。
destination
通过指定目标地址,可以将目标限制为目标地址。目标地址使用与 IP 地址或地址范围的源地址相同的语法。源和目标地址的使用是可选的,而且并非所有元素都无法使用目标地址。这取决于在服务条目中使用目标地址。您可以组合目的地 和操作

元素

该元素 只能是以下元素类型之一 :service、port protocol masqueradeicmp-blockforward-portsource-port
service
service 元素是 firewalld 提供的服务之一。要获取预定义的服务列表,请输入以下命令:
~]$ firewall-cmd --get-services
如果服务提供目标地址,它将与规则中的目标地址冲突,并将导致错误。在内部使用目标地址的服务大部分是使用多播的服务。该命令采用以下格式:
service name=service_name
port
端口 元素可以是单个端口号或端口范围,如 5060-5062,后跟协议,可以是 tcpudp。该命令采用以下格式:
port port=number_or_range protocol=protocol
protocol
协议值可以是协议 ID 号或协议名称。有关允许的协议条目,请查看 /etc/protocols。该命令采用以下格式:
protocol value=protocol_name_or_ID
icmp-block
使用此命令阻止一个或多个 ICMP 类型。ICMP 类型是 firewalld 支持的 ICMP 类型之一。要获得支持的 ICMP 类型列表,请输入以下命令:
~]$ firewall-cmd --get-icmptypes
这里不允许指定操作。ICMP-block 在 内部使用操作 reject。该命令采用以下格式:
icmp-block name=icmptype_name
masquerade
在规则中打开 IP 伪装。可以提供源地址来限制伪装到此区域,但不能限制为目标地址。这里不允许指定操作。
forward-port
通过指定为 tcp or udp 的协议将数据包从本地端口转发到其他端口、到其他计算机,或者转发到另一台计算机上的其他端口。端口和 至端口可以是单个端口号或端口范围。目标地址是一个简单的 IP 地址。这里不允许指定操作。forward-port 命令使用操作在内部 接受。该命令采用以下格式:
forward-port port=number_or_range protocol=protocol /
            to-port=number_or_range to-addr=address
source-port
匹配数据包的源端口 - 用于连接尝试来源的端口。若要匹配当前计算机上的端口,可使用 port 元素。source-port 元素可以是单个端口号或端口范围(如 5060-5062),后接协议为 tcp or udp。该命令采用以下格式:
source-port port=number_or_range protocol=protocol

日志

log
使用内核日志记录记录新连接尝试记录规则,例如在 syslog 中。您可以定义一个前缀文本,作为前缀添加到日志消息中。日志级别可以是 emergalertcrit、error warning notice、infodebug 之一。日志的使用是可选的。可以按如下所示限制日志:
log [prefix=prefix text] [level=log level] limit value=rate/duration
速率是一个自然正数 [1, .],持续时间为 smhds 表示秒、m 表示分钟、h 表示小时和 d 天。最大限制值为 1/d,这意味着每天最多有一个日志条目。
Audit
Audit 提供了一种使用发送到 auditd 服务的审计记录进行日志记录的替代方式。审计类型可以是 ACCEPTREJECTDROP,但不在命令 审核 后指定,因为审计类型将自动从规则操作中收集。Audit 没有自己的参数,但也可选择添加限制。使用审计是可选的。

操作

accept|reject|drop|mark
操作可以是接受、拒绝、丢弃或 标记之一。规则只能包含元素或来源。如果规则包含 元素,则将使用该操作处理与该元素匹配的新连接。如果规则包含来源,则源地址中的所有内容都将通过指定的操作来处理。
accept | reject [type=reject type] | drop | mark set="mark[/mask]"
使用 accept 时,将授予所有新连接尝试。拒绝后,他们将会被拒绝,其来源将收到拒绝消息。reject 类型可以设置为使用另一个值。使用 drop 时,所有数据包将立即丢弃,不会发送任何信息到源。如果标记了所有数据包 ,则会使用给定标记和可选掩码标记 所有数据包