一、原理概述
由于Telnet缺少安全的认证方式,且在传输的过程中采用了TCP进行明文传输,存在很大的安全隐患,单纯的提供Telnet服务容易导致主机IP地址欺骗,路由欺骗等恶意攻击。
STelnet是Secure Telnet的简称。在一个传统不安全的网络环境中,服务器通过对用户端的认证及双向的数据加密,为网络终端访问提供安全的Telnet服务。
SSH(Secure Shell)是一个网络安全协议,通过对网络数据的加密,使其能够在一个不安全的网络环境中,提供安全的远程登陆和其他安全网络服务。SSH特性可以提供安全的信息保障和强大的认证功能,以保护路由器不受诸如IP地址的欺诈、明文密码截取等攻击,SSH数据机密传输,认证机制更加安全,而且可以代替Telnet,已经被广泛使用,成为了当前重要的网络协议之一。
SSH 基于TCP协议22端口传输数据,支持Password认证。用户端向服务器发出Password认证请求,将用户名和密码加密后发送给服务器;服务器将该信息解密后得到的用户名和密码的明文,与设备上保存的用户名和密码进行比较,并返回认证成功或失败的消息。
二、实验
1、实验目的
(1)理解SSH的应用场景
(2)理解SSH的协议的原理
(3)掌握配置SSH Password认证的方法
2、实验内容
使用路由器R1模拟PC,作为SSH的Client;路由器R2作为SSH的Server,模拟远程用户端R1通过SSH协议远程登陆到路由器R3上进行各种配置。本实验将通过Password认证方式实验。
3、实验拓扑
4、实验步骤
(1)通过配置RIP路由协议,来保证R1与R3之间的互通
(2)配置SSH Server,成功完成SSH登陆的首要操作是配置并产生本地RSA密钥对。在进行其他SSH配置之前先要生成本地密钥对,生成的密钥对将保存在设备中,重启后不会丢失。
1)在R3上使用rsa local-key-pair create命令来生成本地RSA主机密钥对。
配置完成之后可以使用display rsa local-key-pair public命令查看本地密钥对中的公钥部分信息。
以上图中,你需要注意的是,“Time of Key pair created”描述的是公钥生成的时间。“Key name”描述的是公钥的名称。“Key type”描述的是公钥的类型。
2)在R3上配置VTY用户界面,设置用户的验证方式为AAA授权验证方式。
3)指定VTY类型用户界面只支持SSH协议,设备将自动禁止Telnet功能。
4)使用local-user命令创建本地用户和用户口令,并以密文的方式显示用户口令,指定用户名为sdnvv,密码为sdnvv123。
5)配置本地用户的接入类型为SSH。
6)使用ssh user 命令新建SSH用户,用户名为sdnvv,指定SSH用户的认证方式为Password,即密码认证方式。
此处还可以继续使用loca-user sdnvv privilege level命令配置本地用户的优先级。其取值范围为0~15,取值越大,代表用户的优先级越高。不同级别的用户登陆后,只能使用等于或低于自身级别的命令,默认值为三,代表管理级。
7)默认情况下,设备的SSH服务器功能为关闭状态,只有开启了此功能后,用户端才能以SSH方式与设备建立连接。在R3上开启设备的SSH功能。
8)配置完成后,使用display ssh user-information sdnvv命令在SSH服务器端查看SSH用户的配置信息。如果不在命令末尾指定SSH用户,则可以查看SSH服务器端所有的SSH用户配置信息。
运行display ssh server status命令,可以查看SSH服务器全局配置信息。
此时R3上STelnet Server服务器状态为启用状态。
(3)配置SSH Client
1)当SSH用户端第一次登陆SSH服务器时,用户端还没有保存SSH服务器的RSA公钥,会对服务器的RSA有效性公钥检查失败,从而导致登陆服务器失败。因此当用户端R1首次登陆时,需开启SSH用户端首次认证功能,不对SSH服务器的RSA公钥进行有效性检查。
2)在SSH用户端R1上使用stelnet命令连接SSH服务器。
登陆成功后,输入用户名sdnvv。并在提示中连续输入两次“y”,之后输入登陆口令即可成功登陆SSH服务器端R3。
第一次登陆时,由于开启了SSH用户端首次认证功能,在STelnet用户端第一次登陆SSH服务器时,将不对SSH服务器的RSA公钥进行有效性检查。登陆后,系统将自动分配并保存RSA公钥,为下次登陆时认证。
3)使用display ssh server session命令可以查看SSH服务器端的当前会话连接信息。
可以看到,用户sdnvv已经成功通过VTY线路0远程登陆上来了,用户端已经成功连接到SSH服务器,可以进行各种配置。如果要退出,使用quit命令即可。