Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

远程访问概述

您可以使用 DHCP、Finger、FTP、rlogin、SSH 和 Telnet 服务等远程访问路由器、交换机或安全设备。本主题介绍如何使用 Telnet、SSH、FTP 和 Finger 服务配置远程访问。有关详细信息,请阅读本主题。

系统服务概述

出于安全原因,默认情况下禁用对路由器的远程访问。您必须明确配置路由器,以便远程系统上的用户可以访问它。路由器可通过 DHCP、finger、FTP、rlogin、SSH 和 Telnet 服务从远程系统访问。此外,Junos XML 协议客户端应用程序可以在其他服务中使用安全套接字层(SSL)或 Junos XML 协议特定的明文服务。

注:

为了保护系统资源,您可以限制服务接受的同时连接数和单个用户拥有的进程数。如果超过其中一个限制,连接尝试将失败。

配置 Telnet 服务以远程访问路由器或交换机

要将路由器或交换机配置为接受 Telnet 作为接入服务,请将telnet语句包含在[edit system services]层次结构级别:

默认情况下,路由器或交换机支持有限数量的并发 Telnet 会话和每分钟的连接尝试。

或者,您可以包含以下一个或两个语句来更改默认值:

  • connection-limit limit— 每个协议(IPV4 和 IPv6)的最大同时连接数。范围为 1 到 250。默认值为75。配置连接限制时,限制适用于每个协议(IPv4 和 IPv6)的 telnet 会话数量。例如,连接限制为10时允许10个 IPv6 telnet 会话和10个 IPv4 telnet 会话。

  • rate-limit limit— 每分钟接受的最大连接尝试次数(从 1 次到 250 次)。默认值为150。配置速率限制时,限制适用于每个协议(IPv4 和 IPv6)的连接尝试次数。例如,速率限制10每分钟允许10个 IPv6 telnet 会话连接尝试次数每分钟进行10次 IPv4 telnet 会话连接尝试。

不能将telnet语句包含在运行 Junos FIPS 软件的设备上。建议在通用标准环境中不使用 Telnet。

配置 FTP 服务以远程访问路由器或交换机

要将路由器或交换机配置为以访问服务的形式接受 FTP,请ftp[edit system services]层次结构级别包括此语句:

默认情况下,路由器或交换机支持数量有限的同步 FTP 会话和每分钟的连接尝试次数。您可以包含以下一项或两条语句来更改默认值:

  • connection-limit limit— 每个协议(IPV4 和 IPv6)的最大同时连接数。范围为 1 到 250 的值。默认值为75。配置连接限制时,限制适用于每个协议(IPv4 和 IPv6)的会话数。例如,连接限制为10时,将允许10个 IPv6 FTP 会话和10个 IPv4 FTP 会话。

  • rate-limit limit— 每分钟接受的最大连接尝试次数(一个值从 1 到 250)。默认值为150。配置速率限制时,限制适用于每个协议(IPv4 和 IPv6)的连接尝试次数。例如,速率限制10允许10个 IPv6 FTP 会话连接尝试和10个 IPv4 FTP 会话连接尝试。

您可以使用被动 FTP 访问仅接受被动 FTP 服务的设备。所有使用 FTP 的命令和语句也都接受被动 FTP。将ftp语句包含在[edit system services]层次结构级别,以使用主动 ftp 或被动 ftp。

