Linux运维笔记
我们一直在努力

隐藏Apache版本号的必要性与方法

一般情况下,软件的漏洞信息和特定版本是相关的,因此,软件的版本号对攻击者来说是很有价值的。

在默认情况下,系统会把Apache版本模块都显示出来(http返回头信息)。如果列举目录的话,会显示域名信息(文件列表正文),如:

[root@JD ~]# curl -I localhost
HTTP/1.1 200 OK
Date: Wed, 31 Oct 2018 09:07:26 GMT
Server: Apache/2.4.6 (CentOS) PHP/5.4.16
X-Powered-By: PHP/5.4.16
Set-Cookie: PHPSESSID=uoua47r9q0qm4k9drdo0d9hmb7; path=/; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Content-Type: text/html; charset=UTF-8

隐藏方法

1、隐藏Apache版本号的方法是修改Apache的配置文件,如RedHat系的Linux默认是:

vim /etc/httpd/conf/httpd.conf

分别搜索关键字ServerTokensServerSignature,修改:

ServerTokens OS 修改为 ServerTokens ProductOnly
ServerSignature On 修改为 ServerSignature Off

2、重启或重新加载Apache就可以了。

apachectl restart

测试一下,如下:

[root@JD ~]# curl -I localhost
HTTP/1.1 200 OK
Date: Wed, 31 Oct 2018 09:11:13 GMT
Server: Apache
X-Powered-By: PHP/5.4.16
Set-Cookie: PHPSESSID=iqt9cciju3css0ipqa062hshg3; path=/; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
Content-Type: text/html; charset=UTF-8

版本号与操作系统信息已经隐藏了。

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

可以根据自己喜好,修改或隐藏版本号与名字。

其他:

[Nginx] 彻底隐藏Nginx版本号的安全性与方法

[PHP] 隐藏PHP版本与PHP基本安全设置

赞(0) 打赏

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址