无状态防火墙过滤器概述
数据包流控制
要影响允许哪些数据包通过系统并根据需要对数据包应用特殊操作,您可以配置 无状态防火墙过滤器。无状态防火墙指定一个或多个数据包过滤规则的序列,称为 过滤器术语。过滤器术语指定用于确定匹配的 匹配条件 以及要对匹配数据包执行 的操作 。无状态 防火墙过滤器 使您能够根据第 3 层和第 4 层标头字段的评估来操作特定协议家族的任何数据包,包括分段数据包。您通常会将无状态防火墙过滤器应用于配置了协议系列功能的一个或多个接口。您可以将无状态防火墙过滤器应用于入口接口和/或出口接口。
数据包流控制
要在数据包从源转发到目标时控制通过设备的数据包流,您可以将无状态防火墙过滤器应用于路由器或交换机物理接口的输入或输出。
要为接口上发送或接收的流量强制实施指定的带宽和最大突发大小,您可以配置 监管器。监管器是一种特殊类型的无状态防火墙过滤器,也是 Junos OS 服务等级 (CoS) 的主要组件。
本地数据包流控制
要控制物理接口与路由引擎之间的本地数据包流,您可以将无状态防火墙过滤器应用于 环路接口的输入或输出。环路接口 (lo0
) 是路由引擎的接口,不携带数据包。
Junos OS 演化版本地数据包流控制
在 Junos OS 演化版中,您可以使用两种不同的过滤器:一个用于网络控制流量(环路流量),一个用于管理流量(管理接口)。使用两个过滤器,您可以获得更大的灵活性。例如,您可以对管理接口流量配置比对网络控制流量更严格的过滤器。
在 Junos OS 和 Junos OS 演化版上,网络控制流量防火墙过滤器或环路防火墙过滤器 (Lo0/Lo6) 的行为相同,没有区别。您可以在 Lo0/Lo6 接口的 INET 或 INET6 防火墙过滤器层次结构中配置 Lo0/Lo6 防火墙过滤器。为了为 Lo0 接口上的数据包出口提供过滤功能,防火墙过滤器通过瞻博网络的 Netfilters 在软件内核中实现。Netfilters 安装在 linux 内核中,不涉及任何硬件。
以下是 Lo0 防火墙过滤器的配置示例。
set firewall family inet filter finet interface-specific set firewall family inet filter finet term t1 from source-address 10.0.0.2/32 set firewall family inet filter finet term t1 from destination-address 10.0.0.1/32 set firewall family inet filter finet term t1 from protocol tcp set firewall family inet filter finet term t1 from source-port ssh set firewall family inet filter finet term t1 from destination-port ssh set firewall family inet filter finet term t1 then count c1 set firewall family inet filter finet term t1 then log set interfaces lo0 unit 0 family inet filter input finet
表 1、 表 2、 表 3并 表 4 显示 Junos OS 演化版中 Lo0/Lo6 防火墙过滤器家族支持的匹配条件和操作。
防火墙过滤器匹配条件 |
lo0 |
Lo6 |
---|---|---|
IP 目标地址 |
是 |
是 |
IP 源地址 |
是 |
是 |
目标前缀列表 |
是 |
是 |
源前缀列表 |
是 |
是 |
目标端口 |
是 |
是 |
源端口 |
是 |
是 |
IP 协议 |
是 |
是 |
第一个片段 |
是 |
否 |
是片段 |
是 |
否 |
TCP 标志 |
是 |
是 |
啧啧�� |
是 |
否 |
DSCP |
是 |
否 |
防火墙过滤器匹配条件 |
lo0 |
Lo6 |
---|---|---|
IP 目标地址 |
否 |
是 |
IP 源地址 |
否 |
是 |
目标前缀列表 |
否 |
是 |
源前缀列表 |
否 |
是 |
目标端口 |
否 |
是 |
操作 |
lo0 |
Lo6 |
---|---|---|
count |
是 |
是 |
discard |
是 |
是 |
策略程序 |
是 |
是 |
三色监管器 |
是 |
是 |
操作 |
lo0 |
Lo6 |
---|---|---|
count |
是 |
是 |
discard |
是 |
是 |
策略程序 |
是 |
是 |
三色监管器 |
是 |
是 |
管理过滤使用基于网络过滤器(Linux 内核提供的框架)的路由引擎过滤器。此差异导致仅支持某些匹配项和操作。在 路由引擎防火墙过滤器 中 列出了 Junos OS 和 Junos OS 演化版之间的一些主要区别。
您必须在管理接口上显式添加过滤器,对于 Junos OS 演化版,lo0 过滤器不再像 Junos OS 一样适用于管理流量。
若要在管理接口过滤器中配置,必须在管理接口的 INET 或 INET6 防火墙过滤器层次结构中配置过滤器。下面是配置管理界面中的防火墙过滤器的配置示例。
set firewall family inet filter f1 interface-specific set firewall family inet filter f1 term t1 from protocol tcp set firewall family inet filter f1 term t1 then count c1 set firewall family inet filter f1 term t1 then accept set firewall family inet filter f1 term t2 from protocol icmp set firewall family inet filter f1 term t2 then count c3 set firewall family inet filter f1 term dft then count dft_cnt set firewall family inet filter f1 term dft then accept set interfaces re0:mgmt-0 unit 0 family inet filter input f1
表 5、和 表 6表 7 ,并显示管理接口上支持的防火墙过滤器匹配条件和操作。
防火墙过滤器匹配条件 |
支持 |
---|---|
地址 |
是 |
目标地址 |
是 |
目标端口 |
是 |
目标端口-except |
是 |
目标前缀列表 |
是 |
ICMP 代码 |
是 |
icmp 代码-except |
是 |
ICMP 类型 |
是 |
ICMP 类型-except |
是 |
下一个标题 |
是 |
next-header-except |
是 |
数据包长度 |
是 |
数据包长度除外 |
是 |
有效负载协议 |
是 |
有效负载协议 |
是 |
端口 |
是 |
端口除外 |
是 |
前缀列表 |
是 |
源地址 |
是 |
源端口 |
是 |
源端口-except |
是 |
源前缀列表 |
是 |
基于 TCP 建立 |
是 |
TCP 标志 |
是 |
TCP 初始 |
是 |
流量类 |
是 |
流量类除外 |
是 |
防火墙过滤器匹配条件 |
支持 |
---|---|
DSCP |
是 |
DSCP 除外 |
是 |
优先 |
是 |
优先级-except |
是 |
协议 |
是 |
协议-except |
是 |
啧啧�� |
是 |
TTL-except |
是 |
防火墙过滤器操作 |
IPv4 |
IPv6 |
---|---|---|
接受 |
是 |
是 |
count |
是 |
是 |
转发类 |
是 |
是 |
丢失优先级 |
是 |
是 |
策略程序 |
是 |
是 |
丢弃 |
是 |
是 |
syslog |
是 |
是 |
无状态和有状态防火墙过滤器
无状态防火墙过滤器(也称为 访问控制列表 (ACL))不会对流量进行有状态检查。相反,它静态评估数据包内容,并且不跟踪网络连接的状态。相反, 有状态防火墙过滤器 使用从数据流中的其他应用程序和过去通信派生的连接状态信息来做出动态控制决策。
《路由策略、防火墙过滤器和流量监管器用户指南》介绍了无状态防火墙过滤器。
无状态防火墙过滤器的用途
无状态防火墙过滤器的基本目的是通过使用数据包过滤来增强安全性。数据包过滤使您能够检查传入或传出数据包的组件,然后对与您指定的条件匹配的数据包执行您指定的操作。无状态防火墙过滤器的典型用途是保护路由引擎进程和资源免受恶意或不受信任数据包的侵害。