防火墙 DoS 攻击
DoS 攻击防护利用状态检测来查找并允许或拒绝所有在往返预定目的地的途中需要跨越接口的连接尝试, 有关更多信息,请参阅以下主题:
了解会话表泛滥攻击
成功的 DoS 攻击会以如此大量的虚假模拟流量压倒受害者,以至于它无法处理合法的连接请求。DoS 攻击可以采取多种形式——SYN 泛洪、SYN-ACK-ACK 泛滥、UDP 泛滥、ICMP 泛滥等等——但它们都寻求同一个目标,即填满受害者的会话表。
当会话表已满时,该主机无法创建任何新会话,并开始拒绝新的连接请求。基于源的会话限制屏幕选项和基于目标的会话限制屏幕选项有助于缓解此类攻击。
了解基于源的会话限制
除了限制来自同一源 IP 地址的并发会话数外,您还可以限制到同一目标 IP 地址的并发会话数。设置基于源的会话限制的一个好处是,它可以阻止诸如 Nimda 病毒(实际上既是病毒又是蠕虫)之类的攻击,该攻击感染服务器,然后开始从该服务器生成大量流量。由于所有病毒生成的流量都来自同一个 IP 地址,因此基于源的会话限制可确保防火墙可以抑制此类过多的流量。参见 图 1。

基于源的会话限制的另一个好处是,如果所有连接尝试都来自同一源 IP 地址,它可以减少填满防火墙会话表的尝试。
确定可接受的连接请求数需要一段时间的观察和分析,以建立典型流量的基线。您还需要考虑填满您正在使用的特定瞻博网络平台的会话表所需的最大并发会话数。要查看会话表支持的最大会话数,请使用 CLI 命令 show security flow session summary
,然后查看输出中的最后一行,其中列出了当前(分配的)会话数、最大会话数和失败会话分配数:
userhost# show security flow session summary Unicast-sessions: 0 Multicast-sessions: 0 Failed-sessions: 0 Sessions-in-use: 0 Valid sessions: 0 Pending sessions: 0 Invalidated sessions: 0 Sessions in other states: 0 Maximum-sessions: 2097152
基于源的会话限制的默认最大值为 128 个并发会话,可能需要调整此值以适应网络环境和平台的需求。
Junos OS 支持 IPv4 和 IPv6 流量的基于源的会话限制。
示例:设置基于源的会话限制
此示例说明如何根据源 IP 限制会话量。
要求
配置此功能之前,不需要除设备初始化之外的特殊配置。
概述
以下示例说明如何限制 DMZ 和区域 a 中的任何一台服务器可以启动的会话数。由于 DMZ 仅包含 Web 服务器,其中任何服务器都不应启动流量,因此您可以将源会话限制设置为可能的最低值,即一个会话。另一方面,区域 a 包含个人计算机、服务器、打印机等,其中许多确实会启动流量。对于区域 a,您可以将源会话限制设置为最多 80 个并发会话。
拓扑
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit
。
set security screen ids-option 1-limit-session limit-session source-ip-based 1 set security zones security-zone dmz screen 1-limit-session set security screen ids-option 80-limit-session limit-session source-ip-based 80 set security zones security-zone zone_a screen 80-limit-session
分步过程
根据 DMZ 区域的源 IP 指定并发会话数。
[edit security] user@host# set screen ids-option 1-limit-session limit-session source-ip-based 1
将 DMZ 的安全区域设置为配置限制。
[edit security] user@host# set zones security-zone dmz screen 1-limit-session
根据区域 a 区域的源 IP 指定并发会话数。
[edit security] user@host# set screen ids-option 80-limit-session limit-session source-ip-based 80
将区域 a 的安全区域设置为配置限制。
[edit security] user@host# set zones security-zone zone_a screen 80-limit-session
结果
在配置模式下,输入 show security screen
和 show security zones
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show security screen ids-option 1-limit-session { limit-session { source-ip-based 1; } } ids-option 80-limit-session { limit-session { source-ip-based 80; } }
[edit] user@host# show security zones security-zone dmz { screen 1-limit-session; } security-zone zone_a { screen 80-limit-session; }
如果完成设备配置,请从配置模式输入 commit
。
验证
验证基于源的会话限制
目的
验证基于源的会话限制。
行动
show security screen ids-option 1-limit-session
在操作模式下输入 、 show security screen ids-option 80-limit-session
和show security zones
命令。
user@host> show security screen ids-option 1-limit-session Screen object status: Name Value Session source limit threshold 1 user@host> show security screen ids-option 80-limit-session Screen object status: Name Value Session source limit threshold 80 user@host> show security zones Security zone: dmz Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: 1-limit-session Interfaces bound: 0 Interfaces:
意义
示例输出显示 DMZ 区域和区域 a 的源会话限制值。
了解基于目标的会话限制
除了限制来自同一源 IP 地址的并发会话数外,您还可以限制到同一目标 IP 地址的并发会话数。狡猾的攻击者可以发起分布式拒绝服务 (DDoS) 攻击。在 DDoS 攻击中,恶意流量可能来自数百个主机,称为“僵尸代理”,这些主机秘密地处于攻击者的控制之下。除了 SYN、UDP 和 ICMP 泛滥检测和防御屏幕选项之外,设置基于目标的会话限制还可以确保 Junos OS 仅允许可接受数量的并发连接请求(无论来源如何)到达任一主机。参见 图 2。

