安全外壳协议(SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议。Secure Shell,又可记为SSH,最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH是一个好的应用程序,在正确使用时,它可以弥补网络中的漏洞。
SSH 主要有三部分组成:
传输层协议 [SSH-TRANS] 提供了服务器认证,保密性及完整性。此外它有时还提供压缩功能。 SSH-TRANS 通常运行在 TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。
用户认证协议 [SSH-USERAUTH] 用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当 SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希 H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。
连接协议 [SSH-CONNECT] 将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。
通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"。
很多情况是由于服务器提供了Telnet服务引起的。的确,对于UNIX系统,如果要远程管理它,必定要使用远程终端,而要使用远程终端,自然要在服务器上启动Telnet服务。但是Telnet服务有一个致命的弱点——它以明文的方式传输用户名及口令,所以,很容易被别有用心的人窃取口令。目前,一种有效代替Telnet服务的有用工具就是SSH服务。SSH客户端与服务器端通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听。SSH的出现使远程控制更加安全。
SSH虽然有上述优点,但还是会受到黑客的攻击,下面再谈谈如何防止SSH攻击:
1、基本配置:
有不认证,密码认证,用户名和密码认证三中方式,建议采用基于用户和密码的认证方式。如果考虑到所有网络设备进行统一认证,可以使用同一个radius服务器进行认证。具体如下:
建立一个权限是观察级别的telnet用户:
|
在tty 0 4 接口上使能用户和密码认证:
|
2、考虑到安全性,可以将认证用户的权限设置为level 0参观级别。然后使用super命令进行权限提升,综合考虑到用户名,密码,超级密码,可以说为黑客设置了三道防线。具体如下:
|
3、可以在tty接口设置acl,只允许部分ip远程telnet,是为第四道防线,具体如下:
建立一个基于源ip的acl:
|
将acl应用在vty 0 4的inbound方向:
|
4、结合以往经验,经常会有ssh攻击网络设备,虽然不会导致设备被入侵,但会占用cpu和内存等资源,可以在tty接口不允许ssh报文进入,是为第五道防线,具体如下:
在vty 0 4接口只允许telnet用户访问:
|
真正利用好SSH服务可以提高远程控制的安全性,防止口令被窃取。