为Solaris 10 配置安全的远程连接

网络整理 - 08-09
尽管在上安全shell(Secure Shell)已经提供给Solaris几年了,但是Sun仍然推出了他们自己的版本,并集成在Solaris 9和10中。SSH通过使用公共密钥密码技术允许对终端会话加密,以确保通过网络交换的数据包安全,即使这些数据被敌对的第三方截获,也不会轻易地被解密。

一、SSH和telnet的对比

  SSH对于传统的远程访问工具,比telnet是一个巨大的进步,所有的站点都应该断开telnet而使用SSH。使用 SSH 工具将会增进你的系统安全性。 所有使用 SSH 工具的通讯,包括口令,都会被加密。 telnet 和 ftp 使用纯文本口令,并被明文发送。这些信息可能会被截取,口令可能会被检索,然后未经授权的人员可能会使用截取的口令登录进你的系统而对你的系统造成危害。你应该尽可能地使用 SSH 的工具集合来避免这些安全问题。 另一个使用SSH 的原因是,它自动把 DISPLAY 变量转发给客户机器。换一句话说,如果你在本地机器上运行 X 窗口系统,并且使用 ssh 命令登录到了远程机器上,当你在远程机器上执行一个需要 X 的程序时,它会显示在你的本地机器上。如果你偏爱图形化系统管理工具,却不能够总是亲身访问该服务器,这就会为你的工作大开方便之门。

二、解读Unix的 r 命令集

  最初,UNIX的r命令集是为了提高Telnet的安全性而开发的,使用时不必在网上以明码方式输入密码(那时它是非常成功的)。r服务也提供了主机名或IP地址认证,Telnet却不能做到这些。r命令的主机名和用户名认证标志着伯克利服务是在网络安全连接方面有着重大影响的一步。UNIX的r命令引用了一系列的文件,允许与另一个主机建立一种无缝连接。这些命令包括远程登录(rlogin)、远程shell(rsh)和远程拷贝(rcp)。这三种服务都有属于自己的端口。可以查看你系统中的/etc/services文件,以确定实际的端口号。最普遍的是512用作rsh的端口号;513给rlogin;514给rexec。余下的命令使用各种不同的端口,一般通过远程过程调用(RPC服务)。这些客户端大多有自己的守护进程来完成控制,如远程shell守护进程rshd,远程执行守护进程in.rexecd、远程查询命令in.rwhod。这些进程大多可由超级进程inetd来维护。图1显示了rlogin识别与验证过程:

为Solaris 10 配置安全的远程连接

图1 rlogin识别与验证过程

三、SSH在Solaris 10 的工作流程

  SSH是简单的基于安全的客户端和服务器的解决方法。它提供了远程访问的身份验证序列的对称的和不对称的加密。它可以在客户端替代Telnet应用程序,这里的客户端可以是Solaris、windows以及其他的操作系统。SSH工作在TCP/IP层上使用一般的传输层加密机制,它使用流行的Blowflsh或者DES算法作为加密引擎。加密技术的使用使得客户程序和服务器端会话的内容容除了他们自己以外,不可能被别人知道除了对会话数据进行加密和验证序列也可以使用RSA加密进行,这意味用户名和口令不可能被第三方探测。ssH还自动提供了图形应用程序,它基于X11窗口系统,是对只有文个形式的Telnet客户程序是一个很大的提高。图2显示了SSH客户程序与服务器进行连接的过程:

为Solaris 10 配置安全的远程连接

图2 SSH客户程序与服务器进行连接的过程

  客户端连接到服务器的端口(通常是22端口)

  服务器可以使用标准公共RsA主机密钥(1024位).也可以使用每个小时更换一次的768位RSA服务器密钥回复。因为服务器密钥诲小时更换一次,即使是一个会话通信的密钥被被解,历史数据仍然处加密状态,这限制了攻击的效能。