Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

MS-DPC 上的 IDS

在 MS-DPC 上配置 IDS 规则

使用 MS-DPC 配置的 IDS 规则标识您希望路由器软件对其事件计数的流量。由于 IDS 基于有状态防火墙属性,因此必须至少配置一个有状态防火墙规则,并将其包含在具有 IDS 规则的服务集中;有关更多信息,请参阅 配置有状态防火墙规则

注意:

若要使用 MS-MPC 配置网络攻击防护,请参阅 在 MS-MPC 上配置网络攻击防护

要配置 IDS 规则,请在层次结构级别包含 rule rule-name 语句 [edit services ids]

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

  • from 语句 - 指定包含和排除的匹配条件和应用程序。

  • then 语句 — 指定路由器软件要执行的操作和操作修饰符。

以下各节将更详细地介绍 IDS 规则内容:

配置 IDS 规则的匹配方向

每个规则都必须包含一个 match-direction 语句,用于指定是在接口的输入端还是输出端应用匹配项。要配置应用匹配的位置,请在层次结构级别包含 match-direction (input | input-output | output) 语句 [edit services ids rule rule-name]

如果配置 match-direction input-output,则双向规则创建为 。

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

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

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

在 AS 或多服务 PIC 上,将执行流查找。如果未找到流,则执行规则处理。将考虑服务集中的所有规则。在规则处理期间,会将数据包方向与规则方向进行比较。仅考虑具有与数据包方向匹配的方向信息的规则。

在 IDS 规则中配置匹配条件

要配置 IDS 匹配条件,请在层次结构级别包含 from 语句 [edit services ids rule rule-name term term-name]

如果省略 from 该语句,软件将接受所有事件并将其放入 IDS 高速缓存中进行处理。

源地址和目标地址可以是 IPv4 或 IPv6。您可以使用目标地址、目标地址范围、源地址或源地址范围作为匹配条件,方法与配置防火墙过滤器的方式相同;有关更多信息,请参阅 《路由策略》、《防火墙过滤器和流量监管器用户指南》。

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

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

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

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

    注意:

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

如果应用程序上发生匹配,则应用程序协议将在命令输出中 show services ids 单独显示。有关更多信息,请参阅 CLI 资源管理器

在 IDS 规则中配置操作

要配置 IDS 操作,请在层次结构级别包含 then 语句 [edit services ids rule rule-name term term-name]

