如何隐藏Apache版本号和其它敏感信息

安全 网站安全
当远程请求发送到你的 Apache Web 服务器时,在默认情况下,一些有价值的信息,如web服务器版本号、服务器操作系统详细信息、已安装的Apache模块等等,会随服务器生成的文档发回客户端。

[[183913]]

当远程请求发送到你的 Apache Web 服务器时,在默认情况下,一些有价值的信息,如 web 服务器版本号、服务器操作系统详细信息、已安装的 Apache 模块等等,会随服务器生成的文档发回客户端。

这给攻击者利用漏洞并获取对 web 服务器的访问提供了很多有用的信息。为了避免显示 web 服务器信息,我们将在本文中演示如何使用特定的 Apache 指令隐藏 Apache Web 服务器的信息。

两个重要的指令是:

ServerSignature

这允许在服务器生成的文档(如错误消息、modproxy 的 ftp 目录列表、modinfo 输出等等)下添加一个显示服务器名称和版本号的页脚行。

它有三个可能的值:

  • On - 允许在服务器生成的文档中添加尾部页脚行,
  • Off - 禁用页脚行
  • EMail - 创建一个 “mailto:” 引用;用于将邮件发送到所引用文档的 ServerAdmin。

ServerTokens

它决定了发送回客户端的服务器响应头字段是否包含服务器操作系统类型的描述和有关已启用的 Apache 模块的信息。

此指令具有以下可能的值(以及在设置特定值时发送到客户端的示例信息):

  1. ServerTokens Full (或者不指定) 

发送给客户端的信息: Server: Apache/2.4.2 (Unix) PHP/4.2.2 MyMod/1.2

  1. ServerTokens Prod[uctOnly] 

发送给客户端的信息: Server: Apache

  1. ServerTokens Major 

发送给客户端的信息: Server: Apache/2

ServerTokens Minor

发送给客户端的信息: Server: Apache/2.4

  1. ServerTokens Min[imal] 

发送给客户端的信息:Server: Apache/2.4.2

  1. ServerTokens OS 

发送给客户端的信息: Server: Apache/2.4.2 (Unix)

注意:在 Apache 2.0.44 之后,ServerTokens 也控制由 ServerSignature 指令提供的信息。

为了隐藏 web 服务器版本号、服务器操作系统细节、已安装的 Apache 模块等等,使用你最喜欢的编辑器打开 Apache 配置文件:

  1. $ sudo vi /etc/apache2/apache2.conf        #Debian/Ubuntu systems 
  2. $ sudo vi /etc/httpd/conf/httpd.conf       #RHEL/CentOS systems  

添加/修改/附加下面的行:

  1. ServerTokens Prod 
  2. ServerSignature Off  

保存并退出文件,重启你的 Apache 服务器:

  1. $ sudo systemctl apache2 restart  #SystemD 
  2. $ sudo sevice apache2 restart     #SysVInit 

本篇中,我们解释了如何使用特定的 Apache 指令隐藏Apache web 服务器版本号及其他信息。

如果你在 Apache 中运行 PHP,我建议你隐藏 PHP 版本号。

如往常一样,你可以在评论栏中写下你的想法。

作者简介:

Aaron Kili 是 Linux 和 F.O.S.S 爱好者,将来的 Linux SysAdmin 及 web 开发者,目前是 TecMint 的内容创作者,他喜欢用电脑工作,并坚信分享知识。

责任编辑:武晓燕 来源: Linux中国
相关推荐

2017-02-08 14:29:04

2023-01-03 08:26:56

2019-09-19 15:15:20

LinuxMint版本号

2017-03-30 16:56:43

Windows 10Windows版本号

2014-12-15 14:02:48

iOS版本号苹果

2013-06-05 11:21:26

2010-06-28 10:13:17

SQL Server

2019-11-04 14:20:47

APP版本移动端命名

2010-07-09 13:01:50

SQL Server

2010-11-08 10:07:45

Chrome

2015-07-22 10:09:59

Android M版本号

2023-02-27 14:51:40

MySQL数据库

2009-04-15 08:49:47

Windows 7微软操作系统

2021-08-11 08:32:24

Firefox英特尔LLVM

2010-02-06 13:49:08

Linux samba

2023-01-09 17:46:07

项目版本号字段

2024-07-08 13:56:12

微服务API代码

2012-03-23 10:37:26

2013-03-29 10:24:44

NDK隐藏敏感信息Android

2023-08-02 08:46:02

Go版本号规则
点赞
收藏

51CTO技术栈公众号