Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

有状态防火墙

Junos 网络安全概述

路由器使用防火墙来跟踪和控制流量。自适应服务和多服务 PIC 采用一种称为 的防火墙类型。与隔离检查数据包的防火墙相比,有状态防火墙通过使用从过去的通信和其他应用程序中获得的状态信息来为新的通信尝试做出动态控制决策,从而提供额外的安全层。

注意:

在 ACX 系列路由器上,状态防火墙配置仅在 ACX500 室内路由器上受支持。

有状态防火墙组相关到 。流由以下五个属性标识:

  • 源地址

  • 源端口

  • 目标地址

  • 目标端口

  • 协议

典型的传输控制协议 (TCP) 或用户数据报协议 (UDP) 会话由两个流组成:发起流和响应方流。但是,某些会话(如 FTP 会话)可能包含两个控制流和许多数据流。

防火墙规则控制是否允许建立对话。如果允许会话,则允许会话中的所有流,包括在会话的生命周期内创建的流。

您可以使用强大的规则驱动型会话处理路径配置有状态防火墙。A 由方向、源地址、源端口、目标地址、目标端口、IP 协议值和应用程序协议或服务组成。除了配置的特定值之外,还可以将值分配给规则对象、地址或端口,以便它们匹配任何输入值 any 。最后,您可以选择否定规则对象,这会否定特定于类型的匹配的结果。

防火墙规则是定向的。对于每个新会话,路由器软件都会检查与规则指定的方向匹配的启动流。

防火墙规则是有序的。软件将按照您在配置中包含规则的顺序检查规则。防火墙首次发现匹配项时,路由器将执行该规则指定的操作。仍未选中的规则将被忽略。

注意:

从 Junos OS 14.2 版开始,MS-MPC 和 MS-MIC 接口卡支持 Junos 网络安全有状态防火墙的 IPv6 流量。

有关更多信息,请参阅 配置有状态防火墙规则

应用程序协议的状态防火墙支持

通过检查应用程序协议数据,AS 或多服务 PIC 防火墙可以智能地实施安全策略,并仅允许所需的最小数据包流量通过防火墙。

防火墙规则是相对于接口配置的。默认情况下,有状态防火墙允许从接口后面的主机启动的所有会话通过路由器。

注意:

ACX500 路由器不支持有状态防火墙 ALG。

有状态防火墙异常检查

