浅析Web服务器的安全与维护

内容版权声明:本站文章摘自网络,如有侵权冒犯之处,请联系本站,本站及时处理。

  摘 要:本文基于Windows2003服务器,介绍一些Web服务器的安全维护方法。
  关键词:Web服务器;安全维护
  随着信息技术的飞速发展,网站服务器面临着越来越严峻的安全威胁,所以服务器的维护至关重要,稍有闪失即会使整个网络陷入瘫痪。目前,恶意的网络攻击行为包括两类:一是恶意的攻击行为;另外一类是恶意的入侵行为。要保障网络服务器的安全就要尽量使网络服务器避免受这两种行为的影响。
  1 服务器的安全措施
  提高服务器的安全意识,养成较好的计算机操作习惯。
  ⑴对网站及重要的数据库文件进行定期备份,多个服务器之间相互备份。当一个服务器出现软件或硬件故障时,另一个服务器可以用来作为临时的替代。定期分析服务器日志,及时发现服务器软件和硬件的异常以及攻击者留下的蛛丝马迹,以便及时对应。
  ⑵注意密码的更改。服务器操作系统出厂时,一般都是开启的默认状态,多是些名字如guest的账号,不要用administrator这类windows默认管理账户作为管理员账户。最好建立两个及两个以上的管理账户,并对他们进行严格的账户权限控制,不是必要情况下,不要将整个服务器予以授权。其次在设计密码时,也要有一定的复杂性。由于暴力破解密码的手段和速度越来越快,所以在设计密码时,最好是字符、字母、特殊符号、数字等组合的十二位以上的字符串,并定期更改密码防治破解。对于程序系统文件,密码最好采用md5等算法加密后再存储于数据库。对数据库设置密码或采用其他工具加密,可以使得攻击者在得到数据的情况下,也不能很轻易的就破解使用。
  ⑶尽量不用服务器浏览网页,尤其是不可信任的网站,而且尽量避免与服务器不相关的软件,尤其是一些黑客或黑客学习软件或破解软件。对于程序系统中的数据库文件名最好掺杂一些特殊符号,成为较复杂不易猜中的文件名。同时将数据库文件扩展名改成asp或asa,防止他人下载。
  ⑷做好服务分属和保留地址。企业内的服务通常有DNS服务、FTP服务等,对于重要的不同的服务最好是分属开来,实行单一化管理,避免多项服务对服务器造成影响,增加自身运行压力。服务器要保留一部分地址只供服务器使用,将这些IP地址和服务器的MAC地址绑定,这样就可以避免服务器地址被占用而造成服务中断。
  2 合理设置服务器的权限
  大多时候,一台服务器不仅运行了网站的应用,而且还会运行诸如FTP服务器和流媒体服务器之类的网络服务。在同一台服务器上使用多种网络服务很可能造成服务之间的相互感染。也就是说,攻击者只需要攻破其中一种服务,就可以运用这个服务平台从内部攻击其他服务,通常来说,从内部执行攻击要比外部执行攻击方便得多。
  NTFS是微软NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。在NTFS文件系统里可以为任何一个磁盘分区单独设置访问权限,把敏感信息和服务信息分别放在不同的磁盘分区。这样,即使黑客通过某些方法获得服务文件所在磁盘分区的访问权限,还需要想方设法突破系统的安全设置才能进一步访问保存在其他磁盘上的敏感信息。为了实现这个安全需求,把服务器中所有的硬盘都转换为NTFS分区。运用NTFS分区自带的功能,合理为它们分配相关的权限。如为这三个服务配置不同的维护员账户,不同的账户只能对特定的分区与目录执行访问。如此一来,即使某个维护员账户失窃,攻击者也只能访问某个服务的存储空间,而不能访问其他服务的。这样可以保障在黑客攻陷服务器后,也不会对网站服务器产生影响。
  3 优化IIS设置
  更改IIS日志路径避免使用默认的缺省路径,虽然默认的报错信息给管理人员在检查和修正网页错误的时候带来了极大的方便,但是同时也给伺机寻找asp程序漏洞的攻击者提供了非常重要的信息。就算要使用默认的web站点,也要将IIS目录与系统磁盘分开了再用。在配置应用程序映射时,只保留asp、cgi、php、pl应用扩展名,其他所有不必要的应用程序扩展都删除。
  4 维护脚本安全
  实际工作中,许多网站服务器因为被攻击而瘫痪都是由于不良的脚本造成的。攻击者特别喜欢针对CGI程序或者PHP脚本实施攻击。
  通常来说,使用网站需要传递一些必要的参数可以分为两类,一个是值得信任的参数,另外一类是不值得信任的参数。一般来说,来自防火墙内部的参数都是可靠的,值得信任的,而来自外部的参数基本上是不值得信任的。但是,并不是说不值得信任的参数或者来自防火墙外部的参数网站服务器都不采用,而是说,在网站服务器设计的时候,需要格外留心,采用这些不值得信任的参数的时候需要执行检验,看其是否正当,而不能向来自网站内部的参数那样照收不误。这会给网站服务器的安全带来隐患,例如,攻击者运用TELNET连接到80端口,就可以向CGL脚本传递不安全的参数。所以,在CGI程序编写或者PHP脚本编辑的时候,不能让其随便接受陌生人的参数。在接受参数之前,要先检验提供参数的人或者参数本身的正当性。在程序或者脚本编写的时候,可以预先参加一些判断条件。当服务器认为提供的参数不准确的时候,及时通知维护员。这也可以帮助我们尽早发觉可能存在的攻击者,并及时采取相应的防御措施。
  [参考文献]
  [1]钮超.浅谈web服务器的安全[J].科技资讯,2010(5).
  [2]吴寿昆.校园网web服务器的安全配置及防范对策[J].创意与实践,2008(12).
  [3]段卫平.浅谈高校web服务器的安全设置[J].科技资讯,2007.