基于SSH的网络安全解决方案
2具体应用及安全模型
具体应用时,SSH可以提供3类服务:
2.1 安全远程登录和安全远程命令执行:替代传统的telnet和rlogin,rsh命令
网络遭受攻击,很多情况是由于服务器提供了Telnet服务引起的。对于UNIX系统,如果要远程管理他,必定要使用远程终端,而要使用远程终端,自然要在服务器上启动Telnet服务。但是Telnet服务有一个致命的弱点他以明文的方式传输用户名及口令,所以,很容易被第三者窃取口令。一种有效代替Telnet服务的工具就是SSH。用户要登录到远程计算机用户账号中,可以使用命令:
#ssh username@remotecomputer
整个登录会话在客户端和服务器之间传输时都是经过加密的,从而实现了安全远程登录。
对系统管理员来说,如果要查看局域网中4台计算机(A,B,C,D)上的每个用户启动的进程,按传统方法,可以使用rsh:
#!/bin/sh
for machine in A B CDdo
rsh¥machine/usr/ucb/w
done
虽然这种方法可以达到目的,却不安全。/usr/ucb/w的结果在网络上是明文传输的。可以利用SSH代替RSH,实现安全远程命令执行。
2.2 安全文件传输:替代传统的rcp,ftp命令
传统的文件传输程序(ftp.rcp或E-mail)都不能提供一种安全的解决方案。当文件在网络上传输时,第三方总可以将其截获并读取其中的数据包。要防止这种问题,可以采取很多措施,例如,在源计算机上使用PGP(PrettyGood Privacy)之类的程序对文件进行加密,然后使用传统的方法把文件传输到目的计算机,并在此处解密文件。然而,这个过程比较复杂,而且对用户不是透明的。利用 SSH,用户只需使用一个拷贝命令scp就可以在两台计算机之间安全的传输文件:#scp name-of-source name-of-destination,文件在离开源计算机时 加密,到达目的计算机时自动解密。虽然scp命令十分有效,但用户可能更熟悉ftp的命令。sftp是在SSH之上的一个基于SFTP协议的独立的文件传输工具:
#sftp username@remotecomputersftp>
sftp>
在一个sftp会话中可以调用多个命令进行文件拷贝和处理,而scp每次调用时都要打开一个新会话。
其实,SSH并不执行文件传输。在SSH协议中没有任何传输文件的内容,SSH通信者不能请求对方通过SSH协议来发送或接收文件。scp,sftp程序并没有真正实现SSH协议,也根本没有融合什么安全特性。实际上,他们只是在一个子进程中调用SSH进行远程登录,然后传输文件,最后调用SSH关闭本次连接而已。
2.3 转发:包括对各种TCP应用的端口转发以及X11连接转发
SSH可以增加基于TCP/IP的应用程序的安全性。这是通过一种称为转发(forwarding)或隧道(tunneling)的技术来实现的。该技术通过对TCP/IP连接进行重新路由,使其通过SSH连接传输,并且透明地进行端到端的加密(实际上,这已经算是基本的VPN功能了)。
2.3.1 端口转发(port forwarding)
SSH使用的传输机制是TCP/IP,通常使用的都是服务器的TCP端口22,并对经过连接传输的数据进行加解密操作。用SSH对其他应用程序在别的TCP端口上建立的TCP/IP传输进行加密和解密,这一过程称为端口转发。端口转发可以使telnet,pop3,smtp,nntp和imap等基于TCP/IP的不安全协议变得安全。
假设用户要在家里的主机H上运行一个Email阅读程序,访问位于企业局域网内部的一台IMAP服务器S。要使IMAP连接通过SSH隧道,就得在主机H上选择一个本地端口(1 024~65 535),将其发送至远程套接字(S,143)。假设随机选取本地端口2003,则创建隧道的命令为:#sshL2003:localhost:143 S,其中,-L表明是本地转发,此时TCP客户端与SSH客户端同在本地主机上。现在,Email阅读程序连接本地套接字(localhost,2003)即可安全的阅读IMAP服务器上的邮件。
远程转发与本地转发几乎完全相同,只是方向相反,此时TCP客户端在远程,服务器在本地,转发连接由远程主机发起(其创建隧道的命令为#ssh-R2003:localhost:143 H)。
一般意义上讲,SSH端口转发是TCP使用的一种通用代理机制,而且只能用于TCP/IP协议,如果协议不是基于TCP的,比如基于UDP的DNS,DHCP,NFS和NetBIOS或者非IP类协议,如AppleTalk或Novell的SPX/IPX,就不能使用端口转发机制。
2.3.2 X转发
XWindow是Unix工作站上很流行的窗口系统,其中一项重要功能就是他的透明性。用户可以运行远程X应用程序,并将其显示在本地机器上。但是机器间的通讯不安全,他完全暴露在窥探器之下。利用SSH,可以将X协议连接导入SSH连接,以保障其安全性,并提供更强的认证,此项功能称为X转发。X转发是端口转发的一个特例,SSH对此提供特别支持。
以SSH2.0协议的实现为例,在客户端配置文件中将关键字ForwardX11设置成yes或no来启用或禁用X转发。服务器范围配置关键字X11Forwarding及其同义词ForwardX11和AllowX11Forwarding可以在服务器端启用/禁用X转发。
在以上SSH所提供的3种服务的基础上,可以建构基于SSH的网络安全模型,如图1所示。
- 为客户端与服务器端的通信安全保驾护航 (05-01)
- 巧用方法确保Linux系统中SSH的安全性(08-13)
- Ubuntu Linux系统通过SSh远程管理服务器(10-26)
- 用电信息采集系统EPON建设方案(07-27)
- 宝德科技校园网网络安全解决方案(02-14)
- 中小企业防病毒侵扰的低成本解决方案(02-19)