以前我写过一篇如何伪装nginx的版本防止web服务器被***的博文,之后就有朋友问我,apache是否也有同样的方法,答案是肯定的。今天写这篇回答这个问题吧。

下载apache源码,我用的是2.2.25版本

解压文件apache源码包

tar xzvf httpd-2.2.25.tar.gz

修改源码文件

vim httpd-2.2.25/include/ap_release.h

再谈伪装apache版本防止***web服务器

这是一个带有apache版本号的headerfile。

剩下的就是编译安装了,最简单的参数

./configure--prefix=/usr/local/apache && make && make install

修改配置文件/usr/local/apache/conf/httpd.conf,增加如下内容

再谈伪装apache版本防止***web服务器

启动apache服务

/usr/local/apache/bin/apachectl start

访问任意一个不存在的页面

再谈伪装apache版本防止***web服务器

可以看到web服务器的banner版本号是微软的IIS7.0,而不是真正的apache2.2.25

还没完,因为有经验的***还是从404页面的风格看出来,这显然不是IIS的风格,当然你可以选择再次修改/usr/local/apache/conf/httpd.conf文件

再谈伪装apache版本防止***web服务器

以上是把banner的版本号彻底隐藏不显示

再谈伪装apache版本防止***web服务器

当然这些都会让有经验的***认出这是apache的默认404页面,那么就自己做个404吧,最好的办法是把IIS7.0的默认404的html代码拷贝过来作为apache服务器的404页面,呵呵

然后修改/usr/local/apache/conf/httpd.conf文件

再谈伪装apache版本防止***web服务器

最后看看效果,再访问一次

再谈伪装apache版本防止***web服务器

可以用以下手段来测试一下修改的效果

telnet模仿GET请求查看

再谈伪装apache版本防止***web服务器

curl-I请求head信息

再谈伪装apache版本防止***web服务器

nmap扫描80端口http服务版本

再谈伪装apache版本防止***web服务器

全部都是显示为微软的IIS服务

呵呵,完全伪装成MicrosoftIIS7.0了,别忘了把403等页面也一起修改了吧。