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 作为接入服务,请在层次结构级别包含[edit system services]telnet语句:

默认情况下,路由器或交换机每分钟支持的同步 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 会话连接尝试。

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

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

要将设备配置为接受 FTP 作为接入服务,请在[edit system services]层次结构级别包含该ftp语句:

默认情况下,路由器或交换机每分钟支持的同步 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。在层次结构级别包含[edit system services]ftp语句,以使用主动 FTP 或被动 FTP。

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

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

配置手指服务以远程访问路由器

要将路由器配置为接受手指作为接入服务,请在层次结构级别包含[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 会话连接尝试。

不能在运行 Junos-FIPS 软件的路由器上包含该 finger 语句。建议不要在 Common Criteria 环境中使用手指服务。

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

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

默认情况下,路由器或交换机每分钟支持的同步 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 版开始,您可以使用 [edit system services ssh] 层级的和no-password-authenticationno-challenge-response选项禁用 SSH 登录密码或质询-响应身份验证。

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

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

通过 SSH 配置 root 登录

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

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

deny— 禁止用户通过 SSH 以 root 身份登录到路由器或交换机。

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

默认值为 deny-password

配置传入 SFTP 连接

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

注意:

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

默认情况下,传入 SFTP 连接处于禁用状态。要启用传入 SFTP 连接:

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

    sftp-server 语句现已激活。因此,将启用传入 SFTP 连接。

配置 SSH 协议版本

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

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

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

配置客户端活动机制

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

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

配置 SSH 指纹散列算法

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

md5散列算法在 FIPS 模式下的系统上不可用。

基于 SSH 证书的身份验证概述

从 Junos OS 和 Junos OS 演化版 22.4R1 开始,您可以为用户和主机配置基于 SSH 证书的身份验证。使用此功能,您无需验证密钥指纹,即可为用户和信任主机建立无密码 SSH 访问。

SSH 基于证书的身份验证的优势

  • SSH 基于证书的身份验证消除了用户记住和输入密码的需要,从而简化了登录过程。

  • 与传统的基于密码的方法相比,SSH 证书提供更强的安全性。由于没有密码可供猜测或破解,它们更难被攻破。

  • SSH 证书简化了身份验证密钥的管理。管理员可以从集中的证书颁发机构颁发和撤销证书,而不是为每个用户和主机管理单独的密钥。

生成签名密钥

签名密钥是基于 SSH 证书的身份验证中使用的专用加密密钥。配置基于 SSH 证书的身份验证的第一步是生成签名密钥。您可以在任何 Linux/FreeBSD 系统上生成签名密钥。请按照以下步骤为基于 SSH 证书的身份验证生成签名密钥:

  1. 运行命令: ssh-keygen -f <filename_ca>。这将创建一个名为 <filename_ca> 的私钥和一个名为 <filename_ca.pub>的相应公钥。

  2. 登录到您的瞻博网络设备,并通过执行命令配置 SSH 可信用户证书颁发机构 (证书颁发机构) 密钥文件: set system services ssh trusted-user-ca-key-file <path-to-public-key> 然后提交配置。

  3. 每个用户都可以使用以下 CLI 命令生成自己的用户密钥: ssh-keygen -t <rsa|ecdsa|ed25519>

  4. 将用户创建的公密钥复制到具有用户证书<filename_ca><filename_ca.pub>和 的计算机上。

  5. 对文件中的 <filename_ca.pub> 用户公钥进行签名。

配置

要配置基于 SSH 证书的身份验证,请使用以下 CLI 配置语句:

  • [system services ssh trusted-user-ca-key-file filename]— 配置 TrustedUserCAKey 包含 SSH 证书公钥的文件。

  • [system services ssh host-certificate-file filename]—配置 HostCertificate 包含已签名主机证书的文件。

  • [system services ssh authorized-principals-file filename]- 配置包含 AuthorizedPrincipals 名称列表的文件,其中一个名称必须出现在证书中才能被接受进行身份验证。

  • [system services ssh authorized-principals-command program-path]- 指定用于生成文件中找到 AuthorizedPrincipals 的允许证书主体列表的程序。

禁用 SSH

如果启用了 SSH 并想要禁用它,只需从层次结构级别中[edit system services]移除该ssh语句即可。

如果您只想禁用外部 SSH,请在层次结构级别使用[edit system services ssh]access-disable-external语句。

从 Junos OS 21.4R1 版开始,安装了虚拟机主机的 Junos 平台默认启用 SSH。

默认情况下启用 SSH 后,您无法像往常一样通过层次结构禁用 [edit system services] 它。相反,您可以配置防火墙过滤器来拒绝 SSH 访问:

分步程序

请按照以下步骤配置防火墙过滤器以拒绝 SSH 访问:

  1. 定义过滤器术语 1。此术语拒绝来自 SSH 的 TCP 流量:

  2. 定义过滤器术语 2。此术语允许过滤器术语 1未拒绝的任何流量:

有关使用防火墙过滤器禁用 SSH 的更多信息,请参阅 示例:配置过滤器以阻止 Telnet 和 SSH 访问

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:CLI telnet 命令选项

选项

描述

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 命令选项

选项

描述

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-keykey—Base64 编码的 ECDSA-SHA2-NIST256 密钥。

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

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

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

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

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

配置对 SCP 文件传输的支持

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

注意:

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

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

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

更新 SSH 主机密钥信息

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

手动检索主机密钥信息

要手动检索 SSH 公共主机密钥信息,请在层次结构级别配置[edit security ssh-known-hosts]fetch-from-server选项。您必须指定要从中检索 SSH 公钥的主机。

从文件导入主机密钥信息

要从 known_hosts 文件手动导入 SSH 主机密钥信息,请在层次结构级别添加[edit security ssh-known-hosts]load-key-file选项。您必须指定要从中导入主机密钥信息的文件路径。

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

您可以将 Junos OS 配置为支持旧有加密密码和密钥交换方法。

注意:

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

默认情况下,Junos OS 支持以下密码集:

  • chacha20-poly1305@openssh.com

  • aes128-ctr

  • aes192-ctr

  • aes256-ctr

  • aes128-gcm@openssh.com

  • aes256-gcm@openssh.com

Junos OS 中,默认情况下不支持以下密码,但您可以配置设备以支持它们。它们从最安全到最不安全列出:

  • aes256-cbc

  • aes192-cbc

  • aes128-cbc

  • 3des-cbc

默认情况下,Junos OS 支持以下一组密钥交换方法:

  • curve25519-sha256

  • ecdh-sha2-nistp256

  • ecdh-sha2-nistp384

  • ecdh-sha2-nistp521

  • group-exchange-sha2

  • dh-group14-sha1

Junos OS 中,默认情况下不支持以下密钥交换方法,但您可以将设备配置为支持这些方法:

  • group-exchange-sha1

  • dh-group1-sha1

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

注意:

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

  1. 使用命令 set system services ssh ciphers [ cipher 1 cipher 2 ... ] 添加对密码的支持。建议将密码添加到配置列表的末尾,以便它们成为最后使用的选项之一。在以下示例中,将 和 arcfour blowfish-cbc 密码添加到默认集中:
  2. 使用命令set system services ssh key-exchange [ method 1 method 2 ... ]添加对密钥交换方法的支持。我们建议将密钥交换方法添加到配置列表的末尾,以便它们成为最后使用的选项之一。在以下示例中,dh-group1-sha1密钥交换方法已添加到默认集中:
  3. 提交配置:

配置出站 SSH 服务

您可以配置运行 Junos OS 的设备,以发起与客户端管理应用的 TCP/IP 连接。如果管理应用未到达瞻博网络设备(例如,该设备用作防火墙)。在这种情况下, outbound-ssh 可以在瞻博网络设备上进行配置。配置将 outbound-ssh 启动从服务器到客户端再到管理应用的反向 SSH 连接。只有在从设备中删除配置后,此出站 SSH 连接才会关闭。

注意:

出站 SSH 没有初始化命令。配置并提交出站 SSH 后,设备将开始根据提交的配置发起出站 SSH 连接。设备会反复尝试创建此连接,直到成功。如果设备与客户端管理应用程序之间的连接断开,设备将再次尝试创建新的出站 SSH 连接,直到成功为止。此连接将一直保持,直到从配置中除去出站 SSH 部分。

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

[edit system services outbound-ssh]

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

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

每次路由器或交换机建立出站 SSH 连接时,都会先向管理客户端发送一个初始化序列。此序列标识到管理客户端的路由器或交换机。在此传输中是 的值 device-id

要配置路由器或交换机的设备标识符,请在层次结构级别包含[edit system services outbound-ssh client client-id]device-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 主机密钥。建议将客户端的 SSH 主机密钥副本替换为新密钥。主机密钥可能因各种原因而更改。通过在每次建立连接时替换密钥,可以确保客户端具有最新的密钥。

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

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

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

客户端应用拥有路由器或交换机的公共 SSH 主机密钥后,即可启动 SSH 序列,就像创建了 TCP/IP 连接一样。然后,客户端可以使用其路由器或交换机的公共主机 SSH 密钥副本来对设备进行身份验证,作为该序列的一部分。设备通过 Junos OS 支持的机制(RSA/DSA 公共字符串或密码身份验证)对客户端用户进行身份验证。

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

配置新的出站 SSH 连接

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

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

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

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

配置出站 SSH 客户端

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

注意:

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

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

要使用管理路由实例,请先使用命令set system management-instance启用mgmt_junos路由实例。

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

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

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

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

您可以按照 RFC 4742, 使用安全外壳上的 NETCONF 配置协议 (SSH) 中所述,为通过 SSH 的 NETCONF 连接配置默认端口 830,也可以配置 1 到 65535 之间的任意端口。

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

  • 不建议将 FTP (21) 和 Telnet (23) 服务的默认端口配置为配置 NETCONF-over-SSH 连接。

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

为防止暴力攻击和字典攻击,设备默认对 Telnet 或 SSH 会话执行以下操作:

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

  • 第二次密码重试后,后续密码重试之间会延迟 5 秒的倍数。

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

  • 强制执行最短 20 秒的会话时间,在此期间不能断开会话连接。配置最短会话时间可防止恶意用户在密码重试延迟生效之前断开会话连接。配置最短会话时间还可以防止他们尝试多次登录的暴力攻击和字典攻击。

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

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

  • 在第二次密码重试之后,在密码重试之间引入以 5 秒倍为单位的延迟。

  • 强制执行最短会话时间为 40 秒,在此期间不能断开会话连接。

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

  1. 设置在断开 Telnet、SSH 或 telnet 会话之前的最大连续密码重试次数。默认编号为 10,但可以设置 到 10的编号1
  2. 设置密码重试的阈值,之后在两次连续的密码尝试之间引入延迟。默认数字为 2,但您可以从 13指定值。
  3. 设置密码重试阈值次数后连续密码重试之间的延迟(以秒为单位)。默认延迟以秒的 5 倍数为单位,但您可以指定秒级 510
  4. 设置无法断开 Telnet 或 SSH 会话的最短时间长度(以秒为单位)。默认设置为20秒,但您可以指定从秒到60秒的20间隔。
  5. 配置设备后,进入 commit 配置模式。

示例:配置过滤器以阻止 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 表示这些数据包已被拒绝。还会列出接口、传输协议以及源地址和目标地址。这些结果证实,在此示例中,防火墙过滤器工作正常。

变更历史表

是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。

发布
描述
19.4R1
从 Junos OS 19.4R1 版和 Junos OS 17.4R3 版开始,您可以使用 [ edit system services ssh] 层级的和 no-password-authentication no-challenge-response选项禁用 SSH 登录密码或质询-响应身份验证。
19.1R1
从 Junos OS 19.1R1 版开始,默认情况下,我们已全局禁用传入的 SFTP 连接。如果需要,您可以通过在层次结构级别配置 [edit system services ssh]该语句 sftp-server来全局启用传入 SFTP 连接
18.3R1
从 Junos OS 18.3R1 版开始, ssh-dss ssh-dsa将弃用 和 hostkey 算法,而不是立即删除,以提供向后兼容性并让您的配置符合新配置。
18.3R1
(仅限 SRX 系列和 MX 系列)从 Junos OS 19.3R1 版开始,您可以通过在层次结构级别包含 [edit system services outbound-ssh]以下 routing-instance语句来指定需要在其上建立出站 SSH 连接的路由实例的名称: