一般情况下,软件的漏洞信息和特定版本是相关的,因此,软件的版本号对攻击者来说是很有价值的。
在默认情况下,系统会把Apache版本模块都显示出来(http返回头信息)。如果列举目录的话,会显示域名信息(文件列表正文),如:
[root@localhost conf]# curl -I 192.168.146.188
HTTP/1.1 200 OK
Date: Tue, 30 Aug 2011 09:17:42 GMT
Server: Apache/2.2.4 (Unix) PHP/5.2.6
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "be0533-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html
隐藏方法:
1、隐藏Apache版本号的方法是修改Apache的配置文件,如RedHat系的Linux默认是:
vim /etc/httpd/conf/httpd.conf
分别搜索关键字ServerTokens和ServerSignature,修改:
ServerTokens OS 修改为 ServerTokens ProductOnly
ServerSignature On 修改为 ServerSignature Off
2、重启或重新加载Apache就可以了。
apachectl restart
测试一下,如下:
[root@localhost conf]# curl -I 192.168.146.188
HTTP/1.1 200 OK
Date: Tue, 30 Aug 2011 09:17:58 GMT
Server: Apache
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "be0533-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html
版本号与操作系统信息已经隐藏了。
3、上面的方法是默认情况下安装的Apache,如果是编译安装的,还可以用修改源码编译的方法:
进入Apache的源码目录下的include目录,然后编辑ap_release.h这个文件,你会看到有如下变量:
#define AP_SERVER_BASEVENDOR “Apache Software Foundation”
#define AP_SERVER_BASEPROJECT “Apache HTTP Server”
#define AP_SERVER_BASEPRODUCT “Apache”#define AP_SERVER_MAJORVERSION_NUMBER 2
#define AP_SERVER_MINORVERSION_NUMBER 2
#define AP_SERVER_PATCHLEVEL_NUMBER 15
#define AP_SERVER_DEVBUILD_BOOLEAN 0
可以根据自己喜好,修改或隐藏版本号与名字。
没作任何设置前,查看web服务器请求文件头
几乎把web服务器详细信息都暴出来了,如果没个版本的apache和php爆出严重漏洞,
会给攻击者提供最有攻击价值的安全信息,这是非常危险的
将apache的配置文件加上两行
重启apache让设置生效
再次发出apache头信息请求
可以看到apache版本号于已经没有了
做到这点,我们还可以改变apache的版本,这就要修改apache的源代码了
,在apache的源码包中找到ap_release.h将
修改为
或者
然后找到os/unix下的os.h文件,将其
修改为
然后重新编译,安装apache。
最后修改httpd.conf配置文件,添加两行
在发送头请求,会有什么,就不用我说了吧,嘿嘿,这叫偷天换日,
从这点来说,php也是一样,同样可以通过这种方式改变一些系统信息,不过根据
GPL开源的精神,这样做貌似不太好,还是保留apache和php版权信息吧。
下面对php的配置文件php.ini进行配置
默认情况下
将其改为
为什么,可以看这段解释
然后禁止一些涉及php安全的函数
无论如何,还是要我们的程序设计的完美,一般来说,单纯更具对系统攻击很难,如果
是程序有漏洞,那攻击就简单了。
本日志由 flyinweb 于 2011-08-30 17:14:52 发表,目前已经被浏览 1183 次,评论 0 次;
作者添加了以下标签: apache,php,ServerSignature;
引用通告:http://www.517sou.net/Article/655/Trackback.ashx
而且直接配置文件是效率最高的,通过其它驱动效率都相对较低,BDB
这个测试不太准确,看官方的测试结果:http://bind-dlz.sourceforg
为什么使用BDB时QPS这么低? 我在bind版本基本相似的环境中测试的
It is quite useful and interesting too.
VIRT 的上限是64G,也就是36位, cat /proc/cpuinfo的结果是:addre
昨天要准备用线程重写webbench,试验了下Fedora Linux 2.6.35.14
不明白您的具体的意思是什么?
已经发送到你QQ邮箱