OpenSSH相对Telnet、FTP、rlogin、rsh、rexec这些服务来说比较安全。但是需要看到OpenSSH服务也面临一些安全隐患:但是OpenSSH现在存在几个安全遗患:口令、密匙破解(SSH能够允许任何人只要保持密码框空白并按回车键,就可远程登录密码为两个字符的某一帐户。)连同部分OpenSSH发行版本中可能被安放木马(相关链接:http://network.ccidnet.com/pub/disp/Article?columnID=239&articleID=21882&pageNO=1 ),连同拒绝服务攻击。本文将介绍如何加固OpenSSH服务器。
一、升级旧版本
升级陈旧的OpenSSH版本,因为早期的OpenSSH版本(3.0.0版本)存在的安全漏洞。2003年9月,在类Unix的世界里也出现了一个严重的漏洞:Openssh的溢出漏洞。 Openssh是远程终端登录软件,运行在类Unix上。几乎任何的类Unix发行版本都把这个软件作为缺省安装。因此这个软件出现溢出漏洞影响了几乎任何的类Unix操作系统。Redhat linux描述此漏洞的页面网址是:rhn.redhat.com/errata/RHSA-2003-279.html。特别是对于一个新配置的 OpenSSH服务器来说使用最新稳定版本是最明智的选择,能够在其官方网站(http://www.openssh.com/ )下载其源代码进行编译。最新版本是2005年9月1日发布4.2。
二、使用xinetd模式运行OpenSSH
OpenSSH能以Stand- alone、xinetd两种模式运行,当用户账号比较少又经常需要连接到ProFTPD服务器时推荐使用xinetd模式运行。使用xinetd方式运行ProFTPD能够有效防范DoS攻击。xinetd模式工作原理见:深入了解Linux的守护进程(daemons)(链接:http://www.ccw.com.cn/server/yyjq/htm2005/20050914_14ND5.htm )。
和stand-alone工作模式相比,系统不想要每一个网络服务进程都监听其服务端口。运行单个xinetd就能够同时监听任何服务端口,这样就降低了系统开销,保护系统资源。但是对于访问量大、经常出现并发访问时,xinetd想要频繁启动对应的网络服务进程,反而会导致系统性能下降。xinetd提供类似于inetd tcp_wrapper的功能,但是更加强大和安全。能有效的防止拒绝服务攻击(Denial of Services):
1、限制同时运行的进程数
通过配置instances选项设定同时运行的并发进程数:
instances=20
当服务器被请求连接的进程数达到20个时,xinetd将停止接受多出部分的连接请求。直到请求连接数低于设定值为止。
2、限制一个IP地址的最大连接数
通过限制一个主机的最大连接数,从而防止某个主机独占某个服务。
per_source=5
这里每个IP地址能够连接单个IP地址的连接数是5个。
3、限制负载
xinetd还能够使用限制负载的方法防范拒绝服务攻击。用一个浮点数作为负载系数,当负载达到这个数目的时候,该服务将暂停处理后续的连接:
max_load = 2.8
上面的例子中当一项系统负载达到 2.8时,任何服务将暂时中止,直到系统负载下降到设定值以下。说明要使用这个选项,编译时要加入--with-loadavg ,xinetd将而已处理max-load配置选项。从而在系统负载过重时关闭某些服务进程,来实现某些拒绝服务攻击。
4、限制任何服务器数目(连接速率)
xinetd能够使用cps选项设定连接速率,下面的例子:
cps = 25 60
第一个参数表示每秒能够处理的连接数,假如超过了这个连接数之后进入的连接将被暂时停止处理;第二个参数表示停止处理多少秒后继续处理先前暂停处理的连接。即服务器最多启动25个连接,假如达到这个数目将停止启动新服务60秒。在此期间不接受任何请求。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