您可以配置以下可能的操作:

  • aggregation— 路由器聚合标有指定源或目标前缀的流量,然后再将事件传递给 IDS 处理。如果要检查与特定源或目标主机连接的所有流量,这将非常有用。要使用某些其他标记(如特定应用程序或端口)收集流量,请在匹配条件中配置该值。

    要配置聚合前缀,请在层次结构级别包含 aggregation 语句 [edit services ids rule rule-name term term-name then] ,并指定 source-prefixdestination-prefix source-prefix-ipv6destination-prefix-ipv6的值:

    source-prefixdestination-prefix的值必须是介于 1 和 32 之间的整数。和source-prefix-ipv6destination-prefix-ipv6的值必须是介于 1 和 128 之间的整数。

  • (force-entry | ignore-entry)force-entry 在注册一个事件后,在 IDS 缓存中为后续事件提供一个永久位置。默认情况下,IDS 软件不记录有关不表现出可疑行为的“良好”数据包的信息。您可以使用该 force-entry 语句记录来自可疑主机的所有流量,甚至是原本不会计算的流量。

    ignore-entry 确保忽略所有 IDS 事件。您可以使用此语句忽略来自您信任的主机的所有流量,包括 IDS 否则将计为事件的任何临时异常。

    要配置不同于默认值的条目行为,请在层次结构级别包含 force-entry or ignore-entry 语句 [edit services ids rule rule-name term term-name then]

  • logging- 事件记录在系统日志文件中。

    要配置日志记录,请在层次结构级别包含 logging 语句 [edit services ids rule rule-name term term-name then]

    您可以选择包括阈值速率以触发系统日志消息的生成。阈值速率以每秒事件数指定。对于报告的每个异常,每 60 秒生成一次 IDS 日志。只要事件继续,就会生成日志。

  • session-limit— 达到指定阈值时,路由器会限制打开的会话。

    要配置阈值,请在层次结构级别包含 session-limit 语句 [edit services ids rule rule-name term term-name then]

    您可以根据流量方向配置流量限制阈值:

    • 要限制来自一个内部主机或子网的传出会话数,请配置语句 by-source

    • 要限制一对 IP 地址、子网或应用程序之间的会话数,请配置语句 by-pair

    • 要将传入会话数限制为一个外部公共 IP 地址或子网,请配置语句 by-destination

    对于每个方向,您可以配置以下阈值:

    • hold-time seconds- 当或packets测量达到阈值时rate,停止所有新流指定的秒数。一旦生效,hold-time即使速率降至指定限制以下,流量也会被阻止指定的时间。默认情况下,的值hold-time为 0;范围为 0 到 60 秒。

    • maximum number— 每个应用程序的每个 IP 地址或子网的最大打开会话数。范围为 1 到 32,767。

    • packets number— 每个应用程序每个 IP 地址或子网每秒的最大数据包数 (pps)。范围为 4 到 2,147,483,647。

    • rate number— 每个应用程序每个 IP 地址或子网每秒的最大会话数。范围为 4 到 32,767。

      如果在层次结构级别配置 [edit services ids rule rule-name term term-name from] 的匹配条件中包含多个源地址,则会单独对每个源地址应用限制。例如,以下配置允许来自每个源地址(10.1.1.110.1.1.2)的 20 个连接,而不是总共 20 个连接。相同的逻辑适用于 applicationsdestination-address 匹配条件。

      注意:

      IDS 限制适用于有状态防火墙规则接受的数据包。它们不适用于被有状态防火墙规则丢弃或拒绝的数据包。例如,如果状态防火墙接受 75% 的传入流量,其余 25% 被拒绝或丢弃,则 IDS 限制仅适用于 75% 的流量。

  • syn-cookie— 路由器激活 SYN-cookie 防御机制。

    要配置 SYN-Cookie 值,请在层次结构级别包含 syn-cookie 以下语句 [edit services ids rule rule-name term term-name then]

    如果启用 SYN-Cookie 防御,则必须包括触发 SYN-cookie 活动的阈值速率和 TCP 延迟绑定的传输控制协议 (TCP) 最大段大小 (MSS) 值。阈值速率以每秒 SYN 攻击数指定。默认情况下,TCP MSS 值为 1500;范围从 128 到 8192。

    处理 SYN 泛滥攻击和 SYN Cookie 保护

    SYN 泛滥攻击的主要目的是消耗站点上所有新的网络连接,从而阻止授权用户和合法用户连接到网络资源。SYN(同步序列号)数据包是发送到系统的第一个连接请求。SYN 数据包包含接收方需要响应的 ID。如果数据包包含非法 ID,则接收系统在响应预期的连接发起方时会收到连接确认。最终,此半打开连接超时,接收器上的传入通道再次可用于正常处理另一个请求。SYN 泛滥攻击会发送如此多的此类请求,以至于所有传入连接都会不断被占用,等待从未收到的确认。这种情况会导致服务器对合法用户不可用(除非在其中一个捆绑的连接超时时建立用户会话)。SYN 泛滥攻击是一种无连接攻击。它不需要真实的源 IP 地址,并且由于它使用合法的目标 IP 或端口地址,因此几乎不可能与合法数据包区分开来。因此,仅使用过滤器或有状态防火墙规则很难阻止此类攻击。基本上,只有三种方法可以防止此类攻击:

    • 拦截(延迟绑定)— 防火墙拦截传入的 TCP 同步请求,并代表服务器与客户端和服务器建立连接。如果两个连接都成功,防火墙将以透明方式合并这两个连接。防火墙通常具有主动超时,以防止其自身的资源被 SYN 攻击占用。就处理和内存要求而言,这是最密集的解决方案。

    • 监视(SYN 防御)— 防火墙被动监视半打开的连接,并在可配置的时间长度后主动关闭服务器上的连接。

    • SYN Cookie — SYN Cookie 是 TCP 服务器选择的初始 TCP 序列号的特定选择。当 IDS 检测到 SYN 泛洪正在进行时,请求连接的主机必须使用 cookie 应答以连接到打开的 TCP 套接字。

    瞻博网络路由器支持状态防火墙和 IDS 机制的组合,以支持 SYN cookie 和监视(SYN 防御)方法。SYN 泛滥攻击的关键是填充受害者或被攻击网络元素的 SYN 队列。SYN cookie 防御方法使受害者能够在 SYN 队列已满时继续接受连接请求,或者在防火墙或 IDS 应用程序的情况下,当达到特定阈值时。达到阈值后,将根据 SYN 段中的信息创建一个加密 Cookie(32 位数字),并丢弃 SYN 段。Cookie 用作发送到客户端的 SYN-ACK 中的初始序列号。Cookie(加 1)作为来自合法客户端的 ACK 中的确认号返回到防火墙或 IDS 应用程序。可以验证返回的 Cookie,并且可以从 Cookie 重建 SYN 段的最重要部分,从而允许建立连接。由于 SYN 泛洪的欺骗客户端从不发送 ACK,因此在使用 SYN cookie 时,不会以任何状态为它们分配任何资源。最好仅对受到攻击的主机使用 SYN 泛洪对策。异常表可用于可靠的攻击识别,也可以在有状态防火墙内启用异常表。这种类型的配置还有助于防止在发生攻击时耗尽系统资源(尤其是流表)。

    组合多个服务时,一般路径是正向和反向考虑的重要因素。当部署 NAT 以确定是必须使用 NAT 前地址还是后 NAT 地址来匹配规则时,尤其如此。在从 LAN 接口到 WAN 接口的正向路径中,首先执行 IDS 和有状态防火墙,然后执行 NAT,最后执行 IPSec。此服务处理顺序表示有状态防火墙必须在 NAT 前地址上进行匹配,而 IPSec 隧道必须在 NAT 后地址上进行匹配。在返回路径中,首先处理 IPSec 数据包,然后处理 NAT,最后处理有状态防火墙。此处理顺序仍允许 IPSec 匹配公用地址,并允许有状态防火墙匹配专用地址。您必须单独配置防火墙、NAT 和 IDS 服务。在打开其他服务的路由器中实施 IPSec over GRE 时,数据包的处理会变得更加复杂。出现此现象的原因是 Junos OS 在 GRE 封装后以独特的方式处理 GRE 数据包。数据包封装到 GRE 数据包中后,会使用输入接口将其标记为下一跃点传出接口。如果任何输入过滤器或输入服务不允许此服务,则此标记方法会导致 GRE 数据包被阻止。

    Junos OS 服务支持一组有限的 IDS 规则,以帮助检测端口扫描和流量模式异常等攻击。它还通过限制流、会话数和速率来支持某些攻击预防。此外,它还通过实施 SYN cookie 机制来抵御 SYN 攻击。由于入侵检测和防御 (IDP) 服务不支持更高层的应用程序签名,因此可以配置针对 SYN 攻击的保护来抵御攻击的有效方法。境内流离失所者解决方案在很大程度上是一种监测工具,而不是必要的预防工具。为了防止 SYN 攻击,路由器将作为一种 SYN“代理”运行并利用 cookie 值。启用此功能后,路由器将使用序列号字段中包含唯一 cookie 值的 SYN-ACK 数据包响应初始 SYN 数据包。如果发起方在序列字段中使用相同的 cookie 进行响应,则接受 TCP 流;如果响应方没有响应,或者响应了错误的 Cookie,则流将被丢弃。要触发此防御,您必须配置 SYN cookie 阈值。要启用 SYN cookie 防御,IDS 规则操作必须包含一个阈值(指示何时应启用该功能)和一个 MSS 值,以避免路由器在充当 SYN 代理时管理分段片段:

