示例:配置过滤器以阻止 Telnet 和 SSH 访问

要求

您需要两台通过共享网络链路运行 Junos OS 的设备。配置此示例之前,不需要除基本设备初始化(管理接口、远程访问、用户登录帐户等)之外的特殊配置。虽然不是严格要求,但建议对 R2 设备进行控制台访问。

注意:

我们的内容测试团队已验证并更新了此示例。

概述和拓扑

在此示例中,您将创建一个 IPv4 无状态防火墙过滤器,用于记录并拒绝发送至本地路由引擎的 Telnet 或 SSH 数据包,除非数据包源自 192.168.1.0/30 子网。过滤器应用于环路接口,以确保仅发往本地设备的流量受到影响。在输入方向上应用滤波器。不使用输出滤波器。因此,允许所有本地生成的流量。

  • 要匹配来自特定子网或 IP 前缀的数据包,请使用在输入方向上应用的 source-address IPv4 匹配条件。

  • 要匹配发往 Telnet 端口和 SSH 端口的数据包,请将 protocol tcp 匹配条件与 port telnet 在输入方向上应用的 a 和 port ssh IPv4 匹配条件结合使用。

示例拓扑

图 1 显示了此示例的测试拓扑。防火墙过滤器将应用于 R2 设备,使其成为被测设备 (DUT)。R1 和 R2 设备共享一个链路,该链路分配了 192.168.1.0/30 的子网。两台设备均使用 /32 子网掩码从 192.168.255.0/30 前缀分配的环路地址。静态路由提供环路地址之间的可访问性,因为此基本示例中未配置内部网关协议。

图 1:示例拓扑 Example Topology

配置

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

注意:

根据设计,示例过滤器会限制 Telnet 和 SSH 对 R2 的访问,除非它源自 R1 上的共享子网。如果使用 SSH 或 Telnet 直接访问 R2 设备,则在应用过滤器时将断开连接。配置此示例时,建议您具有控制台访问权限。如果需要,您可以将 R1 设备用作跳转主机,以在应用过滤器后启动到 R2 的 SSH 会话。或者,请考虑修改示例过滤器,以允许分配给用于访问 R2 设备的计算机的 IP 子网。

执行以下任务以配置此示例:

CLI 快速配置

R1 设备的快速配置

要快速配置 R1 设备,请根据需要编辑以下命令并将其粘贴到层次结构级别的 [edit] CLI 中。请务必在配置模式下发出 以 commit激活更改。

R2 设备的快速配置

要快速配置 R2 设备,请根据需要编辑以下命令,并将其粘贴到层次结构级别的 [edit] CLI 中。请务必在配置模式下发出 以 commit 激活更改。

提示:

在进行可能影响远程访问设备的更改时,请考虑使用 commit-confirmed 。 正在激活 Junos OS 配置,但需要确认

配置 R1 设备

分步程序

请按照以下步骤配置 R1 设备:

  1. 配置接口:

  2. 将主机名和静态路由配置为 R2 设备的环路地址。您还可以配置 Telnet 和 SSH 访问:

验证并提交 R1 设备上的配置

分步程序

完成以下步骤,在 R1 设备上验证并提交候选配置:

  1. 使用配置模式命令确认 show interfaces 接口配置。如果命令输出未显示预期的配置,请重复此示例中的说明以更正配置。

  2. 验证用于到达 R2 设备环路地址的静态路由,以及是否已启用 SSH 和 Telnet 访问。使用 和 show routing-options show system services 配置模式命令。如果命令输出未显示预期的配置,请重复此示例中的说明以更正配置。

  3. 对 R1 设备上的配置感到满意时,提交候选配置。

配置 R2 设备

分步程序

完成以下步骤以配置 R2 设备。首先,您可以定义选择性地阻止 Telnet 和 SSH 访问的无状态防火墙过滤器:

  1. 将自己定位在层 edit firewall family inet filter local_acl 次结构中:

  2. 定义过滤器术语 terminal_access。此术语允许来自指定源前缀的 Telnet 和 SSH:

  3. 定义过滤器术语 terminal_access_denied。此术语拒绝来自 所有其他 源地址的 SSH 和 Telnet。此术语配置为记录与术语的匹配项,并生成对数据包源的显式互联网控制消息协议 (ICMP) 目标不可达响应。有关过滤器日志记录选项的详细信息,请参阅 防火墙过滤器日志记录操作 。

    提示:

    您可以使用该 discard 操作来抑制将 ICMP 错误消息生成回源。有关详细信息,请参阅 防火墙过滤器终止操作 。

  4. 可选。

    定义过滤器术语 tcp-estab。此术语允许出站访问互联网以支持与瞻博网络 Mist 云的连接(tcp-established 是位字段匹配条件, tcp-flags "(ack | rst)"表示已建立的 TCP 会话,但不是 TCP 连接的第一个数据包):

  5. 定义过滤器术语 default-term。此术语接受所有其他流量。回想一下, Junos OS 无状态过滤器末尾有一个隐式 拒绝 术语。通过 default-term 使用显式 接受 操作终止过滤器来覆盖此行为。过滤器终止将导致文件管理器接受所有其他流量。

    注意:

    在本例中,我们允许所有其他流量,但对于您的网络,您可能需要保护路由引擎。更多信息,请参阅 保护路由引擎 。

  6. 配置环路接口,并在输入方向上应用过滤器:

  7. 配置主机名、ge-0/0/0 接口、到 R1 设备环路地址的静态路由,并通过 SSH 和 Telnet 启用远程访问:

验证并提交设备 R2 上的配置

分步程序

完成以下步骤,在 R2 设备上验证并提交候选配置:

  1. 使用 show firewall 配置模式命令确认无状态防火墙过滤器的配置。如果命令输出未显示预期的配置,请重复此示例中的说明以更正配置。

  2. 使用配置模式命令确认 show interfaces 接口配置和过滤应用。如果命令输出未显示预期的配置,请重复此示例中的说明以更正配置。

  3. 验证用于到达 R1 设备环路地址的静态路由,并验证是否已启用 Telnet 和 SSH 访问。使用 和 show routing-options show system services 配置模式命令。如果命令输出未显示预期的配置,请重复此示例中的说明以更正配置。

  4. 如果对 R2 设备上的配置感到满意,请提交候选配置。

    提示:

    在进行可能影响远程访问设备的更改时,请考虑使用 commit-confirmed 。

验证无状态防火墙过滤器

确认用于限制 Telnet 和 SSH 访问的防火墙过滤器工作正常。

验证接受的数据包

目的

验证当流量源自 192.168.1.0/30 子网时,防火墙过滤器是否正确允许 SSH 和 Telnet。

行动

  1. 清除路由器或交换机上的防火墙日志。

  2. 在 192.168.1.0/30 子网 中 IP 地址的主机上,使用命令 ssh 192.168.255.2 验证是否可以从允许的源地址使用 SSH 登录设备。应接受此数据包,但不应将此数据包的数据包标头信息记录在数据包转发引擎的防火墙过滤器日志缓冲区中。如果这是这些设备之间的第一次 SSH 登录 user ,系统将提示您保存 SSH 主机密钥。

    注意:

    默认情况下,R1 设备将从用于到达目标的出口接口获取 SSH 流量。因此,此流量源自分配给 R1 设备 ge-0/0/0 接口的 192.168.1.1 地址。

  3. 注销 R2 设备上的 CLI 以关闭 SSH 会话。

  4. 在 192.168.1.0/30 子网 中 IP 地址的主机上,使用命令 telnet 192.168.255.2 验证是否可以从允许的源地址使用 Telnet 登录到路由器或交换机。应接受此数据包,但不应将此数据包的数据包标头信息记录在数据包转发引擎的防火墙过滤器日志缓冲区中。

  5. 注销 CLI 以关闭与 R2 设备的 Telnet 会话。

  6. 使用此 show firewall log 命令验证 R2 设备数据包转发引擎 (PFE ) 上的 防火墙日志缓冲区是否不包含源地址位于 192.168.1.0/30 子网中的任何条目。

验证已记录和被拒绝的数据包

目的

验证防火墙过滤器是否正确拒绝 并非 源自 192.168.1.0/30 子网的 SSH 和 Telnet 流量。

行动

  1. 清除路由器或交换机上的防火墙日志。

  2. 生成源自 R1 设备环路地址的 SSH 流量。此流量的源地址位于允许的 192.168.1.0/30 子网 之外  。使用此 ssh 192.168.255.2 source 192.168.255.1 命令验证您是否 无法 使用此源地址使用 SSH 登录到设备。应拒绝此数据包,并将数据包标头信息记录在防火墙过滤器日志缓冲区中。

    输出显示 SSH 连接被拒绝。此输出确认过滤器正在生成 ICMP 错误消息,以及当从不允许的源地址发送时,过滤器是否正确阻止了 SSH 流量。

  3. 生成源自 R1 设备环路地址的 Telnet 流量。此流量的源地址位于允许的 192.168.1.0/30 子网 之外  。使用此 telnet 192.168.255.2 source 192.168.255.1 命令验证您 是否无法 使用此源地址使用 Telnet 登录设备。此数据包应被拒绝,并且此数据包的数据包标头信息应记录在 PFE 的防火墙过滤器日志缓冲区中。

    输出显示 Telnet 连接被拒绝。此输出确认过滤器正在生成 ICMP 错误消息,以及当从不允许的源地址发送时,是否会正确阻止 Telnet 流量。

  4. 使用该 show firewall log 命令验证 R2 设备上的防火墙日志缓冲区是否包含显示源地址为 192.168.255.1 的数据包被拒绝的条目。

    输出确认来自 192.168.255.1 源地址的流量与过滤器的 terminal_access_denied 期限匹配。该 Action 列显示 , R 表示这些数据包已被拒绝。还会列出接口、传输协议以及源地址和目标地址。这些结果证实,在此示例中,防火墙过滤器工作正常。