基于目标的会话限制的默认最大值为 128 个并发会话,可能需要调整此值以适应网络环境和平台的需求。
示例:设置基于目标的会话限制
此示例说明如何设置基于目标的会话限制。
要求
配置此功能之前,不需要除设备初始化之外的特殊配置。
概述
在此示例中,您将 Web 服务器的流量限制为 1.2.2.5。服务器位于 DMZ 中。该示例假定在观察从外部区域到此服务器的流量一个月后,您已确定它接收的平均并发会话数为 2000。此外,您还可以将新的会话限制设置为 2000 个并发会话。尽管流量峰值有时可能会超过该限制,但该示例假定您选择防火墙安全性,而不是偶尔服务器无法访问。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit 。
set security screen ids-option 2000-limit-session limit-session destination-ip-based 2000 set security zones security-zone external_zone screen 2000-limit-session
分步过程
以下示例要求您在配置层次结构中导航各个级别。要设置基于目标的会话限制,请执行以下操作:
指定并发会话数。
[edit] user@host# set security screen ids-option 2000-limit-session limit-session destination-ip-based 2000
设置外部区域的安全区域。
[edit] user@host# set security zones security-zone external_zone screen 2000-limit-session
结果
在配置模式下,输入 show security screen
和 show security zones
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show security screen ids-option 2000-limit-session { limit-session { destination-ip-based 2000; } }
[edit] user@host# show security zones security-zone external_zone { screen 2000-limit-session; }
如果完成设备配置,请从配置模式输入 commit
。
验证
验证基于目标的会话限制
目的
验证基于目标的会话限制。
行动
show security screen ids-option 2000-limit-session
在操作模式下输入和show security zones
命令。
user@host> show security screen ids-option 2000-limit-session node0: -------------------------------------------------------------------------- Screen object status: Name Value Session destination limit threshold 2000 Value user@host> show security zones Security zone: external_zone Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: 2000-limit-session Interfaces bound: 0 Interfaces:
意义
示例输出显示外部区域的目标会话限制值。
了解 SYN-ACK-ACK 代理泛滥攻击
当认证用户启动 Telnet 或 FTP 连接时,用户会将 SYN 分段发送到 Telnet 或 FTP 服务器。Junos OS 拦截 SYN 分段,在其会话表中创建一个条目,并将 SYN-ACK 分段代理给用户。然后,用户使用 ACK 段进行回复。此时,初始三次握手已完成。Junos OS 会向用户发送登录提示。如果用户出于恶意意图不登录,而是继续启动 SYN-ACK-ACK 会话,则防火墙会话表可能会填满,直到设备开始拒绝合法连接请求。
要防止此类攻击,您可以启用 SYN-ACK-ACK 代理保护屏幕选项。来自同一 IP 地址的连接数达到 SYN-ACK-ACK 代理阈值后,Junos OS 将拒绝来自该 IP 地址的进一步连接请求。默认情况下,阈值为来自任何单个 IP 地址的 512 个连接。您可以更改此阈值(更改为 1 到 250,000 之间的任意数字),以更好地满足网络环境的要求。
Junos OS 支持 IPv4 和 IPv6 地址的 SYN-ACK-ACK 代理保护。
保护您的网络免受 SYN-ACK-ACK 代理泛滥攻击
此示例说明如何保护您的网络免受 SYN-ACK-ACK 代理泛滥攻击。
要求
配置此功能之前,不需要除设备初始化之外的特殊配置。
概述
在此示例中,您将启用针对 SYN-ACK-ACK 代理泛洪的保护。值单位是每个源地址的连接数。默认值为来自任意单个地址的 512 个连接。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit
。
set security screen ids-option 1000-syn-ack-ack-proxy tcp syn-ack-ack-proxy threshold 1000 set security zones security-zone zone screen 1000-syn-ack-ack-proxy
分步过程
以下示例要求您在配置层次结构中导航各个级别。要防范 SYN-ACK-ACK 代理泛洪攻击,请执行以下操作:
指定源会话限制。
[edit] user@host# set security screen ids-option 1000-syn-ack-ack-proxy tcp syn-ack-ack-proxy threshold 1000
设置区域屏幕的安全区域。
[edit] user@host# set security zones security-zone zone screen 1000-syn-ack-ack-proxy
结果
在配置模式下,输入 show security screen
和 show security zones
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show security screen ids-option 1000-syn-ack-ack-proxy { tcp { syn-ack-ack-proxy threshold 1000; } }
[edit] user@host# show security zones security-zone zone { screen 1000-syn-ack-ack-proxy; }
如果完成设备配置,请从配置模式输入 commit
。
验证
验证 SYN-ACK-ACK 代理泛滥攻击
目的
验证 SYN-ACK-ACK 代理泛洪攻击。
行动
show security screen ids-option 1000-syn-ack-ack-proxy
在操作模式下输入和show security zones
命令。
user@host> show security screen ids-option 1000-syn-ack-ack-proxy node0: -------------------------------------------------------------------------- Screen object status: Name Value TCP SYN-ACK-ACK proxy threshold 1000 user@host> show security zones Security zone: zone Send reset for non-SYN session TCP packets: Off Policy configurable: Yes Screen: 1000-syn-ack-ack-proxy Interfaces bound: 0 Interfaces:
意义
示例输出显示没有来自 SYN-ACK-ACK-proxy 泛洪的攻击。