Linux课堂:在Linux操作系统上部署SSH应用

范堡 发布于 2009/05/23 12:31
阅读 273
收藏 0

远程管理是系统管理员必须掌握的一门诀窍。如果每次服务器出现故障系统管理员都要跑到服务器前面才能够修理的话,那是一件很头疼的事情。通常情况下,Telnet或者SSH都可以实现远程连接。但是这两个协议具有很大的不同。
Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录即远程交互式计算。远程登陆是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。但是这个协议有一个弱点,就是其在互联网上进行数据传输都是通过明文的形式传输的,即不会对传输的数据(包括帐户与密码)进行加密。如此的话,非法攻击者只要有网络侦听的工具就可以轻而易举的截获帐户名与密码,为下一步的攻击做好准备。故像Telnet这类传统的网络服务程序在本质上都是不安全的,因为它们在网络上用明文传送口令和数据。非法攻击者非常容易就可以截获这些口令和数据。另外,这些服务程序的安全验证方式也有比较大的缺陷,很容易受到攻击。如中间人这种方式的攻击。所谓中间人的攻击方式,就是中间人冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被中间人一转手做了手脚之后,就会出现很严重的安全问题。
而SSH协议真实像Telnet这些不安全的远程登录程序的替代程序。SSH协议采用了很强的加密算法加密所需要传送的数据,包括帐户、密码、命令代码等等,以保证数据传输的安全性。故它比起Telnet这些远程登录程序来说,其安全级别要比他们高。另外如果要进一步提高SSH协议的安全性,则可以把Linux操作系统配置成TCP-Wrappers模式,来取得额外的安全保障。TCP-Wrappers为由inetd生成的服务提供了增强的安全性。TCP Wrappers 是一种对使用 /etc/inetd.sec 的替换方法。TCP-Wrappers提供防止主机名和主机地址欺骗的保护。欺骗是一种伪装成有效用户或主机以获得对系统进行未经授权的访问的方法。同时TCP-Wrappers使用访问控制列表来防止欺骗。访问控制列表是Linux文件中的系统列表。在配置为验证主机名到 IP 地址映射,以及拒绝使用 IP 源路由的软件包时,TCP Wrappers 提供某些防止 IP 欺骗的保护。但是,TCP Wrappers 不提供口令验证或数据加密。与 inetd 类似,信息是以明文形式传递的。而其与SSH结合使用,则可以起到互相补充的效果。因为SSH可以提供加密传输,而TCP-Wrappers可以解决欺骗的问题。故这可以让远程登录、远程维护更加安全。
一、 SSH协议的安装。
默认情况下,在安装Linxu过程中,会同时安装SSH协议。不过有时候可能SSH协议会损坏需要重新安装。或者在系统安装的过程中没有安装SSH协议而后来又要用到时就需要手工来安装SSH协议。
系统管理员可以直接从http://www.ssh.fi/网站中下载SSH软件包,或者从其他的网站中可以下载到。然后进行安装即可。这个软件包的安装难度不大,笔者不重复说明了。不过笔者要强调的一点是,为了后续维护的方便,最好在软件包编译安装之前都做一张系统中所有文件的列表,然后利用diff命令去比较他们的差异。也就是说,在软件包编译安装之前先利用find /*>test1命令做一张系统中所有文件的列表。然后这个软件包安装编译完成之后,再利用这个命令(find /*>test2)建立一张系统中现在所有文件的列表。然后再通过diff test1 test2>test3命令让系统查询出这个软件包编译安装前后系统文件的变化。系统管理员掌握这个变化,有利于其后面操作系统的维护。
二、 SSH应用的配置。

插图:SSH相关配置文件。
如上图,安装完SSH协议之后,会在系统的/etc/ssh目录下出现几个文件。其中ssh_config与sshd_config是其两个主要的配置文件。SSH应用的配置工作主要在这个两个文件中完成。作为Linux系统工程师必须要懂得这个两个文件的配置。其中ssh_config配置文件主要用来对普通的ssh协议进行配置。在这个配置文件中,允许设置一些选项来改变客户端程序的运行方式。这个配置文件中每一行都是关键词-值的格式。值得注意的是,这个关键词(笔者喜欢称之为参数)跟Linux命令有很大的不同。这里的关键词是不区分大小写的。而普通的Linux命令或者文件名字都区分大小写。故在编写这个关键词的时候,可以考虑可读性而利用大写字母来对单词进行分割。笔者下面就对这个文件的主要参数进行一些介绍,告诉大家如何来配置这个文件。
1、Linux管理员在建立SSH连接的时候,是否需要凭帐户与口令才能够建立连接呢?通常情况下,为了系统的安全笔者建议大家不要怕麻烦,还是要利用口令验证来提高SSH连接的安全性。如果需要SSH连接提供密码验证的话,则需要采用这个参数PasswordAuthentication。如果把这个参数设置为yes的话,则管理员在建立SSH连接时必须提供口令,否则的话SSH服务器有权拒绝客户端的连接请求。如果不需要的话,只要把这个参数的值设置为no即可。这里再说明一下,参数在这个配置文件中是不区分大小写。故为了参数的可读性考虑,最好采用大小写混合的格式来提高其可读性。
2、SSH协议主要用来进行远程连接。为此其反映速度就很关键。有时候我们可以通过对通信数据进行压缩来提高网络传输的速度,从而加快服务器的反映速度。如果要对通信数据进行压缩的话,可以采用Compression参数。如果设置为yes,则表示采用压缩技术提高通信速度。如果设置为no,则表示不压缩。是否需要采用这个参数要根据实际情况来处理。如果管理员只是在企业内部进行远程登录(即SSH客户端与服务器同处于一个局域网)则没有必要采用压缩,因为此时局域网的网速可以满足管理员远程管理的需要。但是若管理员是通过互联网来远程管理Linux服务器的话,则最好采用这个压缩功能,以提高网络通信的速度。

加载中
返回顶部
顶部