昨天配置nginx的时候说道隐藏版本信息的问题,今天就罗列一下

要操作的信息列表

  • nginx版本信息查询及隐藏

  • Apache版本信息查询及隐藏

  • php版本信息查询及隐藏

  • tengine版本信息查询及隐藏

  • tomcat版本信息查询及隐藏

详细操作步骤

1.1、nginx版本信息查询

      [root@zhuima_nginx ~]# nginx -vnginx version: nginx/1.6.0

1.2、nginx编译配置参数查询

       [root@zhuima_nginx ~]# nginx -V
       nginx version: nginx/1.6.0
       built by gcc 4.4.7 20120313 (Red Hat4.4.7-4) (GCC) TLS SNI support enabledconfigure arguments:       --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module        
       --with-http_ssl_module --with-http_gzip_static_module --with-ipv6

1.3、客户端查看nginx的Response Header信息

      [root@zhuima_client ~]# curl -I       HTTP/1.1 200 OKServer: nginx/1.6.0
      Date: S      at, 19 Jul 2014 02:18:54 
      GMTContent-Type: text/html
      Content-Length: 16412
      Last-Modified: Mon, 07       Jul 2014 05:25:22 G      MT
      Connection: keep-alive
      Vary: Accept-Encoding
      ETag: "53ba2f42-401c"
      Accept-Ranges: bytes

spacer.gif

1.4、如何隐藏nginx的Response Header中返回的版本号信息

  • 修改nginx配置文件,在全局配置中添加server_tokens off; 这一行

  1. [root@zhuima_nginx ~]#

  2. [root@zhuima_nginx  ~]# sed -'/server_tokens/p' /usr/local/nginx/conf/nginx.conf

  3. server_tokens off;              # 在nginx全局配置文件中添加这行即可

  4. [root@zhuima_nginx  ~]#

重启nginx服务然后客户端验证效果

  1. [root@zhuima_client ~]# curl -I http://218.244.xxx.xxx

  2. HTTP/1.1 200 OK

  3. Server: nginx

  4. Date: Sat, 19 Jul 2014 02:33:11 GMT

  5. Content-Type: text/html

  6. Content-Length: 16412

  7. Last-Modified: Mon, 07 Jul 2014 05:25:22 GMT

  8. Connection: keep-alive

  9. Vary: Accept-Encoding

  10. ETag: "53ba2f42-401c"

  11. Accept-Ranges: bytes

2、Apache版本信息查询及隐藏

2.1、apache版本信息查询

  • apache版本信息查询

  1. [root@zhuima_httpd ~]# apachectl -v

  2. Server version: Apache/2.2.15 (Unix)

  3. Server built:   Apr  3 2014 23:56:16

  4. [root@zhuima_httpd ~]#

apache编译参数查询

  1. [root@zhuima_httpd ~]# apachectl -V

  2. Server version: Apache/2.2.15 (Unix)

  3. Server built:   Apr  3 2014 23:56:16

  4. Server'Module Magic Number: 20051115:25

  5. Server loaded:  APR 1.3.9, APR-Util 1.3.9

  6. Compiled using: APR 1.3.9, APR-Util 1.3.9

  7. Architecture:   64-bit

  8. Server MPM:     Prefork

  9. threaded:     no

  10.  forked:     yes (variable process count)

  11. Server compiled with....

  12. -D APACHE_MPM_DIR="server/mpm/prefork"

  13. -D APR_HAS_SENDFILE

  14. -D APR_HAS_MMAP

  15. -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)

  16. -D APR_USE_SYSVSEM_SERIALIZE

  17. -D APR_USE_PTHREAD_SERIALIZE

  18. -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT

  19. -D APR_HAS_OTHER_CHILD

  20. -D AP_HAVE_RELIABLE_PIPED_LOGS

  21. -D DYNAMIC_MODULE_LIMIT=128

  22. -D HTTPD_ROOT="/etc/httpd"

  23. -D SUEXEC_BIN="/usr/sbin/suexec"

  24. -D DEFAULT_PIDLOG="run/httpd.pid"

  25. -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"

  26. -D DEFAULT_LOCKFILE="logs/accept.lock"

  27. -D DEFAULT_ERRORLOG="logs/error_log"

  28. -D AP_TYPES_CONFIG_FILE="conf/mime.types"

  29. -D SERVER_CONFIG_FILE="conf/httpd.conf"

  30. [root@zhuima_httpd ~]#

