配置用户通过STelnet登录设备
配置流程
使用STelnet V1协议存在安全风险,建议使用STelnet V2登录设备。
在配置STelnet登录设备任务中,配置流程如表6-7所示。
缺省配置
参数 |
缺省值 |
---|---|
STelnet服务器功能 |
关闭 |
SSH服务器端口号 |
22 |
SSH服务器密钥对的更新周期 |
0小时,表示永不更新 |
SSH连接认证超时时间 |
60秒 |
SSH连接的认证重试次数 |
3 |
SSH服务器兼容低版本功能 |
未使能 |
VTY用户界面的认证方式 |
没有配置认证方式 |
VTY用户界面所支持的协议 |
支持所有协议类型 |
SSH用户的认证方式 |
认证方式是空,即不支持任何认证方式 |
SSH用户的服务方式 |
服务方式是空,即不支持任何服务方式 |
SSH服务器为用户分配公钥 |
没有为用户分配公钥 |
用户级别 |
VTY用户界面对应的默认命令访问级别是0 |
操作步骤
- 配置STelnet服务器功能及参数表6-9 配置STelnet服务器功能及参数
操作步骤
命令
说明
进入系统视图
system-view
-
生成本地密钥对或分配PKI证书
方式一:
执行命令rsa local-key-pair create、dsa local-key-pair create或ecc local-key-pair create,生成本地RSA、DSA或ECC密钥对。
方式二:执行命令rsa key-pair label label-name [ modulus modulus-bits ]、dsa key-pair label label-name [ modulus modulus-bits ]或ecc key-pair label label-name [ modulus modulus-bits ],生成带标签的RSA、DSA或ECC密钥对。
- 执行命令ssh server assign { rsa-host-key | dsa-host-key | ecc-host-key | pki } label-name,为SSH服务器分配PKI证书、RSA主机密钥、RSA服务器密钥、DSA主机密钥或ECC主机密钥。
说明:方式二可以最多生成20对密钥对,用户可以在不同时期使用不同的密钥对,更好地确保了通信的安全性。设备最多可生成的密钥对数,可以通过rsa key-pair maximum、dsa key-pair maximum和ecc key-pair maximum命令配置。
用户也可以执行命令rsa key-pair label load private private-key public public-key或dsa key-pair label load private private-key public public-key,将本地RSA密钥对文件或DSA密钥对文件加载到服务器。
对于方式一:
密钥对生成后,可以执行display rsa local-key-pair public、display dsa local-key-pair public或display ecc local-key-pair public命令查看本地密钥对中RSA、DSA或ECC的公钥信息。
对于方式二:
密钥对生成后,可以执行display rsa key-pair [ brief | label label-name ]、display dsa key-pair [ brief | label label-name ]或display ecc key-pair [ brief | label label-name ]命令查看带标签的RSA、DSA或ECC密钥对信息。说明:密钥对长度越大,密钥对安全性就越好,建议使用最大的密钥对长度。
使能SSH服务器公钥算法
ssh server publickey { dsa | ecc | rsa | x509v3-ssh-rsa } *
缺省情况下,RSA公钥算法是开启的。
当使用公钥认证或者证书认证登录设备时,SSH服务器支持的公钥算法需要与命令ssh user authentication-type配置SSH用户的认证方式相同,否则用户无法登录设备。
使能STelnet服务器功能
stelnet [ ipv4 | ipv6 ] server enable
缺省情况下,STelnet服务功能未使能。
去使能SSH服务器的STelnet服务后,所有的客户端将断开连接。
(可选)关闭SSH服务端使用不安全算法时的风险提示功能。
ssh server security-banner disable
缺省情况下,SSH服务端风险提示功能是启用的。
SSH客户端登录SSH服务器时,如果协商使用的算法为不安全算法,SSH服务器会产生不安全算法的风险提示信息。
配置SSH服务器端口号
ssh [ ipv4 | ipv6 ] server port port-number
缺省情况下,SSH服务器端的端口号是22。
如果配置了新的端口号,SSH服务器端先断开当前已经建立的所有STelnet连接,然后使用新的端口号开始尝试连接。这样可以有效防止攻击者对SSH服务标准端口的访问,确保安全性。
使能SSH服务器上的keepalive特性
undo ssh server keepalive disable
缺省情况下,SSH服务器上的keepalive特性处于使能状态。
SSH服务器在使能keepalive特性之后,若收到SSH客户端的keepalive报文之后,会进行响应。这样防止在SSH客户端收不到keepalive响应报文时断开与SSH服务器的连接,避免造成客户端重新连接服务器浪费服务器资源。
(可选)配置SSH服务器端的密钥交换算法列表
ssh server key-exchange { dh_group14_sha1 | dh_group1_sha1 | dh_group_exchange_sha1 | dh_group_exchange_sha256 | ecdh_sha2_nistp256 | ecdh_sha2_nistp384 | ecdh_sha2_nistp521 | sm2_kep } *
缺省情况下,SSH服务器使用dh_group_exchange_sha256密钥交换算法。
在客户端与服务器协商的过程中,二者对报文传输的密钥交换算法进行协商,服务器端根据客户端发来的密钥交换算法列表与自身的密钥交换算法列表进行对比,选择客户端与自己相匹配的第一个密钥交换算法作为报文传输的密钥交换算法,如果客户端的密钥交换算法列表与服务器端的密钥交换算法列表没有相匹配的算法,则协商失败。说明:当服务器上的公钥算法为ECC时,系统的首选交换算法必须是sm2_kep。
(可选)配置SSH会话密钥重协商条件
ssh server rekey { data-limit data-limit | max-packet max-packet | time minutes } *
用户可以使用此命令修改SSH服务器启动密钥重协商的条件。
为了提高传输安全性,SSH服务器可以启动密钥重协商,如果重协商失败,就会断开STelnet连接。缺省情况下,满足以下三个条件中的至少一个时,SSH服务器即触发密钥重协商:使用当前密钥传输报文总数据量达到1000兆字节。
发送和接收的报文总个数达到2147483648个。
STelnet连接时长达到60分钟。
(可选)配置与SSH客户端进行Diffie-hellman-group-exchange密钥交换时支持的最小密钥长度。
ssh server dh-exchange min-len min-len
缺省情况下,SSH服务器与客户端进行Diffie-hellman-group-exchange密钥交换时,支持的最小密钥长度为2048bits。
(可选)配置SSH服务器端的加密算法列表
ssh server cipher { des_cbc | 3des_cbc | aes128_cbc | aes256_cbc | aes128_ctr | aes256_ctr | arcfour128 | arcfour256 | aes192_cbc | aes192_ctr | aes128_gcm | aes256_gcm | blowfish_cbc } *
缺省情况下,SSH服务器端使用AES256_GCM、AES128_GCM、AES256_CTR、AES192_CTR和AES128_CTR加密算法。
(可选)配置SSH服务器上的校验算法列表
ssh server hmac { md5 | md5_96 | sha1 | sha1_96 | sha2_256 | sha2_256_96 | sha2_512 } *
缺省情况下,SSH服务器端HMAC认证算法为SHA2_256和SHA2_512。
(可选)配置密钥对更新时间
ssh server rekey-interval hours
缺省情况下,SSH服务器密钥对的更新时间间隔是0,表示永不更新。
配置服务器密钥对更新时间,使得当SSH服务器的更新周期到达时,自动更新服务器密钥对,从而可以保证安全性。
(可选)配置SSH认证超时时间
ssh server timeout seconds
缺省情况下,SSH连接认证超时时间是60秒。
当设置的SSH认证超时时间到达后,如果用户还未登录成功,则终止当前连接,确保了安全性。
(可选)配置SSH认证重试次数
ssh server authentication-retries times
缺省情况下,SSH连接的认证重试次数是3。
配置SSH认证重试次数用来设置SSH用户请求连接的认证重试次数,防止非法用户登录。
(可选)配置SSH服务器的键盘交互认证方式
ssh server authentication-type keyboard-interactive enable
缺省情况下,SSH服务器的键盘交互认证方式开启。
使用口令卡认证方式的SSH用户登录,必须开启键盘交互认证方式。限定必须使用密码认证方式的SSH用户登录,如果需要关闭键盘交互认证方式,可以使用
undo ssh server authentication-type keyboard-interactive enable关闭键盘交互认证方式。
(可选)使能兼容低版本SSH协议
ssh server compatible-ssh1x enable
缺省情况下,SSH服务器兼容低版本功能处于未使能状态。
(可选)配置访问控制列表
ssh [ ipv6 ] server acl { acl-number | acl-name }
缺省情况下,没有配置访问控制列表。
配置了访问控制列表,可控制哪些客户端能以SSH方式访问本设备。
配置SSH服务器的源接口或源地址
执行命令ssh server-source -i interface-type interface-number
缺省情况下,未指定SSH服务端的源接口。
执行命令ssh server-source all-interface
缺省情况下,未指定SSH服务器的源接口。
执行命令ssh ipv6 server-source -a ipv6-address [ -vpn-instance vpn-instance-name ]
缺省情况下,未指定SSH服务端的IPv6源地址。
执行命令ssh ipv6 server-source all-interface
缺省情况下,未指定SSH服务器IPv6源接口。
成功指定SSH服务器的源接口后,系统只允许SSH用户通过指定的源接口登录服务器,通过其他接口登录的SSH用户都将被拒绝。
成功指定SSH服务器的源接口为设备上所有接口后,SSH用户可通过设备上配置了IPv4地址的物理接口、已创建并配置IPv4地址的逻辑接口登录。
说明:配置ssh server-source all-interface命令后,将不会指定SSH服务器的源接口,用户可从所有有效接口登录,增加系统安全风险,建议用户取消配置该命令。
成功指定SSH服务器的IPv6源地址后,系统只允许SFTP用户通过指定的源地址登录服务器,通过其他IPv6地址登录的SFTP用户都将被拒绝。
说明:配置ssh ipv6 server-source all-interface命令后,将不会指定SSH服务器的源IPv6接口,用户可从所有有效IPv6接口登录,增加系统安全风险,建议用户取消配置该命令。
(可选)使能SSH服务器上的客户端IP地址锁定功能
undo ssh server ip-block disable
缺省情况下,SSH服务器上的客户端IP地址锁定功能使能。
如果SSH服务器上的客户端IP地址锁定功能处于使能状态,则被锁定的客户端IP地址不能被认证通过,同时会在display ssh server ip-block list命令回显中显示被锁定的客户端IP地址。
如果SSH服务器上的客户端IP地址锁定功能去使能,则display ssh server ip-block list命令回显中会把先前锁定的客户端IP地址记录删除,新的认证失败的客户端IP地址也不会被记录显示。
说明:在SSH连接中,如果用户在5分钟内连续6次输入错误的密码,则IP地址将会被锁定5分钟,可以通过执行命令activate ssh server ip-block ip-address ip-address [ vpn-instance vpn-name ]提前对被锁定的IP地址进行解锁。
(可选)配置在一定时间内通过SSH登录服务器失败次数的告警上报门限和告警恢复门限
ssh server login-failed threshold-alarm upper-limit report-times lower-limit resume-times period period-time
缺省情况下,在5分钟内发生30次或30次以上次数登录失败,产生告警;在5分钟内登录失败次数小于20,取消告警。
(可选)配置STelnet协议报文的DSCP优先级
ssh server dscp dscp-number
缺省情况下,STelnet协议报文的DSCP优先级值为48。
提交配置
commit
-
- 生成本地RSA密钥对时,将同时生成两个密钥对:服务器密钥对和主机密钥对,二者分别包括一个公钥和一个私钥。服务器密钥对和主机密钥对的长度均为2048或者3072位。
- 生成本地DSA密钥对时,只生成一个主机密钥对,密钥对的长度为2048位。
- 生成本地ECC密钥对时,只生成一个主机密钥对,长度可为256、384、521位。缺省情况下,密钥对的长度为521位。
- 配置SSH用户登录的用户界面
在通过SSH方式登录设备前,需要配置登录时采用的VTY用户界面,使其支持SSH协议。
表6-10 配置SSH用户登录的用户界面操作步骤
命令
说明
进入系统视图
system-view
-
进入VTY用户界面视图
user-interface vty first-index [ last-index ]
-
配置VTY用户界面的认证方式为AAA
authentication-mode aaa
在缺省情况下,VTY用户界面没有验证方式。
如果配置用户界面支持的协议是SSH,必须设置VTY用户界面认证方式为AAA认证,否则protocol inbound ssh将不能配置成功。
配置VTY用户界面支持SSH协议
protocol inbound { all | ssh }
缺省情况下,用户界面支持所有协议。
(可选)VTY用户界面其他属性
具体配置请参见配置VTY用户界面
VTY用户界面的其他属性(最大个数、终端属性或用户优先级)在设备上都有缺省值,用户一般不需要另外配置。但是可以根据用户使用需求,选择配置相关属性。
提交配置
commit
-
- 配置SSH用户配置SSH用户包括配置SSH用户的验证方式,设备支持的认证方式包括RSA、password、password-rsa、DSA、password-dsa、ECC、password-ecc、x509v3-rsa、password-x509v3-rsa和all。其中:
- password-rsa认证需要同时满足password认证和RSA认证。
- password-dsa认证需要同时满足password认证和DSA认证。
- password-ecc认证需要同时满足password认证和ECC认证。
- password-x509v3-rsa认证需要同时满足password认证和x509v3-rsa认证。
- all认证是指password认证、x509v3-rsa认证、RSA、DSA或ECC认证方式满足其中一种即可。
表6-11 配置SSH用户操作步骤
命令
说明
进入系统视图
system-view
-
创建SSH用户
ssh user user-name
-
配置SSH用户的认证方式
ssh user user-name authentication-type { password | rsa | password-rsa | all | dsa | password-dsa | ecc | password-ecc | x509v3-rsa | password-x509v3-rsa }
如果没有使用ssh user user-name命令配置相应的SSH用户,则可以直接执行ssh authentication-type default password命令为用户配置SSH认证缺省采用密码认证,在用户数量比较多时,对用户使用预设密码认证方式可以简化配置,此时只需再配置AAA用户即可。
配置SSH用户的服务方式
ssh user user-name service-type { stelnet | all }
缺省情况下,SSH用户的服务方式是空,即不支持任何服务方式。
提交配置
commit
-
- password认证依靠AAA实现,当用户使用password、password-rsa、password-dsa或password-ecc认证方式登录设备时,需要在AAA视图下创建同名的本地用户。
- 如果SSH用户使用password认证,则只需要在SSH服务器端生成本地RSA、DSA或ECC密钥。如果SSH用户使用RSA、DSA或ECC认证,则在服务器端和客户端都需要生成本地RSA、DSA或ECC密钥对,并且服务器端和客户端都需要将对方的公钥配置到本地。
根据上面配置的认证方式,进行选择配置:表6-12 配置对SSH用户进行password、password-dsa、password-ecc或password-rsa认证操作步骤
命令
说明
进入系统视图
system-view
-
进入AAA视图
aaa
-
配置本地用户名和密码
local-user user-name password irreversible-cipher irreversible-cipher-password
-
配置本地用户的服务方式
local-user user-name service-type ssh
-
配置本地用户的级别
local-user user-name level level
-
退回到系统视图
quit
-
提交配置
commit
-
表6-13 配置对SSH用户进行dsa、ecc、rsa、password-dsa、password-ecc或password-rsa认证操作步骤
命令
说明
进入系统视图
system-view
-
配置SSH连接的认证类型
ssh authorization-type default root
缺省情况下,SSH连接的缺省类型为AAA。
当配置为AAA类型时,只允许配置为password认证方式;如果需要使用公钥认证方式,可以通过以下两种方式任意一种实现:- 执行此命令,配置为Root类型。
- 在AAA视图下,创建同名的本地用户。
进入RSA、DSA或ECC公共密钥视图
rsa peer-public-key key-name [ encoding-type { der | openssh | pem } ]
或
dsa peer-public-key key-name encoding-type { der | openssh | pem }
或
ecc peer-public-key key-name [ encoding-type der ]
-
进入公共密钥编辑视图
public-key-code begin
-
编辑公共密钥
hex-data
- 键入的公共密钥必须是按公钥格式编码的十六进制字符串,由支持SSH的客户端软件生成。具体操作参见相应的SSH客户端软件的帮助文档。
- 请将RSA、DSA或ECC公钥输入到作为SSH服务器的设备上。
退出公共密钥编辑视图
public-key-code end
- 如果未输入合法的密钥编码hex-data,执行本步骤后,将无法生成密钥。
- 如果指定的密钥key-name已经在别的窗口下被删除,再执行本步骤时,系统会提示:密钥已经不存在,此时直接退到系统视图。
退出公共密钥视图,回到系统视图
peer-public-key end
-
为SSH用户分配RSA、DSA或ECC公钥
ssh user user-name assign { rsa-key | dsa-key | ecc-key } key-name
-
提交配置
commit
-
- 用户通过STelnet登录设备
从终端通过STelnet登录设备,此处使用第三方软件putty为例进行介绍。
图6-10 SSH客户端配置界面(1)图6-11 SSH客户端配置界面(2)图6-12 SSH客户端配置界面(3)# 单击“Open”,出现如下界面,输入用户名和密码,并按“Enter”键,至此已登录到SSH服务器。(以下显示信息仅为示意)
图6-13 SSH客户端登录认证界面