程序员人生 网站导航

保障IISWeb服务器安全堵住一切漏洞

栏目:服务器时间:2013-11-17 01:38:50
保障Web服务器的安全可能是令IT部门最头疼的问题之一。每当想到系统防御中存在着漏洞,这些漏洞允许外部人员访问我们的网络和数据,我们就会利用自己的最大努力尽可能地将系统的对外暴露完全关闭。而且我们不太可能将Web服务器与网络的其它部分完全分离开,虽然这样会极大地减少可能的风险。更别说,这台机器需要与非常敏感的数据进行交互,这些数据你是绝对不可能使其受到破坏的。

  如果你喜欢微软的产品,你可能选择使用微软的Web服务器产品─IIS(Internet Information Services)。虽然Apache无疑是响应HTTP响应请求的最重要的软件产品。(根据Netcraft的每月调查,Apache占有超过50%市场份额),IIS在的Web服务器中约占三分之一。 

  使用IIS这种较为流行的、容易得到的、容易安装的产品有着另外一面,那就是黑客们早就准备好了如何对它进行访问,而且他们可以找到各种各样的方法来利用系统的漏洞。不幸的是,IIS从一开始就没有真正地提供一个Web服务器所要求的安全水平,因此那些对IIS情有独钟的人需要当心了! 

  在此,我们假定你是在Windows Server 2003中使用IIS 6.0,如果你没有使用该软件,建议你用这个版本。你最好使用一个正确配置的Windows Server 2003/IIS 6,而不是使用其以前的版本。 

  最基本的安全 

  在采取措施之前,需要从一些基本的问题开始,特别是一些基本的规则需要对所有的服务器实施。例如,确保你已经为你的Web服务器准备了良好的备份和恢复过程,以求使“岩机”时间最小化,而且你的Web服务器要位于一个坚固的、受监视的、最新的防火墙之后。定期监视服务器的日志,并且在安全更新可用时立即安装之。 

  当然,最重要的规则就是最简单的:如果你不需要它,就不要用它!现在IIS已经不再是默认安装了,因此如果因为你一开始就安装了一个本不需要的服务,而导致有人攻击了你的系统你可不要后悔莫及。 

  只要可能,要让服务器只负责Web页面。如果预算允许的话,应该尽可能地将服务器的职责进行分离。例如,让一台计算机作为域控制器,另一台作为SQL 服务器等等。如果你的预算不允许,就要确保让管理层彻底明白,这种省钱之道有可能会导致严重的后果。 

  进一步的安全 

  好了,这样一来你就需要设置一台主机掌管公共访问的Web站点而且你确定要使用IIS这种Web服务器。假使你已经安装了所有的可用的补丁,改变了管理员的登录名(不再是administrator,而是一个不容易猜测的名称),而且你还为其创建了一个不是过于简单的口令,卸载了你绝对不需要的任何程序或服务,并且将你的Web服务器放在一个DMZ的合理位置。这是一个很好的开始,不过还远远不够。 

  默认情况下,IIS 6.0是被锁定的。虽然默认安装只能将静态的页面内容提供给访问者(ASP.NET 和 FrontPage Server Extensions 需要手动设置启用),Windows系列产品简单易用的另外一面是容易受到利用,不管是出于什么目的。要解决这个问题,可以下载并运行Microsoft Baseline Security Analyzer (MBCA)。MBCA会查看你的系统并比较彻底地发现一些错误的安全设置,希望在别有用心的人发现之前你能解决这些问题。

  还有一点,IIS不仅仅是一个Web服务器,而是一个互联网服务的整套组件。FTP、SMTP,NNTP和其它的服务也都包含在这个组件中。 

  默认地,匿名用户能够以一个名为IUSR_yourcomputername的用户名访问你的系统。要确保你正使用NTFS(这要远比FAT32安全),而且要保证NTFS对这种用户的访问权限可能的严格。只有在不得不为匿名用户放开写权限时,你才能这样做。 

  所有这些都假定我们正在谈论的是一个可被公众访问的web服务器。如果你的机器只能被已知的用户访问,你就应该完全禁用匿名用户的访问,并且考虑只允许特定的IP地址的连接。如果你对此不太了解,可到微软的网点找到相关的链接,根据其易于操作的文档进行。

  “隐藏信息”成就的安全 

  首先,需要强调,我并不是提倡通过隐藏某些信息作为防御的唯一手段。只通过隐藏这种手段,与没有采用什么安全措施没有什么两样。然而,如果将其与本文介绍的其它的方法结合起来,它就会很有用处。如果用这种手段能够阻止25%的可能的黑客,这不是很有意义的事情吗? 

  记住,黑客用以攻击的手段与其所检测到的Web服务器的版本是息息相关的。如果你能隐藏正在使用IIS的这个事实,那么,你就会挫败一些攻击者的险恶居心,这要比在发现攻击之后再进行阻止要强多了。

  真得感谢微软,其IIS 6.0并没有允许远程用户通过一个简单的与80端口的telnet请求而使其得到IIS的版本。不过,还是有些细节会透露出使用的是IIS软件。例如,默认的“under construction”(正在建设中……)页面(只要安装了IIS就会创建)就会提及“IIS”这个名称,正如默认的错误页面(404,etc)所显示的那样。因此,立即修改这些文件并隐藏这种信息! 

  此外,如果这不是一个可被公共访问的服务器,可以考虑将IIS与一个非标准的端口绑定。一种简单的攻击方法会首先确定80端口是否可用。不过,如果某个家伙如果扫描你计算机的所有端口试图找到IIS,你可能会花费额外一些时间来检测和阻碍这种攻击。
------分隔线----------------------------
------分隔线----------------------------

最新技术推荐