Telnet缺少安全的认证方式,而且传输过程采用TCP进行明文传输,存在很大的安全隐患。单纯提供Telnet服务容易招致DoS(Deny of Service)、主机IP地址欺骗、路由欺骗等恶意攻击。
随着人们对网络安全的重视,传统的Telnet和FTP通过明文传送密码和数据的方式,已经慢慢不被人接受。SSH(Secure Shell)是一个网络安全协议,通过对网络数据的加密,解决了这个问题。它在一个不安全的网络环境中,提供了安全的远程登录和其他安全网络服务。
SSH通过TCP进行数据交互,它在TCP之上构建了一个安全的通道。另外SSH服务除了支持标准端口22外,还支持其他服务端口,以防止受到非法攻击。
SSH客户端功能允许用户与支持SSH Server的路由器、UNIX主机等建立SSH连接。如图4-1、图4-2所示,可以建立SSH通道进行本地连接或广域网连接。
图4-1 在局域网内建立SSH通道
图4-2 通过广域网建立SSH通道
SFTP(SSH File Transfer Protocol)是SSH FTP的简称,是一种安全的FTP。SFTP建立在SSH连接的基础之上,远程用户可以安全地登录设备,进行文件管理和文件传送等操作,为数据传输提供了更高的安全保障。同时,由于设备提供了SFTP客户端功能,可以从本设备安全登录到远程SSH服务器上,进行文件的安全传输。
STelnet是基于SSH的安全Telnet服务。与Telnet相比,SSH服务器通过对客户端进行认证及双向的数据加密,为网络终端访问提供了安全的服务。
SCP(Secure Copy)是基于SSH的安全协议,对客户端进行认证和数据加密,以保证在传统的非安全网络环境下进行安全的文件传输。
SCP使用SSH进行数据传输和用户认证,从而确保数据传输的可靠性和机密性。客户端可以发送(上传)文件到服务器,亦可从服务器请求(下载)文件或目录。缺省情况下,SCP运行于TCP协议下的22号端口。
SSH协议的标准侦听端口号为22,攻击者不断访问标准端口,导致带宽的浪费和服务器性能的下降,致使其他正常用户无法访问,这是一种DoS(拒绝服务)攻击。
设定SSH服务端的侦听端口号为其他端口,攻击者不知道SSH侦听端口号的更改,可有效防止攻击者对SSH服务标准端口访问消耗带宽和系统资源。正常用户通过对非标准端口的SSH服务的访问,降低遭受DoS(拒绝服务)攻击可能性。
图4-3是一个通过其他端口访问SSH服务器的组网应用。
图4-3 SSH服务器支持其他端口访问
只有合法的用户采用SSH服务器设定的非标准侦听端口才能建立Socket连接,进行SSH协议的版本号协商、算法协商及会话密钥生成、认证、会话请求、会话阶段等过程。
SSH服务可以应用在网络中的中间交换设备、边缘设备上,可以实现用户对设备的安全访问和管理。
SSH通过以下措施实现在不安全网络上提供安全的远程访问:
为了保证更好的安全性,建议不要使用DES/3DES/小于2048位的RSA算法做为SSH用户的认证和数据加密方式,推荐使用更安全的ECC认证算法。
ACL是访问控制列表。通过ACL对SSH类型的用户界面限制呼入呼出权限,防止一些非法地址的用户进行TCP连接,避免其进入SSH协商,借此提高SSH服务器安全性。
图4-4 SSH支持ACL应用
目前,SSH客户端支持连接IPv6主机地址,SSH服务器支持IPv6的连接。
SSH应用
STelnet基于SSH2.0协议,客户端和服务器之间经过协商,建立安全连接,客户端可以像操作Telnet一样登录服务器。如图所示,
图4-5 SSH支持Stelnet协议
如图4-5所示,
SFTP是基于SSH2.0的安全协议。SSH支持的认证方式为:密码认证、RSA认证、password-rsa认证、DSA认证、password-dsa认证、ECC认证、SM2认证、password-ecc认证。合法用户通过客户端登录时,输入正确的用户名以及对应的密码和私钥,通过服务器的验证。此时用户可以像使用FTP一样使用,实现对网络文件的远程传输管理,而系统会对用户的数据采用协商出来的会话密钥对数据加密。
攻击者没有正确的私钥和密码,无法通过服务器的认证。并且攻击者无法获得其他用户和服务器之间的会话密钥,因此后续服务器和指定客户端的通讯报文只有指定客户端和服务器才能解密。即使攻击者窃听到通讯报文,也不能解密,实现了网络数据传输的安全性。
图4-6 SSH支持SFTP协议
SCP是基于SSH2.0的安全协议。SSH2.0支持的认证方式为:密码认证、RSA认证、password-rsa认证、DSA认证、password-dsa认证、ECC认证、SM2认证、password-ecc认证。合法用户通过客户端登录时,输入正确的用户名以及对应的密码和私钥。通过服务器的验证后,用户可以实现对网络文件的远程传输管理,而系统会对用户的数据采用协商出来的会话密钥对数据加密。
攻击者没有正确的私钥和密码,无法通过服务器的认证。并且攻击者无法获得其他用户和服务器之间的会话密钥,因此后续服务器和指定客户端的通讯报文只有指定客户端和服务器才能解密。即使攻击者窃听到通讯报文,也不能解密,实现了网络数据传输的安全性。
图4-7 SCP组网图
HUAWEI NE20E-S支持STelnet客户端、SFTP客户端、SNETCONF客户端,因此可以建立基于VPN的Socket连接,在公网设备实现如下访问:
图4-8 SSH支持私网访问
SSH协议的标准侦听端口号为22,如果攻击者不断访问标准端口,将致带宽和服务器性能的下降,导致其他正常用户无法访问。
通过设定SSH服务器端的侦听端口号为其他端口号,攻击者不知道SSH侦听端口号的更改,仍然发送标准端口号22的Socket连接,SSH服务器检测发现请求连接端口号不是侦听的端口号,就不建立Socket连接。
图4-9是一个通过其他端口访问SSH服务器的组网应用。
图4-9 SSH服务器支持其他端口访问
只有合法的用户采用SSH服务器设定的非标准侦听端口才能建立Socket连接,进行SSH协议的版本号协商、算法协商及会话密钥生成、认证、会话请求、会话阶段等过程。
SSH服务可以应用在网络中的中间交换设备、边缘设备上,可以实现用户对设备的安全访问和管理。
ACL是Access Control List的简称,中文是访问控制列表。通过ACL对SSH类型的用户界面限制呼入呼出权限,防止一些非法地址的用户进行TCP连接,避免其进入SSH协商,借此提高SSH服务器安全性。
图4-10 SSH支持ACL应用
NETCONF Agent是运行于SSH Server之上的一种应用。使用SSH建立的安全传输通道。NETCONF被用来访问配置、声明信息和修改配置信息,因此访问此协议的能力应当被限制为用户和系统。在SSH上运行NETCONF,Client需要先使用SSH传输协议来建立SSH传输连接。Client和Server为了消息的完整性而交换密钥并对密钥加密。一旦用户认证成功,Client就调用“SSH-连接”服务,即SSH连接协议。在SSH连接服务建立后,Client为SSH会话打开一个会话类型的通道。一旦SSH会话建立,用户(或者应用)调用SNETCONF作为SSH的一个子系统,这个是SSHv2的一个特性。SSH Sever确保SNETCONF子系统传输数据的可靠性和数据顺序。
图4-11 在SSH Server上应用NETCONF组网图