2.2、apache版本信息隐藏

  • 客户端验证apahce的Response Headers头信息

  1. [root@zhuima_client ~]# curl -I http://192.168.xxx.xxx

  2. HTTP/1.1 403 Forbidden

  3. Date: Sat, 19 Jul 2014 02:41:02 GMT

  4. Server: Apache/2.2.15 (CentOS)

  5. Accept-Ranges: bytes

  6. Content-Length: 5039

  7. Connection: close

  8. Content-Type: text/html; charset=UTF-8

spacer.gif

  • 在Apache配置文件中添加ServerTokens ProductOnly

  1. #ServerTokens OS             # 注释掉改行

  2. Servertokens off             # 添加这行屏蔽apache版本信息    

  3. ServerSignature Off          # 添加这行屏蔽系统信息

重启httpd服务之后客户端再次验证

  1. [root@zhuima_client ~]# curl -I http://192.168.xxx.xxx

  2. HTTP/1.1 403 Forbidden

  3. Date: Sat, 19 Jul 2014 02:47:21 GMT

  4. Server: Apache

  5. Accept-Ranges: bytes

  6. Content-Length: 5039

  7. Connection: close

  8. Content-Type: text/html; charset=UTF-8

3、略


4、tengine版本信息查询及隐藏

4.1、tengine版本信息查询

这里为什么要把tengine单独拿出来说事呢,初装tengine的童鞋肯定会有点迷茫,为毛tengine会显示出那么多的系统版本信息,除此之外其他操作和nginx一样,这里仅说下nginx版本的隐藏相关

显示的信息有:

  • Server----->服务器名称

  • tengine版本信息

  • 服务器端的时间
    spacer.gif有图为证:

    wKiom1PKB3uhg1fzAAPptCWO6Vk888.jpg

4.2、tengine版本信息隐藏

  • 在tengine配置文件中添加下面三项即可

  1. server_tag off;

  2. server_info off;

  3. server_tokens off;

  • 重启tengine服务再次进行验证

    wKioL1PKDdrRrTtTAAOYZuxkuVU771.jpg

5、tomcat版本信息查询及隐藏

5.1、tomcat版本信息查询

  • tomcat版本信息查询(新接手环境的时候很有必要查看的)

  1. [root@zhuima_tomcat ~]$ catalina.sh version

  2. ...............................

  3. Server version: Apache Tomcat/7.0.42

  4. Server built:   Jul 2 2013 08:57:41

  5. Server number:  7.0.42.0

  6. OS Name:        Linux

  7. OS Version:     2.6.32-431.el6.x86_64

  8. Architecture:   amd64

  9. JVM Version:    1.7.0_09-b05

  10. JVM Vendor:     Oracle Corporation

客户端验证tomcat版本信息

5.2、tomcat版本信息隐藏

  • 隐藏tomcat版本信息

    • 到apache-tomcat安装目录下的lib子文件夹,找到catalina.jar这包,并进行解

    • 解压之后进度到org/catalina/apache/util/目录下,编辑ServerInfo.properties

    • vim /path/tomcat/lib/org/apache/catalina/util/ServerInfo.properties

    • 来张修改前后的对比图吧
      spacer.gifwKiom1PKB9iRw9IFAAlhGbthKxQ603.jpg

  • 再次验证页面显示信息
    spacer.gifwKioL1PKCQnRZgk3AAFk3xENojY471.jpg



总结:

  • 新的环境中尽可能多用help指令查看老的环境的部署

  • 操作之前尽可能做的备份,要不然你懂得后果的

  • 最主要的还是要了解并掌握大多数常用服务,要不然也是干瞪眼

  • 本篇文章纯属扯淡,没啥技术含量

  • 打完收工


本文转自lovelace521 51CTO博客,原文链接:http://blog.51cto.com/lovelace/1440212,如需转载请自行联系原作者