当我们完成一台web服务器的安装后,浏览网站会默认发送服务器信息,如下:
Date: Tue, 26 Feb 2013 07:23:32 GMT
Server: Microsoft-IIS/6.0
Connection: close
X-Powered-By: asp.net, PHP/5.2.5
Content-Type: text/html;charset=utf-8
通过上面的header头,我们可以轻易的知道服务器是2003的系统(iis6.0泄漏得知),支持.net和php,而且php是5.2.5的版本,存在拒绝服务漏洞。坏蛋可以利用这些信息进行下一步的攻击,因此就需要我们伪装或者隐藏下这些信息,进一步加强服务器的安全。
首先隐藏下 X-Powered-By:
iis隐藏asp.net很简单,修改站点属性的http头即可。
php的话需要修改php的配置文件,把expose_php = off 设置为off即可。
然后就是因此web服务器信息了:
apache在配置文件添加如下参数(第三条与此处无关,但是也是安全设置,所以顺便保留了):
ServerTokens Prod
ServerSignature Off
TraceEnable off
nginx需要修改配置文件的http段添加server_tokens off,同时修改fastcgi.conf或fcgi.conf文件中的fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;语句(内容随便改,比如装google的gws)。
iis比较麻烦,可以使用ServerMask或者是微软的urlscan来实现,这个亲自行研究吧!