在 MS-DPC 上配置 IDS 规则集

您可以使用 rule-set 语句定义 IDS 规则的集合,这些规则确定路由器软件对数据流中的数据包执行的操作。MS-DPC 多服务卡支持此功能。(若要使用 MS-MPC 配置网络攻击防护,请参阅 在 MS-MPC 上配置网络攻击防护。)

您可以通过指定规则名称和配置术语来定义每个规则。然后,通过在层次结构级别包含[edit services ids]语句以及rule每个规则的语句来rule-set指定规则的顺序:

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

示例:在 MS-DPC 上配置 IDS 规则

以下配置在遇到目标地址为 10.410.6.2 的流时,会将永久条目添加到 IDS 异常表。MS-DPC 多服务卡支持此示例。(若要使用 MS-MPC 配置网络攻击防护,请参阅 在 MS-MPC 上配置网络攻击防护。)

IDS 配置与有状态防火墙机制协同工作,并在很大程度上依赖于有状态防火墙报告的异常。以下配置示例显示了此关系:

状态防火墙或 NAT 服务用于为 IDS 应用程序生成输入数据。启用和配置 IDS 服务时,还必须使用至少一个规则(接受或放弃所有流量)启用有状态防火墙。当系统受到攻击时,有状态防火墙会向 IDS 系统发送正确且完整的攻击事件列表。在您的网络环境中,您可以确保系统完全免受各种攻击,以便 IDS 系统报告所有此类攻击。将系统配置为免受所有攻击和未经身份验证的访问方案时,必须谨慎行事,以免系统处理的流量带宽负担。验证与攻击对应的防火墙系统日志消息与 IDS 表之间的关联也很重要。与基于防火墙的系统日志消息相比,IDS 表的异常或错误数量必须相同或略少。您可以使用相应的 show 命令来显示 IDS 表。

默认的有状态防火墙规则可以很简单,只需允许从内部接口到外部接口启动连接,并丢弃所有其他数据包。但是,在真实网络环境中,规则通常更为复杂,例如仅配置要打开的特定支路单元端口,对复杂的协议使用应用层网关(ALG),对传出连接和HTTP服务器等内部主机使用NAT。因此,还需要根据需要配置系统,以便与简单和复杂的规则互通。例如,如果 SYN 攻击指向被简单地丢弃的内部地址,则无需向 IDS 系统报告异常情况。但是,如果 SYN 攻击针对的是真实的 HTTP 服务器,则必须报告异常情况。IDS 系统可以通过使用 TCP SYN cookie 防御功能来缓解 SYN 攻击。您可以通过为给定主机设置每秒 SYN 数阈值以及最大分段大小 (MSS) 来启用 SYN cookie 保护方法。由于 IDS 系统使用有状态防火墙,因此必须在服务集中定义防火墙规则。如果未在层次结构级别的有状态防火墙(规则术语匹配条件)[edit services service-set service-set-name stateful-firewall-rules rule-name term term-name]中配置from语句,则表示所有事件都放入 IDS 高速缓存中。

以下示例显示了流限制的配置: