Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

示例:配置无状态防火墙过滤器以防止 TCP 和 ICMP 泛滥

此示例说明如何创建无状态防火墙过滤器,以防止 TCP 和 ICMP 拒绝服务攻击。

要求

在配置无状态防火墙过滤器之前,不需要除设备初始化之外的特殊配置。

概述

在此示例中,我们创建了一个无状态防火墙过滤器,用于 protect-RE 监管 TCP 和 ICMP 数据包。它使用下面描述的监管器:

  • tcp-connection-policer— 此监管器将 TCP 流量限制为 1,000,000 位/秒 (bps),最大突发大小为 15,000 字节。超出任一限制的流量将被丢弃。

  • icmp-policer— 此监管器将 ICMP 流量限制为 1,000,000 bps,最大突发大小为 15,000 字节。超出任一限制的流量将被丢弃。

指定限制时,带宽限制可以从 32,000 bps 到 32,000,000,000 bps,突发大小限制可以从 1,500 字节到 100,000,000 字节。指定限制时,请使用以下缩写:K (1,000)、m (1,000,000) 和 g (1,000,000,000)。

每个监管器都并入一个滤波器项的作用中。此示例包括以下术语:

  • tcp-connection-term— 对源地址为 192.168.0.0/24 或 10.0.0.0/24 的某些 TCP 数据包进行监管。这些地址在前缀列表中定义 trusted-addresses

    过滤的数据包包括 tcp-established 数据包 tcp-established 匹配条件是位字段匹配条件 tcp-flags “(ack | rst)”的别名,表示已建立的TCP会话,但不是TCP连接的第一个数据包。

  • icmp-term— 策略 ICMP 数据包。所有 ICMP 数据包都计入 icmp-counter 计数器。

注:

您可以使用命令 insert 在防火墙过滤器内移动术语。请参阅 Junos OS CLI 用户指南中的插入

您可以将无状态防火墙应用于接口的输入端和/或输出端。要过滤传输设备的数据包,请将防火墙过滤器应用于任何非路由引擎接口。要过滤来自路由引擎或发往路由引擎的数据包,请将防火墙过滤器应用于环路 (lo0) 接口。

图 1 显示了示例网络。

图 1: 防火墙过滤器可防止 TCP 和 ICMP 泛滥防火墙过滤器可防止 TCP 和 ICMP 泛滥

由于此防火墙过滤器将路由引擎流量限制为 TCP 数据包,因此当此过滤器处于活动状态时,对第 4 层使用其他传输协议的路由协议无法成功建立会话。为了进行演示,此示例在设备 R1 和设备 R2 之间设置 OSPF。

CLI 快速配置 显示了 中 图 1所有设备的配置。

#configuration1102__policy-firewall-tcp-icmp-st本节介绍设备 R2 上的步骤。

配置

程序

CLI 快速配置

要快速配置无状态防火墙过滤器,请将以下命令复制到文本文件,删除所有换行符,然后将命令粘贴到 CLI 中。

设备 R1

设备 R2

分步过程

下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参见 在配置模式下使用 CLI 编辑器

要将无状态防火墙过滤器配置为丢弃:

  1. 配置设备接口。

  2. 配置 BGP 对等互连会话。

  3. 配置自治系统 (AS) 编号和路由器 ID。

  4. 配置 OSPF。

  5. 定义可信地址列表。

  6. 配置策略以通告直接路由。

  7. 配置 TCP 监管器。

  8. 创建 ICMP 监管器。

  9. 配置 TCP 过滤规则。

  10. 配置 ICMP 过滤规则。

  11. 将过滤器应用于环路接口。

结果

通过从配置模式输入 show interfacesshow routing-optionsshow protocols show policy-options、 和show firewall命令来确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。

如果完成设备配置,请从配置模式输入 commit

验证

确认配置工作正常。

注:

要验证 TCP 监管器,您可以使用数据包生成工具。此处未显示此任务。

显示有效的无状态防火墙过滤器

目的

验证防火墙过滤器的配置。