要启动被动 FTP 会话,请使用pasvftp (而不ftp是)标准 FTP 格式(ftp://destination)。例如:

不能将ftp语句包含在运行 Junos FIPS 软件的路由器或交换机上。我们建议您不要在通用标准环境中使用 finger 服务。

配置用于远程访问路由器的 Finger 服务

要将路由器配置为以接入服务的形式接受手指,请finger将语句包含[edit system services]在层次结构级别:

默认情况下,路由器支持数量有限的同时 finger 会话和每分钟的连接尝试。或者,您可以包含以下一个或两个语句来更改默认值:

  • connection-limit limit— 每个协议(IPv4 和 IPv6)的最大同时连接数。范围为 1 到 250 的值。默认值为75。配置连接限制时,限制适用于每个协议(IPv4 和 IPv6)的会话数。例如,连接限制为10时,允许10个 IPv6 明文服务会话和10个 IPv4 明文服务会话

  • rate-limit limit— 每分钟接受的最大连接尝试次数(一个值从 1 到 250)。默认值为150。配置速率限制时,限制适用于每个协议(IPv4 和 IPv6)的连接尝试次数。例如,速率限制10每分钟允许10个 IPv6 会话连接尝试次数和每分钟10次 IPv4 会话连接尝试次数。

不能将finger语句包含在运行 Junos FIPS 软件的路由器上。我们建议您不要在通用标准环境中使用 finger 服务。

配置 SSH 服务以远程访问路由器或交换机

要将路由器或交换机配置为接受 SSH 作为接入服务,请在ssh[edit system services]层次结构级别中包含该语句:

默认情况下,路由器或交换机支持数量有限的同时 SSH 会话和每分钟的连接尝试次数。使用以下语句更改默认值:

  • connection-limit limit—每个协议(IPv4 和 IPv6)的最大同时连接数。范围为 1 到 250 的值。默认值为75。配置连接限制时,限制适用于每个协议(IPv4 和 IPv6)的 SSH 会话数。例如,连接限制为10时允许10个 IPv6 SSH 会话和10个 IPv4 SSH 会话。

  • max-sessions-per-connection number—包括此语句以指定每个 SSH 连接允许的最大 SSH 会话数。这允许您限制单个 SSH 连接中的已克隆会话隧道数量。默认值为10。

  • rate-limit limit— 每分钟接受的最大连接尝试次数(一个值从 1 到 250)。默认值为150。配置速率限制时,限制适用于每个协议(IPv4 和 IPv6)的连接尝试次数。例如,速率限制10每分钟允许10个 IPv6 SSH 会话连接尝试次数每分钟10次 IPv4 SSH 会话连接尝试次数。

  • data-limit—重新协商会话密钥之前的数据限制(字节)

  • time-limit—重新协商会话密钥的时间限制(分钟)

从 Junos OS 19.4R1 和 Junos OS 版本 17.4R3 开始,您可以使用 [ ] 层次结构级别的 和 选项禁用 SSH 登录密码或质询响应 no-password-authentication 身份验证。 no-challenge-responseedit system services ssh

默认情况下,用户可以通过一个会话创建一个 SSH 隧道CLI通过 SSH 连接到通过 SSH Junos OS路由器。此类隧道可用于转发 TCP 流量,绕过任何防火墙过滤器或访问控制列表,允许访问路由器以外的资源。使用no-tcp-forwarding选项防止用户通过 SSH 创建到路由器的 SSH 隧道。

有关其他配置设置的信息,请参阅以下主题:

通过 SSH 配置根登录

默认情况下,当认证方法不需要密码时,允许用户通过 SSH 登录路由器 root 或交换机。要通过 SSH 控制用户访问,请将root-login语句包含在[edit systems services ssh]层次结构级别:

allow— 允许用户通过 SSH 以 root 用户名登录到路由器或交换机。

deny—禁用用户在通过 SSH 以 root 用户名时登录到路由器或交换机。

deny- -在认证方法(例如 RSA)不需要密码时,允许用户通过 SSH 以 root 身份登录路由器或 password 交换机。

默认值为deny-password

配置传入 SFTP 连接

SSH 文件传输协议 (SFTP) 是一种网络协议,通过任何可靠的数据流提供文件访问、文件传输和文件管理。从Junos OS版本19.1R1,默认情况下我们已全局禁用传入 SFTP 连接。如果需要,可通过在 层次结构级别配置 语句来全局启用传入 SFTP sftp-server[edit system services ssh] 连接。在Junos OS版本19.1R1,默认情况下,传入 SFTP 连接将全局启用。

注:

默认情况下,仅禁用传入 SFTP 连接。例如,在给定设备 A 和 B(设备 A 19.1R1中),默认情况下不能通过 SFTP 从 B 连接到 A。但是,如果您在设备 A 上配置,则可以通过 SFTP 从设备 B 连接到 sftp-server 设备 A。

默认情况下,传入 SFTP 连接将被禁用。要启用传入 SFTP 连接:

  1. sftp-server 层次结构级别 [edit system services ssh] 配置 语句:
  2. 提交配置。

    sftp-server语句现在处于活动状态。因此,传入 SFTP 连接将启用。

配置 SSH 协议版本

默认情况下,仅启用 SSH 协议版本2。

要将路由器或交换机配置为使用 SSH 协议版本2,请包括该protocol-version语句并在v2[edit system services ssh]层次结构级别指定:

FIPS 模式下的系统始终使用 SSH 协议v2版本。

配置客户端活动机制

当客户端或服务器依靠了解连接何时变为非活动状态时,客户端活机制很有价值。它与标准生存机制不同,因为客户端活消息通过加密通道发送。默认情况下,不会启用客户端活动机制。要启用它,请配置client-alive-count-maxclient-alive-interval语句。此选项仅适用于 SSH 协议版本2。

在以下示例中,未响应的 SSH 客户端将在大约100秒(20 x 5)后断开。

配置 SSH 指纹散列算法

要配置 SSH 服务器在显示钥匙指纹时使用的散列算法fingerprint-hash ,请包括语句并在md5sha2-256[edit system services ssh]层次结构级别指定或:

md5 FIPS 模式的系统上无法使用哈希算法。

Telnet 命令

您可以使用 CLI telnet命令打开远程设备的 Telnet 会话:

注:

在 SRX100、SRX210、SRX220、SRX240、SRX300、SRX320、SRX340、SRX345 和 SRX1500 设备上,下表中指出了最大并发 Telnet 会话数。平台支持取决于安装中的 Junos OS 版本。

SRX100

SRX210

SRX220

SRX240

SRX300

SRX320

SRX340

SRX345

SRX1500

3

3

5

3

5

5

要退出 Telnet 会话并返回 Telnet 命令提示符,请按 Ctrl-]。

