服务器 频道

Linux服务器安全策略详解之Apache配置

  6.3  配置一个安全的Apache服务器

  合理的网络配置能够保护Apache服务器免遭许多攻击。

  6.3.1  勤打补丁

  在http://www.apache.org/上最新的changelog中都写着:bug fix、security bug fix的字样。所以,Linux网管员要经常关注相关网站的缺陷,及时升级系统或添加补丁。使用最高和最新的安全版本对于加强Apache Web服务器的安全是至关重要的。将你的OpenSSL升级到0.9.6e或者更高版本,伪造的密钥将起不了任何作用,也不能渗透到系统里。一些反病毒程序能发现并杀死SSL蠕虫,但是蠕虫可能产生变体,从而逃脱反病毒软件的追捕。重启Apache可以杀死这样的病毒,但是对防止将来的感染没有任何意义。

  6.3.2  隐藏和伪装Apache的版本

  通常,软件的漏洞信息和特定版本是相关的,因此,版本号对黑客来说是最有价值的。

  在默认情况下,系统会把Apache版本模块都显示出来(http返回头)。如果列举目录的话,会显示域名信息(文件列表正文),去除Apache版本号的方法是修改配置文件/etc/httpd.conf。找到关键字ServerSignature,将其设定为:

  ServerSignature Off

  ServerTokens Prod

  然后重新启动Apache服务器。

  通过分析Web服务器的类型,大致可以推测出操作系统的类型,比如,Windows使用IIS来提供HTTP服务,而Linux中最常见的是Apache。

  默认的Apache配置里没有任何信息保护机制,并且允许目录浏览。通过目录浏览,通常可以获得类似"Apache/1.3.27 Server at apache.linuxforum.net Port 80"或"Apache/2.0.49 (Unix) PHP/4.3.8"的信息。

  通过修改配置文件中的ServerTokens参数,可以将Apache的相关信息隐藏起来。但是,Red Hat Linux运行的Apache是编译好的程序,提示信息被编译在程序里,要隐藏这些信息需要修改Apache的源代码,然后,重新编译安装程序,以替换里面的提示内容。

  以Apache 2.0.50为例,编辑ap_release.h文件,修改"#define AP_SERVER_BASEPRODUCT \"Apache\""为"#define AP_SERVER_BASEPRODUCT \"Microsoft-IIS/5.0\""。编辑os/unix/os.h文件,修改"#define PLATFORM \"Unix\""为"#define PLATFORM \"Win32\""。修改完毕后,重新编译、安装Apache。

  Apache安装完成后,修改httpd.conf配置文件,将"ServerTokens Full"改为"ServerTokens Prod";将"ServerSignature On"改为"ServerSignature Off",然后存盘退出。重新启动Apache后,用工具进行扫描,发现提示信息中已经显示操作系统为Windows。

 

0
相关文章