一、原理概述
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-3 | 实验编址 | |||
设备 | 接口 | IP地址 | 子网掩码 | 默认网关 |
R1 | GE0/0/0 | 10.1.1.254 | 255.255.255.0 | N/A |
R2 | GE0/0/0 | 10.1.1.1 | 255.255.255.0 | 10.1.1.254 |
R3 | GE0/0/0 | 10.1.1.2 | 255.255.255.0 | 10.1.1.254 |
六、实验步骤
1)基本配置
根据实验编址进行相应的基本配置,并使用ping命令检测各直连链路的连通性。这里以用户主机和默认网关间的连通性为例。
[R2]ping 10.1.1.254PING 10.1.1.254: 56 data bytes, press CTRL_C to breakReply from 10.1.1.254: bytes=56 Sequence=1 ttl=255 time=110 msReply from 10.1.1.254: bytes=56 Sequence=2 ttl=255 time=60 msReply from 10.1.1.254: bytes=56 Sequence=3 ttl=255 time=70 msReply from 10.1.1.254: bytes=56 Sequence=4 ttl=255 time=30 msReply from 10.1.1.254: bytes=56 Sequence=5 ttl=255 time=60 ms--- 10.1.1.254 ping statistics ---5 packet(s) transmitted5 packet(s) received0.00% packet lossround-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 authenticationPassword:
Info: The max number of VTY users is 10, and the numberof 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 authenticationPassword:
Info: The max number of VTY users is 10, and the numberof 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 authenticationPassword:
Info: The max number of VTY users is 10, and the numberof 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 authenticationUsername:admin
Password:
Info: The max number of VTY users is 10, and the numberof 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这种主要传输文本信息的应用场景。
- **流量控制和拥塞控制**
2)Telnet安全吗?为什么?
根据抓包分析,Telnet在网络中传输使用的是明文方式传输,不安全。