要退出 Telnet 会话并返回 CLI 命令提示符,请输入quit

表 1介绍了telnet命令选项。

表 1: CLI telnet 命令选项

选项

Description

8bit

使用8位数据路径。

bypass-routing

绕过路由表,仅向直接连接的接口上的主机打开 Telnet 会话。如果主机不在直接连接的接口上,则会返回错误消息。

host

打开与指定主机名或 IP 地址的 Telnet 会话。

inet

强制 Telnet 会话到 IPv4 目标。

interface source-interface

在指定接口上打开与主机的 Telnet 会话。如果不包含此选项,则使用所有接口。

no-resolve

禁止显示符号名称。

port port

指定主机上的端口号或服务名称。

routing-instance routing-instance-name

为 Telnet 会话使用指定的路由实例。

source address

为 Telnet 会话使用指定的源地址。

Ssh 命令

您可以使用 CLI ssh命令来使用安全外壳(SSH)程序打开与远程设备的连接:

注:

在 SRX100、SRX210、SRX220、SRX240、SRX300、SRX320、SRX340、SRX345 和 SRX1500 设备上,下表中指出了最大并发 SSH 会话数。平台支持取决于安装中的 Junos OS 版本。

SRX100

SRX210

SRX220

SRX240

SRX300

SRX320

SRX340

SRX345

SRX1500

3

3

5

3

5

5

表 2介绍了ssh命令选项。

表 2: CLI ssh 命令选项

选项

Description

bypass-routing

绕过路由表,仅打开到直接连接接口上的主机的 SSH 连接。如果主机不在直接连接的接口上,则会返回错误消息。

host

打开与指定主机名或 IP 地址的 SSH 连接。

inet

强制 SSH 连接到 IPv4 目标。

interface source-interface

在指定接口上打开与主机的 SSH 连接。如果不包含此选项,则使用所有接口。

routing-instance routing-instance-name

使用指定的 SSH 连接的路由实例。

source address

使用指定的 SSH 连接源地址。

v1

强制 SSH 使用版本1进行连接。

v2

强制 SSH 使用版本2进行连接。

配置 SSH 主机密钥以实现数据拷贝安全复制

安全外壳(SSH)使用加密算法生成主机、服务器和会话密钥系统,以确保安全的数据传输。您可以将 SSH 主机密钥配置为支持安全副本(SCP),以便作为后台数据传输(如配置存档和事件日志)的备用FTP 。要为 SCP 配置 SSH 支持,必须完成以下任务:

  • 通过在路由引擎配置层次结构中包括主机名和主机密钥信息,指定 SSH 已知主机。

  • 设置 SCP URL 以指定要从中接收数据的主机。设置此属性将自动从 SCP 服务器检索 SSH 主机密钥信息。

  • 验证主机密钥是否可信。

  • 接受安全连接。接受此连接会自动将主机密钥信息存储在本地主机密钥数据库中。在配置层次结构中存储主机密钥信息可自动执行安全握手,并允许使用 SCP 传输后台数据。

配置 SSH 主机密钥以进行安全复制数据的任务包括:

