本人接触Windows服务器管理五年多,感觉最容易出问题的就是虚拟主机服务器,这种服务器由于承载的服务多(一般必须有HTTP/FTP/数据库),使用的人多,数据多导致安全性难以保障.下面是我总结的一些经验,给大家分享也欢迎大家补充.
首先我简单分析一下安全问题的由来,也就是黑客一般喜欢的攻击模式。简单的来说就是三个步骤。
1、找漏,找服务器上的漏洞,这些漏洞又分为几类,其一是网页程序(asp,php等等)的漏洞,这类漏洞一般是由网页设计者造成的;其二是服务器软件的漏洞,比如ServU的某些版本就有漏洞;其三是Windows系统的漏洞;再有就是弱密码的漏洞。
2、挂马,找到服务器漏洞之后,一般的方法就是利用这些漏洞上传后门程序,后门程序也已网页木马见长;当然这不是必要的步骤,直接利用溢出或注入构造执行代码更凶猛。
3、提权,挂上木马之后,就需要提升权限,否则也只能干一些GUEST组才能干的事情,提权的方法仍然是利用漏洞,当然这时就不能再利用网页漏洞了。如果黑客是直接溢出执行构造代码的,则可能无需提权。
知道了黑客的主要攻击模式,那我们就可以针对其模式来进行阻挡。
首先,要查漏,尤其是服务器软件和Windows系统的漏,定期更新系统补丁、根据相关的标准选择服务器软件可以做到这一点。比如,FTP服务器软件中,我就不愿意选ServU,因为用的人多,被找出漏洞的可能性也大,微软自带的FTP服务器很稳定,但是不太好用,我还推荐CuteFTP公司出的Secure FTP Server,由于用户群小所以相对来说安全一些。其次,可能的话要检查网站代码的漏洞,这些漏洞比较容易出现在支持浏览器文件上传的地方,一般是扩展名检查不严格,另外,执行数据库查询的地方要严格检查SQL语句的构造方式,防止黑客注入(当然,虚拟主机服务器上网站太多,而且鱼龙混杂,要检查此项几乎是不现实的)。最后就是要杜绝弱密码,一般来说密码要8位以上且同时包含数字、字母和符号。
其次,要防写,所谓防写,就是服务器上的文件系统权限设置要严格,不需要的权限一律撤销。我建议为每一个网站单独建立一个无分组的系统帐户,并在IIS中设置不同的网站以不同的帐户执行。这样的帐户只对其所属网站的根目录有相关权限,其他操作一律不允许,如果该网站不需要上传文件和静态发布,可以连本目录的写权限都不给,这样一来,即使被黑客找到了漏洞,他也只能在该网站的目录中读写文件,可以防止扩散和交叉沦陷。
最后,要夺权,所谓夺权,是夺服务器软件的权,比如ServU、MSSQL、MySQL等等,因为黑客挂马成功后提权几乎都是依靠这些服务器软件的,如果这些软件自己都无权,那也就不可能作为提权的工具了。我有一台服务器上装了ServU,有人在上面想用ServU提权,结果不成功,我去看时,发现ServU里多了个域还多了个有执行权限的帐户,但是即使这样,他也无法取得服务器的控制权,就是因为我修改过ServU服务的执行帐号,不再是System而后自己建立的一个无权帐号。同样的,MsSQL和MySQL的执行帐户都可以修改,只是修改的过程中要赋予新执行帐号一些必要的权限。另外,系统中EveryOne权限要注意,一般建议取消。
当然,世界上没有绝对不透风的墙,管理虚拟主机服务器我的宗旨就是单个的网站可以被篡改,但是服务期控制权一定不能丢,数据备分要做好。以上的防御低档一般的黑客是足够了,但是档不住会利用未修补的操作系统漏洞的牛人,但是牛人毕竟很少很少,一般的服务器遇到牛人的可能性也是很低的。
有人会问我为何通篇不提防火墙和入侵检测系统,我觉得,这些东西不要也罢,因为你不可能关掉80、21等端口,开了这些端口,和端口全开的分别其实不大,比如1433、3306这些,你不开放端口别人一样能通过木马或反向连接联上。并且,这类软件十分影响服务器性能,如果你有此类硬件,倒是可以一用。
|