有状态防火墙将以下事件识别为异常,并将其发送到 IDS 软件进行处理:

  • IP 异常:

    • IP 版本不正确。

    • IP 报头长度字段太小。

    • IP 报头长度设置为大于整个数据包。

    • 标头校验和错误。

    • IP 总长度字段短于标头长度。

    • 数据包的 IP 选项不正确。

    • 互联网控制消息协议 (ICMP) 数据包长度错误。

    • 生存时间 (TTL) 等于 0。

  • IP 地址异常:

    • IP 数据包源是广播或组播。

    • 陆地攻击(源 IP 等于目标 IP)。

  • IP 分段异常:

    • IP 片段重叠。

    • IP 片段丢失。

    • IP 片段长度错误。

    • IP 数据包长度超过 64 KB。

    • 微小碎片攻击。

  • TCP 异常:

    • TCP 端口 0。

    • TCP 序列号 0 和标志 0。

    • TCP 序列号 0 和 FIN/PSH/RST 标志集。

    • 具有错误组合的 TCP 标志(TCP FIN/RST 或 SYN/(URG|FIN|RST)。

    • 错误的 TCP 校验和。

  • UDP 异常:

    • UDP 源或目标端口 0。

    • UDP 标头长度检查失败。

    • 错误的 UDP 校验和。

  • 通过有状态 TCP 或 UDP 检查发现的异常:

    • SYN 后跟 SYN-ACK 数据包,发起方没有 ACK。

    • SYN 后跟 RST 数据包。

    • 没有 SYN-ACK 的 SYN。

    • 非 SYN 第一个流数据包。

    • SYN 数据包的 ICMP 无法访问错误。

    • UDP 数据包出现 ICMP 无法访问错误。

  • 根据有状态防火墙规则丢弃的数据包。

注意:

ACX500 路由器不支持 IP 分段异常。

如果将有状态异常检测与无状态检测结合使用,IDS 可以为各种攻击提供预警,其中包括:

  • TCP 或 UDP 网络探测和端口扫描

  • SYN 泛滥攻击

  • 基于 IP 分段的攻击,例如泪滴、砰、砰砰砰

配置有状态防火墙规则

要配置有状态防火墙规则,请在层次结构级别包含 rule rule-name 以下语句 [edit services stateful-firewall]

注意:

ACX500 路由器不支持 [edit services stateful-firewall rule rule-name term term-name from] 层次结构级别的应用程序和应用程序集

注意:

在 ACX500 路由器上,要启用 syslog,请在 [edit services service-set service-set-name syslog host local class] 层次结构级别包含 stateful-firewall-logs CLI 语句。

注意:

edit services stateful-firewall SRX 系列不支持层次结构。

每个有状态防火墙规则都由一组术语组成,类似于在层次结构级别配置 [edit firewall] 的过滤器。术语由以下内容组成:

  • from 语句 - 指定包含和排除的匹配条件和应用程序。该 from 语句在有状态防火墙规则中是可选的。

  • then 语句 — 指定路由器软件要执行的操作和操作修饰符。该 then 语句在有状态防火墙规则中是必需的。

ACX500 系列路由器在配置状态防火墙规则时不支持以下内容:

  • match-directionoutput | input-output

  • post-service-filter 在接口服务输入层次结构级别。

  • IPv6 源地址和目标地址。

  • application-sets、 、 applicationallow-ip-options [edit services stateful-firewall] 层次结构级别。

  • 应用层网关 (ALG)。

  • 在多服务模块化接口卡 (MS-MIC) 和内联服务 (-si) 内链服务。

  • 服务等级。

  • 不支持以下 show services stateful-firewall CLI 命令:

    • show services stateful-firewall conversations- 显示对话

    • show services stateful-firewall flow-analysis—显示流程表条目

    • show services stateful-firewall redundancy-statistics—显示冗余统计信息

    • show services stateful-firewall sip-call—显示 SIP 呼叫信息

    • show services stateful-firewall sip-register—显示 SIP 寄存器信息

    • show services stateful-firewall subscriber-analysis- 显示订户表条目

以下部分介绍如何配置有状态防火墙规则的组件:

为有状态防火墙规则配置匹配方向

每个规则都必须包含一个 match-direction 语句,用于指定应用规则匹配的方向。要配置应用匹配的位置,请在层次结构级别包含 match-direction 语句 [edit services stateful-firewall rule rule-name]

注意:

ACX500 系列路由器不支持 match-direction (output | input-output)

如果配置 match-direction input-output,则从两个方向启动的会话可能与此规则匹配。

匹配方向用于处理通过 AS 或多服务 PIC 的流量。当数据包发送到 PIC 时,方向信息将随之携带。

对于接口服务集,数据包方向取决于数据包是进入还是离开应用服务集的接口。

对于下一跃点服务集,数据包方向由用于将数据包路由到 AS 或多服务 PIC 的接口确定。如果使用内部接口路由数据包,则输入数据包方向。如果使用外部接口将数据包定向到 PIC,则输出数据包方向。有关内部和外部接口的更多信息,请参阅 配置要应用于服务接口的服务集

在 PIC 上,将执行流查找。如果未找到流,则执行规则处理。此服务集中的规则将按顺序考虑,直到找到匹配项。在规则处理期间,会将数据包方向与规则方向进行比较。仅考虑方向信息与数据包方向匹配的规则。大多数数据包会导致创建双向流。

在有状态防火墙规则中配置匹配条件

要配置有状态防火墙匹配条件,请在层次结构级别包含 from 语句 [edit services stateful-firewall rule rule-name term term-name]

注意:

ACX500 路由器不支持 [edit services stateful-firewall rule rule-name term term-name from] 层次结构级别的应用程序和应用程序集

源地址和目标地址可以是 IPv4 或 IPv6。

您可以将源地址或目标地址用作匹配条件,就像配置防火墙过滤器一样;有关更多信息,请参阅《路由策略》、《防火墙过滤器和流量监管器用户指南》。您可以使用通配符值 any-unicast,表示匹配所有单播地址,表示匹配所有 IPv4 地址,或 any-ipv6any-ipv4表示匹配所有 IPv6 地址。

或者,您可以通过在[edit policy-options]层次结构级别配置prefix-list语句,然后在有状态防火墙规则中包含 或 语句来指定源前缀或destination-prefix-listsource-prefix-list目标前缀的列表。有关示例,请参阅示例:配置有状态防火墙规则

如果省 from 略该术语,有状态防火墙将接受所有流量,并且默认协议处理程序将生效:

  • 用户数据报协议 (UDP)、传输控制协议 (TCP) 和互联网控制消息协议 (ICMP) 创建具有预测反向流的双向流。

  • IP 创建单向流。

还可以包括在层次结构级别配置的应用程序协议定义;有关更多信息,请参见配置[edit applications]应用程序属性

  • 要应用一个或多个特定的应用程序协议定义,请在层次结构级别包含[edit services stateful-firewall rule rule-name term term-name from]applications语句。

  • 若要应用已定义的一组或多组应用程序协议定义,请在层次结构级别包含application-sets[edit services stateful-firewall rule rule-name term term-name from]该语句。

    注意:

    如果包括指定应用程序协议的语句之一,路由器将从层次结构级别的相应配置 [edit applications] 派生端口和协议信息;不能将这些属性指定为匹配条件。

在有状态防火墙规则中配置操作

要配置有状态防火墙操作,请在层次结构级别包含 then 语句 [edit services stateful-firewall rule rule-name term term-name]

您必须包括以下操作之一:

  • accept—数据包被接受并发送到其目的地。

  • accept skip-ids— 数据包被接受并发送到其目标,但跳过在 MS-MPC 上配置的 IDS 规则处理。

  • discard—数据包未被接受,也不会进一步处理。

  • reject—不接受数据包并返回拒绝消息;UDP 发送 ICMP 无法访问的代码,TCP 发送 RST。可以记录或采样被拒绝的数据包。

注意:

ACX500 室内路由器不支持操作 accept skip-ids

您可以选择通过在层次结构级别包含[edit services stateful-firewall rule rule-name term term-name then]语句,将防火墙配置为syslog在系统日志记录工具中记录信息。此语句将覆盖服务集或接口默认配置中包含的任何syslog设置。

配置 IP 选项处理

您可以选择将防火墙配置为通过在层次结构级别包含 allow-ip-options 语句 [edit services stateful-firewall rule rule-name term term-name then] 来检查 IP 标头信息。配置此语句时,与语句中 from 指定的条件匹配的所有数据包都将受到其他匹配条件的约束。仅当数据包的所有 IP 选项类型都配置为语句中的 allow-ip-options 值时,才会接受数据包。如果未配置 allow-ip-options,则仅接受不带 IP 报头选项的数据包。

注意:

ACX500 室内路由器不支持语句的 allow-ip-options 配置。

附加 IP 报头选项检测仅适用于 acceptreject 状态防火墙操作。此配置对 discard 操作没有影响。当 IP 报头检查失败时,不会发送拒绝帧;在这种情况下,该 reject 操作与 具有相同的 discard效果。

如果有状态防火墙接受 IP 选项数据包,则网络地址转换 (NAT) 和入侵检测服务 (IDS) 的应用方式与应用于没有 IP 选项标头的数据包的方式相同。IP 选项配置仅显示在有状态防火墙规则中;NAT 适用于带或不带 IP 选项的数据包。

当数据包因未通过 IP 选项检查而被丢弃时,此异常事件会同时生成 IDS 事件和系统日志消息。事件类型取决于被拒绝的第一个 IP 选项字段。

表 1 列出了该 allow-ip-options 语句的可能值。您可以包括一个范围或一组数值,也可以包含一个或多个预定义的 IP 选项设置。您可以输入选项名称或其等效数字。有关更多信息,请参阅 http://www.iana.org/assignments/ip-parameters

表 1:IP 选项值

IP 选项名称

数值

评论

any

0

任何 IP 选项

ip-security

130

ip-stream

136

loose-source-route

131

route-record

7

router-alert

148

strict-source-route

137

timestamp

68

配置有状态防火墙规则集

rule-set语句定义一组有状态防火墙规则,这些规则确定路由器软件对数据流中的数据包执行的操作。您可以通过指定规则名称和配置术语来定义每个规则。然后,通过在层次结构级别包含[edit services stateful-firewall]语句以及rule每个规则的语句来rule-set指定规则的顺序:

路由器软件将按照您在配置中指定的顺序处理规则。如果规则中的术语与数据包匹配,路由器将执行相应的操作,规则处理将停止。如果规则中没有术语与数据包匹配,则处理将继续到规则集中的下一个规则。如果没有任何规则与数据包匹配,则默认情况下会丢弃数据包。

示例:配置有状态防火墙规则

以下示例显示了一个有状态防火墙配置,其中包含两个规则,一个用于指定应用程序集上的输入匹配,另一个用于指定源地址上的输出匹配:

以下示例具有包含两个术语的单个规则。第一个术语拒绝来自指定源地址的所有流量 my-application-group ,并提供被拒绝数据包的详细系统日志记录。第二个术语接受从任何人到指定目标地址的超文本传输协议 (HTTP) 流量。

以下示例显示了源前缀列表和目标前缀列表的用法。这需要两个单独的配置项。

您可以在层次结构级别配置前缀列表 [edit policy-options]

您可以在有状态防火墙规则中引用配置的前缀列表:

这等效于以下配置:

可以将限定符与前缀列表一起使用 except ,如以下示例所示。在这种情况下, except 限定符适用于前缀列表中 p2包含的所有前缀。

有关将有状态防火墙配置与其他服务以及虚拟专用网 (VPN) 路由和转发 (VRF) 表相结合的其他示例,请参阅配置示例。

注意:

您可以定义服务集并将其分配为接口样式或下一跃点样式。

示例:BOOTP 和广播地址

以下示例支持引导协议 (BOOTP) 和广播地址:

示例:在两个 PIC 上配置第 3 层服务和服务 SDK

您可以在两个 PIC 上配置第 3 层服务包和服务 SDK。对于此示例,您必须配置 FTP 或 HTTP 客户端和服务器。在此配置中,路由器接口的客户端为 ge-1/2/2.1,路由器接口的服务器端为 ge-1/1/0.48。此配置可在 uKernel PIC 上启用带有状态防火墙 (SFW) 的网络地址转换 (NAT),并在服务 SDK PIC 上为 FTP 或 HTTP 流量启用应用程序识别 (APPID)、应用程序感知访问列表 (AACL) 以及入侵检测和防御 (IDP)。

注意:

服务 SDK 尚不支持 NAT。当需要 NAT 时,您可以将第 3 层服务包配置为部署 NAT 以及 APPID、AACL 或 IDP 等服务开发工具包。

注意:

适用于 Junos OS 17.1R1 及更高版本的 MX 系列已弃用 IDP 功能。

要在两个 PIC 上部署第 3 层服务包和服务 SDK,请执行以下操作:

  1. 在配置模式下,转到以下层次结构级别:
  2. 在层次结构级别中,配置状态防火墙规则 r1 的条件。

    在此示例中,有状态防火墙术语为 ALLOWED-SERVICES。将应用程序名称(junos-ftp、junos-http 和 junos-icmp-ping)括在括号 application-name中。

  3. 配置状态防火墙规则 r2 的条件。

    在此示例中,有状态防火墙术语为 term1

  4. 转到以下层次结构级别并验证配置:
  5. 转到以下层次结构级别:
  6. 在层次结构级别中,配置 NAT 池。

    在此示例中,NAT 池为 出站服务 ,IP 地址为 10.48.0.2/32

  7. 配置 NAT 规则。

    在此示例中,NAT 规则为 SET-MSR-ADDR,NAT 术语为 TRANSLATE-SOURCE-ADDR,源池为 OUTBOUND-SERVICES。将应用程序名称(junos-ftp、junos-http 和 junos-icmp-ping)括在括号application-name中。

  8. 转到以下层次结构级别并验证配置:
  9. 转到以下层次结构级别:
    注意:

    对于适用于 Junos OS 17.1R1 及更高版本的 MX 系列,不推荐使用 [编辑安全 IDP] 语句。

  10. 在层次结构级别中,配置 IDP 策略。

    在此示例中,IDP 策略为 test1,规则为 r1,预定义攻击为 FTP:USER:ROOT,预定义攻击组为 “推荐攻击”。

  11. 配置 IDP 服务的追踪选项。

    在此示例中,日志文件名为 idp-demo.log

  12. 转到以下层次结构级别并验证配置:
  13. 转到以下层次结构级别:
  14. 在层次结构级别中,配置 AACL 规则。

    在此示例中,AACL 规则是 应用感知 的,术语为 t1

  15. 转到以下层次结构级别并验证配置:
  16. 转到以下层次结构级别:
  17. 配置 APPID 配置文件。

    在此示例中,APPID 配置文件是 虚拟配置文件

  18. 配置 IDP 配置文件。

    在此示例中,IDP 配置文件为 test1

  19. 配置策略决策统计信息配置文件。

    在此示例中,策略决策统计信息配置文件为 lpdf-stats

  20. 配置 AACL 规则。

    在此示例中,AACL 规则名称是 应用感知的。

  21. 配置两个有状态防火墙规则。

    在此示例中,第一个规则是 r1 ,第二个规则是 r2

  22. 层次结构级别中,将服务集配置为在服务 PIC 发生故障时绕过流量。
  23. 配置特定于接口的服务集选项。

    在此示例中,服务接口为 ms-0/1/0

  24. 转到以下层次结构级别并验证配置:
  25. 转到以下层次结构级别:
  26. 在层次结构级别中,为服务接口配置可选通知参数。请注意,只有调试时才需要它。

    在此示例中,要通知的主机是 本地主机。

  27. 配置两个有状态防火墙规则。

    在此示例中,第一个规则是 r1 ,第二个规则是 r2

  28. 配置 NAT 规则。

    在此示例中,NAT 规则为 SET-MSR-ADDR

  29. 配置特定于接口的服务集选项。

    在此示例中,服务接口为 sp-3/1/0

  30. 转到以下层次结构级别并验证配置:
  31. 转到以下层次结构级别:
  32. 在层次结构级别中,配置接口。

    在此示例中,接口为 ge-1/2/2.1

  33. 转到以下层次结构级别:
  34. 在层次结构级别中,为收到的数据包配置服务集。

    在此示例中,输入服务集为 应用感知集

  35. 为传输的数据包配置服务集。

    在此示例中,输出服务集为 应用程序感知集

  36. 转到以下层次结构级别:
  37. 在层次结构级别中,配置接口地址。

    在此示例中,接口地址为 10.10.9.10/30

  38. 转到以下层次结构级别并验证配置:
  39. 转到以下层次结构级别:
  40. 在层次结构级别中,配置接口。

    在此示例中,接口为 ge-1/1/0.48

  41. 转到以下层次结构级别:
  42. 在层次结构级别中,为收到的数据包配置服务集。

    在此示例中,服务集为 NAT-SFW-SET

  43. 为传输的数据包配置服务集。

    在此示例中,服务集为 NAT-SFW-SET

  44. 转到以下层次结构级别:
  45. 配置接口地址。

    在此示例中,接口地址为 10.48.0.1/31

  46. 转到以下层次结构级别并验证配置:
  47. 转到以下层次结构级别:
  48. 在层次结构级别中,配置接口。

    在此示例中,接口为 ms-0/1/0.0

  49. 转到以下层次结构级别:
  50. 在层次结构级别中,配置协议家族。
  51. 转到以下层次结构级别并验证配置:
  52. 转到以下层次结构级别:
  53. 在层次结构级别中,配置接口。

    在此示例中,接口为 sp-3/1/0.0

  54. 转到以下层次结构级别:
  55. 在层次结构级别中,为服务接口配置可选通知参数。请注意,只有调试时才需要它。

    在此示例中,要通知的主机是 本地主机。

  56. 转到以下层次结构级别:
  57. 在层次结构级别中,配置协议家族。
  58. 转到以下层次结构级别并验证配置:
  59. 转到以下层次结构级别:
  60. 在层次结构级别中,配置冗余设置。
  61. 配置 FPC 和 PIC。

    在此示例中,FPC 位于插槽 0 中,PIC 位于插槽 1 中。

  62. 配置专用于运行控制功能的内核数。

    在此示例中,控制内核数为 1。

  63. 配置专用于数据的处理内核数。

    在此示例中,数据核心数为 7。

  64. 配置对象缓存的大小(以 MB 为单位)。仅允许以 128 MB 为增量的值,对象缓存的最大值可以是 1280 MB。在 MS-100 上,该值为 512 MB。

    在此示例中,对象缓存的大小为 1280 MB。

  65. 配置策略数据库的大小(以 MB 为单位)。

    在此示例中,策略数据库的大小为 64 MB。

  66. 配置包。

    在此示例中,第一个包是 jservices-appid,第二个包是 jservices-aacl,第三个包是 jservices-llpdf,第四个包是 jservices-idp,第五个包是 jservices-sfwjservices-sfw 仅在 Junos OS 10.1 及更高版本中可用。

  67. 配置 IP 网络服务。
  68. 转到以下层次结构级别并验证配置:

示例:虚拟路由和转发 (VRF) 和服务配置

以下示例结合了虚拟路由和转发 (VRF) 和服务配置:

更改历史记录表

功能支持由您使用的平台和版本决定。使用功能资源管理器确定您的平台是否支持某个 功能

释放
描述
17.1R1
适用于 Junos OS 17.1R1 及更高版本的 MX 系列已弃用 IDP 功能。
17.1R1
对于适用于 Junos OS 17.1R1 及更高版本的 MX 系列,不推荐使用 [编辑安全 IDP] 语句。
17.1
accept skip-ids— 数据包被接受并发送到其目标,但跳过在 MS-MPC 上配置的 IDS 规则处理。
14.2
从 Junos OS 14.2 版开始,MS-MPC 和 MS-MIC 接口卡支持 Junos 网络安全有状态防火墙的 IPv6 流量。