配置 SSH 已知主机

要配置 SSH 已知主机,请在host[edit security ssh-known-hosts]层次结构级别上包括语句,并指定受信任服务器的主机名和主机密钥选项:

主机键是以下各项之一:

  • dsa-key key—SSH 版本 2 的 Base64 编码数字签名算法 (DSA) 密钥。

  • ecdsa-sha2-nistp256-key —Base64 编码 ECDSA-SHA2-NIST256 密钥。

  • ecdsa-sha2-nistp384-key —Base64 编码 ECDSA-SHA2-NIST384 密钥。

  • ecdsa-sha2-nistp521-key —Base64 编码 ECDSA-SHA2-NIST521 密钥。

  • ed25519-key —Base64 编码 ED25519 密钥。

  • rsa-key key—Base64 编码公开密钥算法,支持 SSH 版本 1 和 SSH 版本 2 的加密和数字签名。

  • rsa1-key key—Base64 编码 RSA 公开密钥算法,支持 SSH 版本 1 的加密和数字签名。

从 Junos OS 版 18.3R1 开始,将弃用 和 主机键算法(而非立即移除)以提供向后兼容性,并有机会使配置符合新配置。 ssh-dssssh-dsa

配置对 SCP 文件传输的支持

要将已知主机配置为支持后台 SCP 文件传输,请将archive-sites该语句包含[edit system archival configuration]在层次结构级别。

注:

在使用 IPv6 主机地址的 Junos OS 语句中指定 URL 时,必须用引号("")将整个 URL 括起来,并将 IPv6 主机地址括在方括号([])中。例如, “scp://username<:password>@[host]<:port>/url-path”;

archive-sites语句设置为指向 SCP URL 会触发自动主机密钥检索。此时,Junos OS 连接到 SCP 主机以获取 SSH 公钥,将主机密钥消息摘要或指纹作为输出显示到控制台,然后终止与服务器的连接。

要验证主机密钥是否可信,请将此指纹与使用可靠来源从相同主机获取的指纹进行比较。如果指纹相同,请接受主机密钥,在提示 yes 时输入。然后,主机密钥信息将存储在路由引擎配置中,并支持使用 SCP 进行后台数据传输。

更新 SSH 主机密钥信息

通常,当您使用archival configuration archive-sites[edit system]层次结构级别上的语句为 SCP 设置 URL 属性时,将自动检索 SSH 主机密钥信息。但是,如果您需要手动更新主机密钥数据库,请使用以下方法之一。

手动检索主机密钥信息

要手动检索 SSH 公共主机密钥信息,请将fetch-from-server选项与set security ssh-known-hosts命令一起使用。您必须在set security ssh-known-hosts fetch-from-server命令中包含主机名属性,才能指定要从中检索 SSH 公钥的主机。

从文件中导入主机密钥信息

要从位于服务器/var/tmp/known-hosts上的已知主机文件中手动导入 SSH 主机密钥信息,请在load-key-fileset security ssh-known-hosts命令中包含该选项。您必须在known-hostsset security ssh-known-hosts load-key-file命令中包含文件路径,以指定导入主机密钥信息的位置。

配置 SSH 服务以支持传统加密

从 Junos OS 16.1 版开始,Junos OS 中的 SSH 服务器基于 OpenSSH 7,默认为一组更安全的密码和密钥交换算法。OpenSSH 7 省略了一些传统加密方法。

注:

缺少对设备中传统加密的支持会导致 Junos Space 设备发现失败。要解决此问题,请将设备配置为支持3des-cbcblowfish-cbc /或密码,以及dh-group1-sha1密钥交换方法。此问题不会影响使用已升级 FreeBSD 运行 Junos OS 的设备。

注:

有关这些扩展的信息, 请参阅 https://www.openssh.com/ OpenSSH 7 文档。

默认版本16.1 支持下面的一组密码 Junos OS:

  • chacha20-poly1305@openssh.com

  • aes128-ctr

  • aes192-ctr

  • aes256-ctr

  • aes128-gcm@openssh.com

  • aes256-gcm@openssh.com

在 Junos OS 版本16.1 中,默认情况下不支持以下密码,但您可以将设备配置为支持它们。它们按从最安全到最低安全的顺序列出:

  • aes256-cbc

  • aes192-cbc

  • aes128-cbc

  • 3des-cbc

  • blowfish-cbc

  • cast128-cbc

  • arcfour256

  • arcfour128

  • arcfour

