Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

有状态防火墙

Junos Network Secure概述

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

注意:

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

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

  • 源地址

  • 源端口

  • 目标地址

  • 目标端口

  • 协议

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

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

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

防火墙规则是定向的。对于每个新对话,路由器软件将检查与规则指定的方向匹配的初始化流。

防火墙规则已排序。软件将按将规则包括到配置中的顺序检查规则。防火墙首次发现匹配项,路由器会实施该规则指定的操作。仍未检查的规则将被忽略。

注意:

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

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

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

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

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

注意:

路由器上不支持有ACX500 AALG。

状态防火墙异常检查

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

  • IP 异常:

    • IP 版本不正确。

    • IP 报头长度字段过小。

    • IP 报头长度设置得比整个数据包大。

    • 错误标头校验和。

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

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

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

    • 活动时间 (TTL) 等于 0。

  • IP 地址异常:

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

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

  • IP 分片异常:

    • IP 分片重叠。

    • IP 分片丢失。

    • IP 分片长度错误。

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

    • 细微分片攻击。

  • TCP 异常:

    • TCP 端口 0。

    • TCP 序列号 0 和标记 0。

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

    • 组合错误(TCP FIN/RST 或 SYN/(URG)的 TCP 标记|财务|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路由器上,要启用系统日志 stateful-firewall-logs ,在 [] 层次结构级别CLI CLIedit services service-set service-set-name syslog host local class 语句。

注意:

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

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

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

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

ACX500配置状态防火墙规则时,路由器不支持以下功能:

  • match-direction (output | input-output)

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

  • IPv6 源地址和目标地址。

  • application-setsallow-ip-optionsapplication在 [edit services stateful-firewall] 层次结构级别中。

  • 应用层网关 (AAL)。

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

  • 服务等级。

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

    • 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 时,方向信息将随 PIC 一起传输。

使用接口服务集时,数据包方向由数据包是否进入或离开应用服务集的接口来确定。

使用下一跳跃服务集时,数据包方向由用于将数据包路由至路由器或多服务 PIC AS确定。如果使用内部接口来路由数据包,则数据包方向为输入。如果外部接口用于将数据包引导至 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值,表示匹配所有单 any-ipv4播地址,表示匹配所有 IPv4 any-ipv6地址,或 表示匹配所有 IPv6 地址。

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

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

  • 用户数据报协议 (UDP)、传输控制协议 (TCP) 和互联网控制信息协议 (ICMP) 会创建双向流量,并预测反向流量。

  • IP 会创建单向流。

您还可以在 层次结构 [edit applications] 级别配置应用程序协议定义;有关详细信息,请参阅 配置应用程序属性

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

  • 要应用您定义的一组或多组应用程序协议定义,请包含 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—数据包将被接受并发送到其目标,IDS MS-MPC 上配置的规则处理跳过。

  • discard—此数据包不接受,并且不会进一步处理。

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

注意:

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

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

配置 IP 选项处理

您可以通过在 层次结构级别包含 语句来 allow-ip-options 配置防火墙以检查 IP 报 [edit services stateful-firewall rule rule-name term term-name then] 头信息。配置此语句时,符合 from 语句中指定标准的所有数据包都需遵守其他匹配标准。只有将数据包的所有 IP 选项类型均配置为语句中的值时,数据包才能 allow-ip-options 被接受。如果不配置,则 allow-ip-options仅接受没有 IP 报头选项的数据包。

注意:

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

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

如果状态防火墙接受 IP 选项数据包,网络地址转换 (NAT) 和 入侵检测服务 (IDS) 以与没有 IP 选项标头的数据包相同的方式应用。IP 选项配置仅出现在有状态防火墙规则中;NAT IP 选项或不带 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 语句定义了状态防火墙规则的集合,用于确定路由器软件对数据流中的数据包执行哪些操作。通过指定规则名称并配置术语,可定义每个规则。然后,您指定规则的顺序 rule-set [edit services stateful-firewall] rule ,具体包括层级的 语句以及每个规则的语句:

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

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

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

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

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

您可以在 层级配置 [edit policy-options] 前缀列表:

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

这等同于以下配置:

您可对前缀 except 列表使用资格表,如以下示例所示。在这种情况下,资格 except 资格适用于前缀列表中包含的所有前缀 p2

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

注意:

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

示例:BOOTP 和广播地址

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

示例:在两个 PC 上配置第 3 层SDK服务选项

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

注意:

服务SDK目前不支持NAT网络。需要NAT时,可以配置第 3 层服务包以部署 NAT 以及服务 SDK(如 APPID、AACL 或 IDP)。

注意:

对于IDP及以上的版本,已弃Junos OS MX 系列17.1R1功能。

要部署第 3 层服务包和两个SDK服务组件:

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

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

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

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

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

    此示例中,NAT池为 OUTBOUND-SERVICES ,IP 地址为 10.48.0.2/32

  7. 配置规则NAT。

    此示例中,规则NAT SET-MSR-ADDR,NAT 表示 TRANSLATE-SOURCE-ADDR,源池为 出站服务。在 的括号中括起应用程序名称(junos-ftp、junos-http 和 junos-icmp-ping application-name)。

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

    对于 MX 系列及以上版本,弃Junos OS [edit security idp] 17.1R1。

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

    在此例中,IDP策略为 test1,规则 为 r1,预定义攻击为 FTP:USER:ROOT,而预定义的攻击组为 "推荐攻击"

  11. 配置服务跟踪IDP选项。

    此示例中的日志文件名称为 idp-demo.log

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

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

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

    此示例中,APPID 配置文件为 dummy-profile

  18. 配置IDP配置文件。

    此示例表示,IDP配置文件为 test1

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

    在此例中,策略决策统计信息配置文件为 lplus-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. 在 层次结构级别中,为收到的数据包配置服务集。

    此示例中的输入服务集为 App-Aware 集

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

    此示例将输出服务集为 App-Aware 集

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

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

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

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

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

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

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

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

  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. 配置对象缓存的大小(以兆字节为单位)。仅允许以 128 MB 为增量的值,对象缓存的最大值可达到 1280 MB。在 MS-100 上,值为 512 MB。

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

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

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

  66. 配置软件包。

    在此例中,第一个包是 jservices-appid,第二个包是 jservices-aacl,第三个包是 jservices-lld,第四个包是 jservices-idp,第五个包是 jservices-sfw。jservices-sfw 仅Junos OS 10.1 和更高版本中提供。

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

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

以下示例将虚拟路由和转发 (VRF) 和服务配置组合在一起:

版本历史记录表
释放
描述
17.1R1
对于IDP及以上的版本,已弃Junos OS MX 系列17.1R1功能。
17.1R1
对于 MX 系列及以上版本,弃Junos OS [edit security idp] 17.1R1。
17.1
接受跳过 ids — 数据包将被接受并发送至其目标,IDS MS-MPC 上配置的规则处理跳过。
14.2
从 14.2 Junos OS开始,MS-MPC 和 MS-MIC 接口卡支持有状态防火墙的 IPv6 Junos Network Secure流量。