Linux有问必答：如何在Apache网站服务器上关闭服务器签名
问题：每当Apache2网站服务器返回错误页时（如，404 页面无法找到，403 禁止访问页面），它会在页面底部显示网站服务器签名（如，Apache版本号和操作系统信息）。同时，当Apache2网站服务器为PHP页面服务时，它也会显示PHP的版本信息。我如何在Apache2网站服务器上关闭这些网站服务器签名呢？
服务器 签名 Apache Linux有问必答
37.58.100.169
#如何防止被人吐槽#
微博评论
2014-08-20T18:03:01.000
37.58.100.169
又不是 IIS，怕个毛//@Garfield550: 轉發微博
微博评论
2014-08-20T18:03:01.000
37.58.100.135
这个貌似可以设置不显示嗯
微博评论
2014-08-20T18:33:00.000
119.183.55.110
实用
微博评论
2014-08-20T20:03:00.000
112.10.74.57
扫描工具一扫就出来了
ZMOM1031
2014-08-20T20:42:25.000
78.46.236.15
很简单，在配置服务器时，删除配置文件中一句代码即可，还可以自定义名称
微博评论
2014-08-21T03:33:00.000
27.57.182.130
I reached out previously and hadn’t heard back from you yet. This tells me a few things:<br />
<br />
1) You're being chased by a T-rex and haven't had time to respond.<br />
2) You aren't interested.<br />
3) You're interested but haven't had a time to respond.<br />
<br />
Whichever one it is, please let me know as I am getting worried! Please respond 1,2, or 3. I do not want to be a bother. <br />
<br />
====================== Original Message ========================<br />
<br />
Hi,<br />
<br />
I am Alex editor at Guru99.&nbsp;&nbsp;There is 69% chance you will not ope
来自印度的 Chrome 77.0|Windows 10 用户
2019-10-23T14:35:41.000
问题：每当Apache2网站服务器返回错误页时（如，404 页面无法找到，403 禁止访问页面），它会在页面底部显示网站服务器签名（如，Apache版本号和操作系统信息）。同时，当Apache2网站服务器为PHP页面服务时，它也会显示PHP的版本信息。我如何在Apache2网站服务器上关闭这些网站服务器签名呢？

> 
> **问题**：每当Apache2网站服务器返回错误页时（如，404 页面无法找到，403 禁止访问页面），它会在页面底部显示网站服务器签名（如，Apache版本号和操作系统信息）。同时，当Apache2网站服务器为PHP页面服务时，它也会显示PHP的版本信息。我如何在Apache2网站服务器上关闭这些网站服务器签名呢？
> 
> 
> 


透露网站服务器带有服务器/PHP版本信息的签名会带来安全隐患，因为你基本上将你系统上的已知漏洞告诉给了攻击者。因此，作为服务器加固的一个部分，强烈推荐你禁用所有网站服务器签名。