默认版本16.1 支持以下一组主要的密钥交换方法: Junos OS

  • curve25519-sha256

  • ecdh-sha2-nistp256

  • ecdh-sha2-nistp384

  • ecdh-sha2-nistp521

  • group-exchange-sha2

  • dh-group14-sha1

在 Junos OS 版本16.1 中,默认情况下不支持以下密钥交换方法,但您可以将设备配置为支持它们:

  • group-exchange-sha1

  • dh-group1-sha1

要配置 SSH 服务以支持传统加密:

注:

通过配置一组有序的编码器、密钥交换方法或消息身份验证代码(Mac),新定义的集将应用于服务器和客户端命令。当您使用安全复制协议file copy (SCP)时,更改默认值会影响命令。

  1. 使用set system services ssh ciphers [ cipher 1 cipher 2 ... ]命令添加对编码器的支持。建议将密码添加到配置列表的末尾,以便它们位于最后使用的选项中。在以下示例中,将3des-cbcblowfish-cbc密码添加到默认集:
  2. 使用set system services ssh key-exchange [ method 1 method 2 ... ]命令添加对密钥交换方法的支持。建议将密钥交换方法添加到配置列表的末尾,以便它们位于最后使用的选项中。在下面的示例中, dh-group1-sha1将密钥交换方法添加到默认设置:
  3. 提交配置:

配置出站 SSH 服务

您可以将运行 Junos OS 的设备配置为使用客户端管理应用程序启动 TCP/IP 连接,如果客户端尝试启动连接(例如,设备位于防火墙后面),则会被阻止。该outbound-ssh命令指示设备使用客户端管理应用程序创建 tcp/ip 连接并转发设备的标识。建立连接后,管理应用程序将作为客户端并启动 SSH 序列,而设备将用作服务器并对客户端进行身份验证。

注:

没有带出站 SSH 的启动命令。一旦配置并提交出站 SSH,设备就会开始基于已提交配置启动出站 SSH 连接。设备会反复尝试创建此连接,直至成功。如果设备与客户端管理应用程序之间的连接断开,设备将再次尝试创建新出站 SSH 连接,直至成功。此连接将一直保留,直到从配置中卸下出站 SSH 部分。

要为出站 SSH 连接配置设备,请将outbound-ssh语句包含在[edit system services]层次结构级别:

[edit system services outbound-ssh]

以下主题介绍了配置出站 SSH 服务的任务:

为出站 SSH 连接配置设备标识符

每次设备建立出站 SSH 连接时,都会首先向管理客户端发送启动顺序。此顺序将设备标识为管理客户端。此传输中的值为device-id

要配置设备的设备标识符,请将device-id语句包含在[edit system services outbound-ssh client client-id]层次结构级别:

未配置时secret的启动顺序:

将公共 SSH 主机密钥发送至出站 SSH 客户端

每次路由器或交换机建立出站 SSH 连接时,它都会首先向管理客户端发送启动顺序。此顺序用于识别管理客户端的路由器或交换机。在此传输中,设备 ID 的值

要配置路由器或交换机的设备标识符,请将device-id语句包含在[edit system services outbound-ssh client client-id]层次结构级别:

未配置时secret的启动顺序:

在 SSH 连接初始化期间,客户端使用设备的公共 SSH 主机密钥验证设备的身份。因此,在客户端可以启动 SSH 序列之前,它需要设备的公共 SSH 密钥。配置该secret语句时,设备会将其公共 SSH 密钥作为出站 ssh 连接初始顺序的一部分来传递。

如果设置secret了该语句,并且设备建立出站 SSH 连接,则设备会将其设备 ID、公共 SSH 密钥和从secret语句中派生出来的 SHA1 哈希进行通信。该secret语句的值在设备和管理客户端之间共享。客户端使用共享机密来验证其收到的公共 SSH 主机密钥,以确定公钥是否来自该device-id语句所识别的设备。

使用此secret语句来传输公共 SSH 主机密钥是可选的。您可以手动将公钥传输并安装到客户端系统上。

注:

包括此secret语句意味着设备会在每次建立与客户端的连接时发送其公共 SSH 主机密钥。然后由客户决定如何处理 SSH 主机密钥(如果该设备已具有一个)。建议您将客户端副本更换为新密钥。主机密钥可能因各种原因而变化,并且每次建立连接时都要更换密钥,因此您可以确保客户端具有最新密钥。

