一、原理概述
Telnet(Telecommunication Network Protocol)起源于ARPANET,是最早的Internet应用之一。
Telnet 通常用在远程登录应用中,以便对本地或远端运行的网络设备进行配置、监控和维护。如网络中有多台设备需要配置和管理,用户无需为每一台设备都连接一个用户终端进行本地配置,可以通过Telnet方式在一台设备上对多台设备进行管理或配置。如果网络中需要管理或配置的设备不在本地时,也可以通过Telnet方式实现对网络中设备的远程维护,极大地提高了用户操作的灵活性。
二、实验目的
- 理解Telnet的应用场景
- 掌握Telnet的基本配置
- 掌握Telnet密码验证的配置
- 掌握Telnet用户级别的修改方法
三、实验内容
本实验模拟公司网络场景。路由器R1是公司机房的一台设备,公司员工的办公区与机房不在同一个楼层,路由器R2和R3模拟员工主机,通过交换机S1与机房设备相连。为了方便用户的管理,现需要在路由器R1上配置Telnet使用户能在办公区远程管理机房设备。为了提高安全性,Telnet需要使用密码认证,只有网络管理员能对设备进行配置和管理,普通用户仅能监控设备。
四、实验拓扑
配置通过Telnet登录系统的拓扑如图1-36所示。
图1-36 配置通过Telnet登录系统拓扑
五、实验编址
实验编址见表1-3。
六、实验步骤
1)基本配置
根据实验编址进行相应的基本配置,并使用ping命令检测各直连链路的连通性。这里以用户主机和默认网关间的连通性为例。
[R2]ping 10.1.1.254
PING 10.1.1.254: 56 data bytes, press CTRL_C to break
Reply from 10.1.1.254: bytes=56 Sequence=1 ttl=255 time=110 ms
Reply from 10.1.1.254: bytes=56 Sequence=2 ttl=255 time=60 ms
Reply from 10.1.1.254: bytes=56 Sequence=3 ttl=255 time=70 ms
Reply from 10.1.1.254: bytes=56 Sequence=4 ttl=255 time=30 ms
Reply from 10.1.1.254: bytes=56 Sequence=5 ttl=255 time=60 ms
--- 10.1.1.254 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 30/66/110 ms
2)配置Telnet的密码验证
为了方便公司员工对机房设备进行远程管理和维护,首先需要在路由器上配置Telnet 功能。为了提高网络安全性,可在使用Telnet时进行密码认证,只有通过认证的用户才有权限登录设备。
在R1上配置Telnet验证方式为密码验证方式,密码为huawei,并设置验证密码以密文方式存储,在配置文件中以加密的方式显示密码,能够使密码不容易被泄露。
##在R1上配置vty认证方式为password,密码为huawei
[R1]user-interface vty 0 4
[R1-ui-vty0-4]authentication-mode password
[R1-ui-vty0-4]set authentication password cipher huawei
[R1-ui-vty0-4]quit
##在用户设备R2、R3上使用telnet连接R1。
<R2>telnet 10.1.1.254
Trying 10.1.1.254 ...
Press CTRL+K to abort
Connected to 10.1.1.254 ...
Login authentication
Password:
Info: The max number of VTY users is 10, and the number
of current VTY users on line is 1.
The current login time is 2024-10-08 14:25:21.
<R1>
<R3>telnet 10.1.1.254
Trying 10.1.1.254 ...
Press CTRL+K to abort
Connected to 10.1.1.254 ...
Login authentication
Password:
Info: The max number of VTY users is 10, and the number
of current VTY users on line is 2.
The current login time is 2024-10-08 14:25:44.
<R1>
可以观察到R2和R3在连接R1的过程中,要求输入认证密码,只有当输入正确的密码后才能进入R1的用户界面。
登录成功后,可以继续使用 display users 命令查看已经登录的用户信息。
3)配置Telnet区分不同用户的权限
为了进一步保证网络的安全性及稳定性,避免员工错误更改设备的配置,公司要求普通员工只能拥有设备的监控权限,只有网络管理员拥有设备的配置和管理权限。默认情况下,VTY用户界面的用户级别为0(参观级),只能使用ping、tracert等网络诊断命令。
在R1上配置Telnet的用户级别为1(监控级)。普通员工仅使用密码登录设备,只能使用 display 等命令监控设备。
在R1上配置Telnet的用户级别为1(监控级),普通员工仅使用密码登录设备,只能使用 display 等命令监控设备。
##指令“user privilege level 1”设置用户级别为1.
[R1]user-interface vty 0 4
[R1-ui-vty0-4]authentication-mode password
[R1-ui-vty0-4]set authentication password cipher huawei
[R1-ui-vty0-4]user privilege level 1
[R1-ui-vty0-4]quit
配置完成后,将R2模拟成普通用户设备,测试到R1的Telnet连接。
<R2>telnet 10.1.1.254
Trying 10.1.1.254 ...
Press CTRL+K to abort
Connected to 10.1.1.254 ...
Login authentication
Password:
Info: The max number of VTY users is 10, and the number
of current VTY users on line is 2.
The current login time is 2024-10-08 14:31:43.
<R1>system-view
^
Error: Unrecognized command found at '^' position.
可以观察到,此时输入正确的密码后即可进入R1的用户视图,但是在试图进入R1的系统视图时被拒绝了,这是因为用户级别不够,所以无法执行更高一级的命令。
管理员使用自己单独的用户名和密码登录设备,拥有设备的配置和管理权限。这里要将VTY用户界面的认证模式修改成AAA认证,这样才能使用本地的用户名和密码进行认证。默认情况下,设备的AAA认证功能是开启的,所以只需要为管理员在本地配置相应的用户名和密码即可。
下面模拟进入AAA视图下配置本地用户名admin和密文密码hello,并且将该用户的用户级别修改为3(管理级)。
[R1]aaa
[R1-aaa]local
[R1-aaa]local-user admin password cipher hello privilege level 3
[R1-aaa]local-user admin service-type telnet
##配置该用户的接入类型为Telnet。
[R1-aaa]quit
##接下来进入VTY用户界面视图下,将认证模式改成AAA。
[R1]user-interface vty 0 4
[R1-ui-vty0-4]authentication-mode aaa
[R1-ui-vty0-4]quit
将R3模拟成管理员用户设备,测试到R1的Telnet连接。
<R3>telnet 10.1.1.254
Trying 10.1.1.254 ...
Press CTRL+K to abort
Connected to 10.1.1.254 ...
Login authentication
Username:admin
Password:
Info: The max number of VTY users is 10, and the number
of current VTY users on line is 1.
The current login time is 2024-10-08 14:36:31.
<R1>system-view
Enter system view, return user view with Ctrl+Z.
7、思考
- Telnet是基于TCP协议还是UDP协议的应用?为什么?
- Telnet应用安全吗?为什么?
1)根据抓包结果显示Telnet使用的时候TCP协议。至于为什么使用TCP协议请查看下边的解析
- **可靠性需求**
- Telnet是一种用于远程登录的应用层协议,它需要可靠地传输用户输入的命令和服务器返回的响应。TCP(传输控制协议)提供了可靠的字节流服务,通过序列号、确认应答、重传机制等来保证数据的可靠传输。 -
- 例如,当用户通过Telnet远程登录到一台服务器并输入命令(如查看文件列表的“ls”命令)时,TCP协议会确保这个命令完整、准确地传输到服务器端。如果在传输过程中出现数据包丢失或损坏的情况,TCP会自动重传丢失或损坏的数据包,以保证命令能够被服务器正确接收。
- **连接导向性**
- Telnet需要建立一个持续稳定的连接来进行交互式的远程登录操作。TCP是面向连接的协议,在通信双方进行数据传输之前,需要先通过三次握手建立连接。
- 比如,当客户端想要使用Telnet登录服务器时,首先会通过TCP的三次握手过程与服务器建立连接。这个过程包括客户端发送SYN(同步)包,服务器返回SYN - ACK(同步 - 确认)包,客户端再发送ACK(确认)包,这样就建立了一个全双工的连接。之后,双方就可以在这个连接上进行数据的双向传输,包括用户输入的命令和服务器返回的响应,直到连接被正常关闭或者出现异常情况。
- **字节流传输模式**
- Telnet需要传输字符序列,包括用户在终端输入的各种命令、文本等,以及服务器返回的文本格式的响应。TCP提供了字节流服务,它把应用程序交下来的数据看成一连串无结构的字节流。
- 例如,用户通过Telnet客户端输入了一段包含多个命令的文本,TCP会将这些命令作为字节流进行传输,而不会对字节流的内容进行额外的结构化处理。在服务器端,接收的数据也是按照字节流的顺序进行处理,这种传输模式非常适合Telnet这种主要传输文本信息的应用场景。
- **流量控制和拥塞控制**
- 在网络环境中,可能会出现发送方发送数据速度过快,超过接收方处理能力的情况,或者网络出现拥塞的情况。TCP具有流量控制和拥塞控制机制。 - 对于Telnet来说,流量控制机制可以确保服务器能够处理客户端发送的命令。
- 例如,如果客户端快速连续地输入多个复杂的命令,TCP的流量控制会使服务器不会因为接收过多的数据而出现缓冲区溢出等问题。同时,拥塞控制机制可以使Telnet的传输适应网络的整体状况,当网络拥塞时,自动调整发送数据的速度,避免加重网络拥堵。
2)Telnet安全吗?为什么?
根据抓包分析,Telnet在网络中传输使用的是明文方式传输,不安全。