[![](/7c0050095c1ca46e38c710361e4c5849dc9ee0d6/68747470733a2f2f6661726d342e737461746963666c69636b722e636f6d2f333839372f31343930323937303534355f633364343036333232665f6f2e706e67)](https://camo.githubusercontent.com/7c0050095c1ca46e38c710361e4c5849dc9ee0d6/68747470733a2f2f6661726d342e737461746963666c69636b722e636f6d2f333839372f31343930323937303534355f633364343036333232665f6f2e706e67)


### 禁用Apache网站服务器签名


禁用Apache网站服务器签名可以通过编辑Apache配置文件来实现。


在Debian，Ubunt或者Linux Mint上：



```
$ sudo vi /etc/apache2/apache2.conf

```

在CentOS，Fedora，RHEL或者Arch Linux上：



```
$ sudo vi /etc/httpd/conf/httpd.conf

```

将下面两行添加到Apache配置文件底部。



> 
> ServerSignature Off
> 
> 
> ServerTokens Prod
> 
> 
> 


然后重启网站服务器以使修改生效：



```
$ sudo service apache2 restart (Debian, Ubuntu or Linux Mint)
$ sudo service httpd restart (CentOS/RHEL 6)
$ sudo systemctl restart httpd.service (Fedora, CentOS/RHEL 7, Arch Linux)

```

第一行‘ServerSignature Off’使得Apache2网站服务器在所有错误页面上隐藏Apache版本信息。


[![](/ff7bcc6296f571245d6d9a5c5c396f095cba7e99/68747470733a2f2f6661726d362e737461746963666c69636b722e636f6d2f353535362f31343837393938323031365f376337623862626633645f6f2e706e67)](https://camo.githubusercontent.com/ff7bcc6296f571245d6d9a5c5c396f095cba7e99/68747470733a2f2f6661726d362e737461746963666c69636b722e636f6d2f353535362f31343837393938323031365f376337623862626633645f6f2e706e67)


然而，若没有第二行的‘ServerTokens Prod’，Apache服务器将仍然在HTTP回应头部包含详细的服务器标记，这会泄漏Apache的版本号。


[![](/e684a0f4d72a0a67400517cc1690b052c903402c/68747470733a2f2f6661726d342e737461746963666c69636b722e636f6d2f333838392f31343930323937303533355f653834656332333039305f7a2e6a7067)](https://camo.githubusercontent.com/e684a0f4d72a0a67400517cc1690b052c903402c/68747470733a2f2f6661726d342e737461746963666c69636b722e636f6d2f333838392f31343930323937303533355f653834656332333039305f7a2e6a7067)


第二行‘**ServerTokens Prod**’所要做的是在HTTP响应头中将服务器标记压缩到最小。


因此，同时放置两行时，Apache将不会在页面中或者HTTP响应头中泄漏版本信息。


[![](/008ed3a44caebac203bc319388f2e6c501a34e04/68747470733a2f2f6661726d342e737461746963666c69636b722e636f6d2f333930322f31343930323937303530355f643739323235663235645f7a2e6a7067)](https://camo.githubusercontent.com/008ed3a44caebac203bc319388f2e6c501a34e04/68747470733a2f2f6661726d342e737461746963666c69636b722e636f6d2f333930322f31343930323937303530355f643739323235663235645f7a2e6a7067)


### 隐藏PHP版本


另外一个潜在的安全威胁是HTTP响应头中的PHP版本信息泄漏。默认情况下，Apache网站服务器通过HTTP响应头中的“X-Powered-By”字段包含有PHP版本信息。如果你想要在HTTP头部中隐藏PHP版本，请使用文本编辑器打开php.ini文件，找到“expose\_php = On”这一行，将它改为“expose\_php = Off”即可。


[![](/da9bfd0221df42831a9d895b1748dab2f2c43036/68747470733a2f2f6661726d342e737461746963666c69636b722e636f6d2f333835332f31343839393931373938315f616165663731656230612e6a7067)](https://camo.githubusercontent.com/da9bfd0221df42831a9d895b1748dab2f2c43036/68747470733a2f2f6661726d342e737461746963666c69636b722e636f6d2f333835332f31343839393931373938315f616165663731656230612e6a7067)


在Debian，Ubunt或者Linux Mint上：



```
$ sudo vi /etc/php5/apache2/php.ini

```

在CentOS，Fedora，RHEL或者Arch Linux上：



```
$ sudo vi /etc/php.ini

```


> 
> expose\_php = Off
> 
> 
> 


最后，重启Apache2网站服务器来重新加载已更新的PHP配置文件。


现在，你不会再看到带有“X-Powered-By”字段的HTTP响应头了。




---


via: <http://ask.xmodulo.com/turn-off-server-signature-apache-web-server.html>


译者：[GOLinux](https://github.com/GOLinux) 校对：[Caroline](https://github.com/carolinewuyan)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出