要当设备连接到客户端时发送路由器或交换机的公共 SSH 主机密钥,请将 语句包括在 secret[edit system services outbound-ssh client client-id] 层次结构级别:

配置secret属性时,设备会发送以下消息:

为出站 SSH 连接配置激活消息

一旦客户端应用程序拥有路由器或交换机的公共 SSH 主机密钥,它就可以启动 SSH 顺序,就像已创建 TCP/IP 连接一样,然后可以使用路由器或交换机的公共主机 SSH 密钥的副本来认证设备。设备通过 Junos OS 中支持的机制(RSA/DSA 公共字符串或密码身份验证)来验证客户端用户。

要使设备能够将 SSH 协议活消息发送至客户端应用程序,请keep-alive[edit system services outbound-ssh client client-id]层次结构级别配置该语句:

配置新出站 SSH 连接

断开连接时,设备开始启动新的出站 SSH 连接。要指定在断开连接之后设备如何重新连接到服务器,请将reconnect-strategy语句包含在[edit system services outbound-ssh client client-id]层次结构级别:

您还可以指定重试次数,并设置重新连接尝试停止前的时间量。请参阅为出站 SSH 连接配置激活消息

将出站 SSH 客户端配置为接受 NETCONF 作为可用服务

要将应用程序配置为接受 NETCONF 作为可用服务,请将services netconf语句包含在[edit system services outbound-ssh client client-id]层次结构级别:

配置出站 SSH 客户端

要配置可用于此出站 SSH 连接的客户端,请在[edit system services outbound-ssh client client-id]层次结构级别列出每个具有单独 address 语句的客户端:

注:

出站 SSH 连接支持 IPv4 和 IPv6 地址格式。

为出站 SSH 客户端配置路由实例

(仅限 SRX 系列和 MX 系列)从 Junos OS Release 19.3 R1 开始,您可以通过在routing-instance[edit system services outbound-ssh]层次结构级别上包括语句来指定需要建立出站 SSH 连接的路由实例的名称:

要使用管理路由实例,首先使用mgmt_junosset system management-instance命令启用路由实例。

要使用任何其他路由实例,请先在[edit routing-instances]层次结构中配置路由实例。

如果不指定路由实例,设备将使用默认路由表建立出站 SSH 连接。

在指定的 TCP 端口上配置 NETCONF 上的 SSH 连接

利用 Junos OS,您无需配置防火墙即可限制到指定 TCP 端口的传入 NETCONF 连接。要配置用于 NETCONF 超 SSH 连接的 TCP 端口,请将port语句包含在[edit system services netconf ssh]层次结构级别。配置的端口仅接受 NETCONF 超 SSH 的会话。此端口的常规 SSH 会话请求将被拒绝。

您可使用安全外壳 (SSH) 上的 NETCONF配置协议(在 RFC 4742 中指定)为 SSH 上的 NETCONF 连接配置默认端口 830,或者配置 1 到 65535 之间的任何端口。

注:
  • 即使使用配置的 NETCONF 服务器端口,默认 SSH 端口(22)也会继续接受 NETCONF 会话。要禁用 SSH 端口接受 NETCONF 会话,请在 login 事件脚本中指定此项。

  • 我们不建议为 FTP (21)和 Telnet (23)服务配置默认端口,以便配置 NETCONF 超 SSH 连接。

为 Telnet 和 SSH 访问配置密码重试限制

为防止强力攻击和词典遭受进攻,默认情况下,设备会对 Telnet 或 SSH 会话执行以下操作:

  • 在最多连续10次密码重试后断开会话。

  • 第二次密码重试后,将在后续密码重试间隔5秒内引入延迟。

    例如,设备在第三和第四次密码重试之间引入了5秒的延迟,在第四和第五个密码重试之间延迟10秒,依此类推。

  • 实施20秒的最短会话时间,会话将无法断开。配置最短会话时间可防止恶意用户在密码重试延迟生效之前断开会话连接,以及尝试采用多个登录的强力攻击和字典。

您可以为 Telnet 和 SSH 访问配置密码重试限制。在此示例中,将设备配置为对 Telnet 和 SSH 会话执行以下操作:

  • 在断开会话之前,最多允许四个连续密码重试。

  • 在第二次密码重试后的密码重试间隔的5秒内,引入延迟。

  • 在40秒内实施最短会话时间,会话不能断开。