操作

在操作模式下,输入 show firewall 命令。

意义

输出显示在设备 R2 上有效的过滤器、计数器和监管器。

使用 telnet 验证 TCP 防火墙过滤器中 TCP 建立的条件

目的

确保 telnet 流量按预期工作。

操作

验证设备是否只能与满足 from tcp-established 条件的主机建立 TCP 会话。

  1. 在设备 R2 中,确保已建立与设备 R1 的 BGP 会话。

  2. 从设备 R2,telnet 到设备 R1。

  3. 从设备 R1,telnet 到设备 R2。

  4. 在设备 R2 上,停用 from tcp-established 匹配条件。

  5. 从设备 R1,再次尝试远程登录到设备 R2。

意义

验证以下信息:

  • 正如预期的那样,BGP会话被建立。from tcp-established匹配条件预计不会阻止 BGP 会话建立。

  • 您可以从设备 R2 远程登录到设备 R1。设备 R1 未配置防火墙过滤器,因此这是预期行为。

  • 您无法从设备 R1 远程登录到设备 R2。Telnet 使用 TCP 作为传输协议,因此此结果可能会令人惊讶。缺少 telnet 连接的 from tcp-established 原因是匹配条件。此匹配条件限制设备 R2 接受的 TCP 流量类型。停用此匹配条件后,telnet 会话成功。

使用 telnet 验证 TCP 防火墙过滤器中的可信前缀条件

目的

确保 telnet 流量按预期工作。

操作

验证设备是否只能与位于与其中一个可信源地址匹配的 IP 地址的主机建立 telnet 会话。例如,使用具有可信地址前缀之一的其他主机的命令登录到 telnet 设备。此外,验证是否阻止了具有不受信任源地址的 telnet 会话。

  1. 从设备 R1,从不受信任的源地址远程登录到设备 R2。

  2. 从设备 R2 中,将 172.16/16 添加到受信任前缀列表中。

  3. 从设备 R1,再次尝试远程登录到设备 R2。

意义

验证以下信息:

  • 您无法从设备 R1 远程登录到具有不受信任源地址的设备 R2。将 172.16/16 前缀添加到受信任前缀列表后,将接受来自源地址 172.16.0.1 的 telnet 请求。

  • OSPF 会话建立被阻止。OSPF 不使用 TCP 作为其传输协议。from protocol tcp停用匹配条件后,不会阻止 OSPF 会话建立。

使用 OSPF 验证 TCP 防火墙过滤器

目的

确保 OSPF 流量按预期工作。

操作

验证设备是否无法建立 OSPF 连接。

  1. 从设备 R1 中,检查 OSPF 会话。

  2. 在设备 R2 中,检查 OSPF 会话。

  3. 从设备 R2 中删除 from protocol tcp 匹配条件。

  4. 在设备 R1 中,重新检查 OSPF 会话。

  5. 在设备 R2 中,重新检查 OSPF 会话。

意义

验证以下信息:

  • OSPF 会话建立被阻止。OSPF 不使用 TCP 作为其传输协议。from protocol tcp停用匹配条件后,OSPF 会话建立成功。

验证 ICMP 防火墙过滤器

目的

验证 ICMP 数据包是否正在被监管和计数。此外,请确保当请求来自不受信任的源地址时,将丢弃 ping 请求。

操作

  1. 撤消在前面的验证步骤中所做的配置更改。

    重新激活 TCP 防火墙设置,并删除 172.16/16 受信任源地址。

  2. 从设备 R1,对设备 R2 上的环路接口执行 ping 操作。

  3. 从设备 R2 中,检查防火墙统计信息。

  4. 从设备 R1 上不受信任的源地址,向设备 R2 的环路接口发送 ping 请求。

意义

验证以下信息:

  • ping 输出显示发生 10% 的数据包丢失。

  • ICMP 数据包计数器在递增,ICMP 监管器在递增。

  • 设备 R2 不会向命令发送 ping 172.16.0.2 source 172.16.0.1 ICMP 响应。