奇忠诚 发表于 2018-11-17 12:48:54

CentOS7 Apache调优之隐藏版本号

  用curl -I 域名 ,会发现如果没有设置隐藏版本号的话,服务器版本及Openssl信息会全都显示出来,这样容易暴露web服务器版本,进而通过版本号查找漏洞***web服务器。
  例如:
  HTTP/1.1 302 Found
  Date: Wed, 11 Apr 2018 08:03:25 GMT
  Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.6.32
  X-Powered-By: PHP/5.6.32
  Set-Cookie: PHPSESSID=slukigut3n2fkuii73r4tse9k1; path=/
  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
  Location: /Home/Login/index.html
  Content-Type: text/html;
  以上信息暴露了apache的版本号以及openssl的版本号,按照下面的方法来隐藏Apache的版本号。
  源码编译的Apache,以/usr/local/apache为主目录
  1. vim /usr/local/apache/conf/httpd.conf                                                                 ### 编辑httpd.conf文件
  找到Include conf/extra/httpd-default.conf,去掉前面的#号,使其生效,wq保存
  2. vim /usr/local/apache/conf/extra/httpd-default.conf
  找到ServerTokens选项,将其Full值改为Prod                                                                ### full值为显示版本号以及其它详细信息,Prod为隐藏这些信息
  找到ServerSignature,将其On值改为Off                                                                                                                                                                                                                                                                 ###Yes为启用这个指令用来配置服务器端生成文档的页脚(错误信息mod_proxy的FTP目录列表、mod_info的输出),No为隐藏这些信息
  以上方法只能隐藏版本号以及Openssl信息,如果需要真正隐藏命名,或者需要伪装一个新的命名,需要先修改Apache的源码包,然后再进行编译安装
  以源码包httpd-2.4.33为例

[*]  cd 到解压好的 httpd-2.4.33 文件夹里
[*]  找到include/ap_release.h文件
[*]  vim httpd-2.4.33/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 4                                          ###小版本号
  #define AP_SERVER_PATCHLEVEL_NUMBER   33                                              ###补丁级别
  #define AP_SERVER_DEVBUILD_BOOLEAN    0                                                #
  将上边的内容改成你想要的信息,然后保存,前面的#号保留。编译安装,这样再用curl -I 域名 命令来查询时就是你修改后的信息了,对方就彻底不知道你的服务器是什么版本的了^_^

页: [1]
查看完整版本: CentOS7 Apache调优之隐藏版本号