要为 Telnet 和 SSH 访问配置密码重试限制:

  1. 设置 Telnet 或 SSH 或 Telnet 会话断开连接之前连续密码重试的最大次数。默认数量为10,但您可以从110
  2. 设置密码重试次数的阈值,在这段时间后,将在两次连续密码重试之间引入延迟。默认数量为2,但您可以从13中指定一个值。
  3. 设置密码重试次数阈值后连续密码重试的延迟(以秒为单位)。默认延迟以5秒为单位,但您可以指定从510秒的值。
  4. 设置 Telnet 或 SSH 会话无法断开连接的最短时间长度(以秒为单位)。默认值为20秒,但您可以指定从2060秒的间隔。
  5. 如果您完成了设备配置,请从commit配置模式进入。

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

要求

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

注:

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

概述和拓扑

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

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

  • 要匹配发往 Telnet 端口和 SSH 端口的数据包,请使用在输入方向上应用的匹配条件与 protocol tcpport telnetport ssh IPv4 匹配条件。

拓扑示例

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

图 1: 拓扑示例拓扑示例

配置

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

警告:

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

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

CLI 快速配置

R1 设备快速配置

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

R2 设备快速配置

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

提示:

进行更改 commit-confirmed 时,可以考虑对设备进行远程访问。请参阅 激活Junos OS但需要确认 的详细信息。

配置 R1 设备

分步过程

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

  1. 配置接口:

  2. 配置到 R2 设备的环路地址的主机名称和静态路由。您也可配置 Telnet 和 SSH 访问:

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

分步过程

按照以下步骤在 R1 设备上验证并提交候选配置:

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

  2. 验证用于访问 R2 设备的环路地址的静态路由以及启用 SSH 和 Telnet 访问。使用 show routing-optionsshow 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。此术语配置为记录与搜索词的匹配,并生成显式 Internet 控制消息协议 (ICMP) 目标 不可到达响应回数据包源。有关 过滤器记录选项的详细信息 ,请参阅 防火墙过滤器日志记录操作 。

    提示:

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

  4. 定义过滤器术语 默认术语。此术语接受所有其他信息流。提醒一Junos OS无状态过滤器的末尾 有一个 隐式拒绝术语。默认术语通过使用显式接受操作终止过滤器来替代行为。这导致文件程序接受所有其他信息流。

  5. 配置环路接口,然后按输入方向应用过滤器:

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

在设备 R2 验证并提交配置

分步过程

按照以下步骤在 R2 设备上验证并提交候选配置:

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

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

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

  4. 对 R2 设备的配置感到满意时,提交候选配置。

    提示:

    进行更改 commit-confirmed 时,可以考虑对设备进行远程访问。请参阅 激活Junos OS但需要确认 的详细信息。

验证无状态防火墙过滤器

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

验证接受的数据包

用途

验证防火墙过滤器在流量来自 192.168.1.0/24 子网时是否正确允许 SSH 和 Telnet。

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

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

    注:

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

  3. 从 R2 CLI注销,以关闭 SSH 会话。

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

  5. 从路由CLI注销,以将 Telnet 会话关闭至 R2 设备。

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

验证记录和拒绝的数据包

用途

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

行动

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

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

    输出显示 SSH 连接被拒绝。这将确认过滤器正在生成 ICMP 错误消息,并且当从禁止的源地址发送时,它会正确阻止 SSH 流量。

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

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

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

    输出确认来自 192.168.255.1 源地址的流量与过滤器的过滤条件terminal_access_denied搜索。列中 Action 显示 表示 R 这些数据包被拒绝。接口、传输协议以及源地址和目标地址也列出。这些结果将确认此示例的防火墙过滤器工作正常。

发布历史记录表
版本
说明
19.4R1
从 Junos OS 19.4R1 和 Junos OS 版本 17.4R3 开始,您可以使用 [ ] 层次结构级别的 和 选项禁用 SSH 登录密码或质询响应 no-password-authentication 身份验证。 no-challenge-responseedit system services ssh
19.1R1
从Junos OS版本19.1R1,默认情况下我们已全局禁用传入 SFTP 连接。如果需要,可通过在 层次结构级别配置 语句来全局启用传入 SFTP sftp-server[edit system services ssh] 连接
18.3R1
从 Junos OS 版 18.3R1 开始,将弃用 和 主机键算法(而非立即移除)以提供向后兼容性,并有机会使配置符合新配置。 ssh-dssssh-dsa