必备知识
1、Stelnet
在Telnet登录中缺少安全的认证,其传输过程采用的是TCP进行明文传输,存在较大的安全隐患。且单纯的提供Telnet服务易产生主机IP地址欺骗、路由欺骗等恶意攻击。
Stelnet(Secure Telecommunication Network Protocol), 它是在一个传统不安全的网络环境下,服务器通过对用户端的认证及双向的数据加密,为网络中端访问提供安全的Telnet服务。注:在跨越互联网的远程登录管理中,建议使用SSH协议。
2、认证模式
设备支持的认证方式包括RSA、password、password-rsa和all。其中:
password-rsa认证需要同时满足password认证和RSA认证。
all认证是指password认证、RSA认证方式满足其中一种即可。
说明:
如果SSH用户使用password认证,则只需要在SSH服务器端生成本地RSA密钥。
如果SSH用户使用RSA认证,则在服务器端和客户端都需要生成本地RSA密钥对,并且服务器端和客户端都需要将对方的公钥配置到本地。
应用场景
Stelnet与telnet一样,也是以C/S模式运行。Stelnet服务器端口号默认是22,服务器通过该端口与客户端建立Stelnet连接。
在Telnet登录中缺少安全的认证,其传输过程采用的是TCP进行明文传输,存在较大的安全隐患。且单纯的提供Telnet服务易产生主机IP地址欺骗、路由欺骗等恶意攻击。
Stelnet(Secure Telecommunication Network Protocol), 它是在一个传统不安全的网络环境下,服务器通过对用户端的认证及双向的数据加密,为网络中端访问提供安全的Telnet服务。
注:在跨越互联网的远程登录管理中,建议使用SSH协议。
网络环境拓扑
配置流程
1、配置STelnet 服务器功能及参数
1) 服务器本地密钥对生成;
2) STelnet服务器功能的开启;
3) 服务器参数的配置(可选):端口号、密钥对更新时间、SSH认证超时时间以及SSH认证重试次数等。
2、配置SSH 用户登录的用户界面
1) 用户优先级;
2) 用户认证方式;
3) 支持SSH协议;
4) 其他基本属性。
3、配置SSH 用户
1) SSH用户名和密码;
2) 认证方式;
3) 服务方式。
4、用户通过STelnet 登录设备
从终端或设备上通过SSH客户端软件登录设备。
配置步骤
Step1:配置 STelnet 服务器功能及参数
(1)生成本地RSA密钥对
system-view
rsa local-key-pair create
密钥对生成后,可以执行display rsa local-key-pair public命令查看本地密钥对中的公钥部分信息。
[R1]display rsa local-key-pair public
=====================================================
Time of Key pair created: 2020-01-29 17:06:03-08:00
Key name: Host
Key type: RSA encryption Key
=====================================================
Key code:
3047
0240
D3F62DAC 7632D009 16BA7C79 379A9CBE 1F080972
7B6E1C4D A59A8A80 9B9A52F2 3517216B 52179C68
86AD47B9 8C26BF30 E6C951D8 0408D881 CD9C6A79
F2FD6F0B
0203
010001
=====================================================
Time of Key pair created: 2020-01-29 17:06:10-08:00
Key name: Server
Key type: RSA encryption Key
=====================================================
Key code:
3067
0260
B3E7BB8A B40ACAC0 C95AD565 41EBFD56 2063CA36
52242C0E C3FD13F7 89CFA43C A56424C0 AE25573A
0A1A2302 1A2168E7 2C5478B9 033E14E0 AD43B322
F6FD6A30 8AE5DBD4 701CE253 93962D5E 0966416F
5783C941 D5922ED9 D027C6A1 83F0469F
0203
010001
[R1]
(2)使能STelnet服务器功能
stelnet server enable
说明:在缺省情况下,STelnet服务功能未使能,关闭SSH服务器的STelnet服务后,所有的客户端将断开连接。
(3)配置SSH服务器端口号(可选)
ssh server port 2020
在缺省情况下,SSH服务器端的端口号是22。
如果配置了新的端口号,SSH服务器端先断开当前已经建立的所有STelnet连接,然后使用新的端口号开始尝试连接。这样可以有效防止攻击者对SSH服务标准端口的访问,确保安全性。
(4)配置密钥对更新时间(可选)
ssh server rekey-interval hours
在缺省情况下,SSH服务器密钥对的更新时间间隔是0,表示永不更新。
配置服务器密钥对更新时间,使得当SSH服务器的更新周期到达时,自动更新服务器密钥对,从而可以保证安全性。
(5)配置SSH认证超时时间(可选)
ssh server timeout seconds
在缺省情况下,SSH连接认证超时时间是60秒。
当设置的SSH认证超时时间到达后,如果用户还未登录成功,则终止当前连接,确保了安全性。
(6)配置SSH认证重试次数(可选)
ssh server authentication-retries times
在缺省情况下,SSH连接的认证重试次数是3。
配置SSH认证重试次数用来设置SSH用户请求连接的认证重试次数,防止非法用户登录。
(7)使能兼容低版本SSH协议(可选)
ssh server compatible-ssh1x enable
在缺省情况下,SSH2.0协议的服务器是兼容SSH1.X服务器功能的。
(8)配置SSH服务器允许客户端通过合法的物理接口连接(可选)
ssh server permit interface{ interface-type interface-number } &<1-5>
在缺省情况下,SSH服务器允许客户端通过所有物理接口连接。
Step2:配置SSH用户登录的用户界面
在通过SSH方式登录设备前,需要配置登录时采用的VTY用户界面,使其支持SSH协议。
(1)进入VTY用户界面视图
system-view
user-interface vty 0 4
(2)配置VTY用户界面的认证方式为AAA
authentication-mode aaa
在缺省情况下,Console用户界面的验证方式为password,VTY用户界面的验证方式为aaa。
如果配置用户界面支持的协议是SSH,必须设置VTY用户界面认证方式为AAA认证,否则protocol inbound ssh将不能配置成功。
(3)配置VTY用户界面支持SSH协议
protocol inbound { all |ssh }
在缺省情况下,用户界面支持的协议是Telnet。如果不配置VTY用户界面支持SSH协议,则用户不能通过STelnet登录设备。
(4)VTY用户界面其他属性(可选)
VTY用户界面的其他属性:(最大个数、终端属性或用户优先级)在设备上都有缺省值,用户一般不需要另外配置。也可根据用户使用需求,选择配置相关属性。
Step3:配置SSH用户
配置SSH用户包括配置SSH用户的验证方式,设备支持的认证方式包括RSA、password、password-rsa和all。其中:
l password-rsa认证需要同时满足password认证和RSA认证。
l all认证是指password认证、RSA认证方式满足其中一种即可。
说明
l 如果SSH用户使用password认证,则只需要在SSH服务器端生成本地RSA密钥。
l 如果SSH用户使用RSA认证,则在服务器端和客户端都需要生成本地RSA密钥对,并且服务器端和客户端都需要将对方的公钥配置到本地。
(1)进入AAA视图
system-view
aaa
(2)创建SSH用户
local-user huawei01 password cipher huawei01
(3)配置SSH用户的用户级别
local-user huawei01 privilege level 15
(4)配置SSH用户的服务类型
local-user huawei01 service-type ssh
quit
(5)配置SSH用户的认证方式
ssh user huawei01 authentication-type { password | rsa |password-rsa | all }
若配置对SSH用户进行以下认证:
l rsa
l password-rsa
1> 进入RSA公共密钥视图
rsa peer-public-key huawei01
2> 进入公共密钥编辑视图
public-key-code begin
3> 编辑公共密钥
hex-data
l 键入的公共密钥必须是按公钥格式编码的十六进制字符串,由支持SSH的客户端软件生成。
l 请采用拷贝粘贴方式将RSA公钥配置到作为SSH服务器的设备上。
4> 退出公共密钥编辑视图
public-key-code end
5> 退出公共密钥视图,回到系统视图
peer-public-key end
6> 为SSH用户分配RSA公钥
ssh user huawei01 assign rsa-key huawei01
Step4:配置设备首次连接SSH
作为客户端的设备首次连接SSH服务器时,因为客户端还没有保存过SSH服务器的公钥,无法对SSH服务器有效性进行检查,这样会导致连接不成功。可以通过下面两种方式来解决:
方式1:使能SSH客户端首次认证功能方式
不对SSH服务器的公钥进行有效性检查,确保首次连接成功。成功连接后,系统将自动分配并保存公钥,为下次连接时认证使用。
ssh client first-time enable //使能SSH客户端首次认证功能
缺省情况下,SSH客户端首次认证功能是关闭的。
方式2:SSH客户端为SSH服务器分配公钥方式
将服务器端产生的公钥直接保存至客户端,保证在首次连接时SSH服务器有效性检查能够通过。此种方式配置较复杂,但安全性更高。
1> 进入RSA公共密钥视图
rsa peer-public-key huawei01
2> 进入公共密钥编辑视图
public-key-code begin
3> 编辑公共密钥
hex-data
l 键入的公共密钥必须是按公钥格式编码的十六进制字符串,由支持SSH的客户端软件生成。
l 请采用拷贝粘贴方式将RSA公钥配置到作为SSH服务器的设备上。
4> 退出公共密钥编辑视图
public-key-code end
5> 退出公共密钥视图,回到系统视图
peer-public-key end
6> 为SSH服务器绑定RSA公钥
ssh client 1.1.1.1 assign rsa-key huawei01
如果SSH客户端保存的SSH服务器公钥失效,执行命令undo ssh client servername assign rsa-key,取消SSH服务器与RSA公钥的绑定关系,再执行本命令,为SSH服务器重新分配RSA公钥。
Step5:用户通过STelnet登录设备
从设备使用Stelnet远程登录命令登录服务器。
[R2]stelnet 1.1.1.1
Please input the username:huawei01
Trying 1.1.1.1 ...
Press CTRL+K to abort
Connected to 1.1.1.1 ...
Enter password:huawei01(不显示)
------------------------------------------------------
User last login information:
------------------------------------------------------
Access Type: SSH
IP-Address : 172.16.4.2 ssh
Time : 2020-01-29 17:13:14-08:00
----------------------------------------------------
<R1>q
Configuration console exit, please retry to log on
[R2]
验证配置结果
(1)display ssh user-information [ username ]
在SSH服务器端查看SSH用户信息。如果不指定SSH用户,则可以查看SSH服务器端所有的SSH用户信息。
<R1>display ssh user-information
---------------------------------------------------------------------
Username Auth-type User-public-key-name
---------------------------------------------------------------------
huawei01 password huawei01
---------------------------------------------------------------------
<R1>
(2)display ssh server status
查看SSH服务器的全局配置信息。
<R1>display ssh server status
SSH version :1.99
SSH connection timeout :60 seconds
SSH server key generating interval :0 hours
SSH Authentication retries :3 times
SFTP Server :Disable
Stelnet server :Enable
<R1>
(3)display ssh server session
在SSH服务器端查看与SSH客户端连接的会话信息。
<R1>display ssh server session
--------------------------------------------------------------------
Conn Ver Encry State Auth-type Username
--------------------------------------------------------------------
VTY 0 2.0 AES run password huawei01
--------------------------------------------------------------------
<R1>
参考配置文档
R1
<R1>dis cu
#
sysname R1
#
rsa peer-public-key huawei01
public-key-code begin
3067
0260
B3E7BB8A B40ACAC0 C95AD565 41EBFD56 2063CA36 52242C0E C3FD13F7 89CFA43C
A56424C0 AE25573A 0A1A2302 1A2168E7 2C5478B9 033E14E0 AD43B322 F6FD6A30
8AE5DBD4 701CE253 93962D5E 0966416F 5783C941 D5922ED9 D027C6A1 83F0469F
0203
010001
public-key-code end
peer-public-key end
#
aaa
local-user huawei01 password cipher huawei01
local-user huawei01 privilege level 15
local-user huawei01 service-type ssh
#
interface GigabitEthernet0/0/0
ip address 172.16.4.1 255.255.255.0
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 172.16.4.0 0.0.0.255
#
ssh user huawei01 assign rsa-key huawei01
stelnet server enable
#
user-interface maximum-vty 10
user-interface con 0
authentication-mode password
user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
user-interface vty 5 9
R2
[R2]dis cu
#
sysname R2
#
rsa peer-public-key 1.1.1.1
public-key-code begin
3047
0240
D3F62DAC 7632D009 16BA7C79 379A9CBE 1F080972 7B6E1C4D A59A8A80 9B9A52F2
3517216B 52179C68 86AD47B9 8C26BF30 E6C951D8 0408D881 CD9C6A79 F2FD6F0B
0203
010001
public-key-code end
peer-public-key end
#
interface GigabitEthernet0/0/0
ip address 172.16.4.2 255.255.255.0
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
#
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 172.16.4.0 0.0.0.255
#
ssh client 1.1.1.1 assign rsa-key 1.1.1.1
ssh client first-time enable
R3
<R3>display current-configuration
#
sysname R3
#
rsa peer-public-key huawei02
public-key-code begin
3067
0260
E503E768 E0EFF90F 2169F47D 3F8571CC F5A6A1E4 03C08AA8 AF3EAD21 EEC91B07
7595DCD3 2BE8684F 226AE874 E65F0AF2 F470A1FE 9FBF7341 F0B2DA0A BBF05B34
12722F7F 7D9A3795 DEBD6D0A 0AB77064 F9DA48F2 30994853 B81A29DA 64D07F3F
0203
010001
public-key-code end
peer-public-key end
#
aaa
local-user huawei02 password cipher huawei02
local-user huawei02 privilege level 15
local-user huawei02 service-type ssh
#
interface GigabitEthernet0/0/0
ip address 172.16.3.1 255.255.255.0
#
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
#
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 172.16.3.0 0.0.0.255
#
ssh user huawei02 authentication-type password-rsa
stelnet server enable
#
user-interface con 0
authentication-mode password
user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
R4
<R4>display current-configuration
#
sysname R4
#
rsa peer-public-key huawei02
public-key-code begin
3047
0240
B73AD9F7 1DFAF6AD 8B203250 D80589BA 4EE7B80A DF4E61AA 6976EAC4 C21349B8
AC450476 9FCB9957 D97CF453 001E6D35 6F62A831 4220F8F5 D9EB9640 D1F7C4C9
0203
010001
public-key-code end
peer-public-key end
#
interface GigabitEthernet0/0/0
ip address 172.16.3.2 255.255.255.0
#
interface LoopBack0
ip address 4.4.4.4 255.255.255.255
#
ospf 1 router-id 4.4.4.4
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 172.16.3.0 0.0.0.255
#
ssh client 3.3.3.3 assign rsa-key huawei02
ssh client first-time enable
问题与思考
1、Stelnet登录服务不成功,原因分析及修改措施。
(1)查看SSH服务器端的SSH服务是否启动。
通过STelnet方式登录服务器端,执行命令display ssh server status,查看SSH服务器端配置信息。
如果STelnet没有使能,执行如下命令stelnet server enable,使能SSH服务器端的STelnet服务。
(2)在SSH服务器端上查看VTY类型用户界面视图下允许接入的协议配置是否正确。
在SSH服务器端上执行命令user-interface vty进入用户界面视图,执行命令display this,查看VTY用户界面的protocol inbound是否为ssh或者all。如果不是,执行命令protocol inbound { ssh | all }修改配置,允许STelnet类型用户接入设备。
(3)查看在SSH服务器端是否配置了RSA公钥。
设备作为SSH服务器时,必须配置本地密钥对。
在SSH服务器端上执行命令display rsa local-key-pair public查看当前服务器端密钥对信息。如果显示信息为空,则表明没有配置服务器端密钥对,执行命令rsa local-key-pair create创建。
(4)查看SSH服务器端上是否配置了SSH用户。
执行命令display ssh user-information,查看SSH用户的配置信息。如果不存在配置信息,请在系统视图下执行命令ssh user authentication-type,新建SSH用户并配置SSH用户的认证方式
(5)查看登录SSH服务器端的用户数是否到达了上限。
从Console口登录到设备,执行命令display users,查看当前的VTY通道是否全部被占用。缺省情况下,VTY通道允许的最大用户数是5个,可以先执行命令display user-interface maximum-vty,查看当前VTY通道允许的最大用户数。
如果当前的用户数已经达到上限,可以执行命令user-interface maximum-vty 15,将VTY通道允许的最大用户数扩展到15个。
(6)查看SSH服务器端上VTY类型用户界面下是否绑定了ACL。
在SSH服务器端上执行命令user-interface vty进入SSH用户会使用的界面视图,执行命令display this,查看VTY用户界面是否配置了ACL限制,如果配置了ACL限制,请记录该ACL编号。
在SSH服务器端上执行命令display acl acl-number,查看该访问控制列表中是否deny了STelnet客户端的地址。如果deny客户端的IP地址,则在ACL视图下,执行命令undo rule rule-id,删除deny规则,再执行命令rule permit source source-ip-address soucer-wildcard,修改访问控制列表permit客户端的IP地址访问。
(7)查看SSH客户端和服务器上SSH版本信息。
在SSH服务器上执行命令display ssh server status,查看SSH版本信息。
如果使用SSHv1版本的客户端登录服务器,则执行命令ssh server compatible-ssh1x enable配置服务器端版本兼容使能。
(8)查看SSH客户端是否使能了首次认证功能。
在SSH客户端的系统视图下执行命令display this,查看SSH客户端是否使能SSH客户端首次认证功能。
如果没有使能SSH客户端首次认证功能,则STelnet客户端第一次登录SSH服务器时,由于对SSH服务器的RSA公钥有效性检查失败,而导致登录服务器失败。执行命令ssh client first-time enable使能SSH客户端首次认证功能。