转自:

查看nginx | apache | php | tengine | tomcat版本的信息以及如何隐藏版本信息 - 追马 - 51CTO技术博客
http://lovelace.blog.51cto.com/1028430/1440212

昨天配置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

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

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

[root@zhuima_nginx ~]#

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

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

[root@zhuima_nginx  ~]#

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

[root@zhuima_client ~]# curl -I http://218.244.xxx.xxx
HTTP/1.1 OK
Server: nginx
Date: Sat, Jul :: GMT
Content-Type: text/html
Content-Length:
Last-Modified: Mon, Jul :: GMT
Connection: keep-alive
Vary: Accept-Encoding
ETag: "53ba2f42-401c"
Accept-Ranges: bytes

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

2.1、apache版本信息查询

  • apache版本信息查询

[root@zhuima_httpd ~]# apachectl -v
Server version: Apache/2.2. (Unix)
Server built: Apr ::
[root@zhuima_httpd ~]#

apache编译参数查询

[root@zhuima_httpd ~]# apachectl -V
Server version: Apache/2.2. (Unix)
Server built: Apr ::
Server's Module Magic Number: 20051115:25
Server loaded: APR 1.3., APR-Util 1.3.
Compiled using: APR 1.3., APR-Util 1.3.
Architecture: -bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count) Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf" [root@zhuima_httpd ~]#

2.2、apache版本信息隐藏

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

[root@zhuima_client ~]# curl -I http://192.168.xxx.xxx
HTTP/1.1 Forbidden
Date: Sat, Jul :: GMT
Server: Apache/2.2. (CentOS)
Accept-Ranges: bytes
Content-Length:
Connection: close
Content-Type: text/html; charset=UTF-
  • 在Apache配置文件中添加ServerTokens ProductOnly

#ServerTokens OS             # 注释掉改行
Servertokens off # 添加这行屏蔽apache版本信息
ServerSignature Off # 添加这行屏蔽系统信息

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

[root@zhuima_client ~]# curl -I http://192.168.xxx.xxx
HTTP/1.1 Forbidden
Date: Sat, Jul :: GMT
Server: Apache
Accept-Ranges: bytes
Content-Length:
Connection: close
Content-Type: text/html; charset=UTF-

3、略

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

4.1、tengine版本信息查询

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

显示的信息有:

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

  • tengine版本信息

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

4.2、tengine版本信息隐藏

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

server_tag off;
server_info off;
server_tokens off;
  • 重启tengine服务再次进行验证

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

5.1、tomcat版本信息查询

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

[root@zhuima_tomcat ~]$ catalina.sh version
...............................
Server version: Apache Tomcat/7.0.
Server built: Jul ::
Server number: 7.0.42.0
OS Name: Linux
OS Version: 2.6.-.el6.x86_64
Architecture: amd64
JVM Version: 1.7.0_09-b05
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

    • 来张修改前后的对比图吧

  • 再次验证页面显示信息

总结:

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

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

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

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

    • 打完收工

查看nginx | apache | php | tengine | tomcat版本的信息以及如何隐藏版本信息【转】的更多相关文章

  1. (总结)Linux下查看Nginx Apache MySQL的并发连接数和连接状态

    1.查看Web服务器(Nginx Apache)的并发请求数及其TCP连接状态:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a ...

  2. (转)Linux下查看Nginx Apache MySQL的并发连接数和连接状态

    转自: http://www.ha97.com/4106.html 1.查看Web服务器(Nginx Apache)的并发请求数及其TCP连接状态:netstat -n | awk '/^tcp/ { ...

  3. Linux下查看Nginx,tomcat等的并发连接数和连接状态

    1.查看Web服务器(Nginx Apache)的并发请求数及其TCP连接状态: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print ...

  4. nginx/apache/php隐藏http头部版本信息的实现方法

    有时候我们需要隐藏我们的服务器版本信息,防止有心人士的研究,更安全,这里介绍下在nginx/apache/php中如何隐藏http头部版本信息的方法. nginx隐藏头部版本信息方法 编辑nginx. ...

  5. 查看mysql apache php nginx的编译参数

    查看mysql编译参数: cat /usr/local/mysql/bin/mysqlbug|grep configure 查看apache编译参数: cat /usr/local/apache2/b ...

  6. 查看Nginx、PHP、Apache和MySQL的编译参数

    1.查看Nginx编译参数 [root@portal finance]# your_nginx_dir/sbin/nginx -V nginx version: nginx/ built by (Re ...

  7. 查看nginx版本和安装的模块

    查看nginx版本 # nginx -v nginx version: nginx/1.12.2 查看nginx配置了哪些模块 # nginx -V nginx version: nginx/1.12 ...

  8. linux中查看nginx、apache、php、mysql配置文件路径的方法

    如何在Linux中查看nginx.apache.PHP.MySQL配置文件路径了,如果你接收一个别人配置过的环境,但没留下相关文档.这时该怎么判断找到正确的加载文件路径了.可以通过以下来判断1.判断a ...

  9. 查看nginx的版本

    查看nginx的版本 -v 显示 nginx 的版本-V 显示 nginx 的版本,编译器版本和配置参数 # /app/nginx/sbin/nginx -v nginx version: nginx ...

随机推荐

  1. 软工第三次作业 -- 结对之AutoCS1.0

    031302331 031302223 一.将初始排课表导入系统数据库 法1:通过jxl解析excel,把数据插入数据库.较简单,预计用时60分钟 我们采取的是 法2(预计用时30分钟):我们使用的是 ...

  2. Java NIO 详解(二)

    异步IO 异步 I/O 是一种没有阻塞地读写数据的方法.通常,在代码进行 read() 调用时,代码会阻塞直至有可供读取的数据.同样, write()调用将会阻塞直至数据能够写入,关于同步的IO请参考 ...

  3. js中的async await

    JavaScript 中的 async/await 是属于比较新的知识,在ES7中被提案在列,然而我们强大的babel粑粑已经对它进行列支持! 如果开发中使用了babel转码,那么就放心大胆的用吧. ...

  4. 【BZOJ1967】[AHOI2005]穿越磁场(最短路)

    [BZOJ1967][AHOI2005]穿越磁场(最短路) 题面 BZOJ 洛谷 题解 一个显然的思路是这样的,我们的正方形的边长把整个平面割成了若干块,显然每个联通块都可以看着做一个点,那么接下来只 ...

  5. unity3d 几种镜头畸变

    1.Fisheye distortion  鱼眼镜头 解释来自百度百科:鱼眼镜头是一种焦距为16mm或更短的并且视角接近或等于180°. 它是一种极端的广角镜头,“鱼眼镜头”是它的俗称.为使镜头达到最 ...

  6. (转)在Eclipse中用TODO标签管理任务(Task)

    背景:eclipse是一款功能十分强大的编辑,如果能够熟练运用,必定事半功倍,但如果不求甚解,无疑是给自己制造麻烦. 1 标签的使用 1.1 起因 如上图所示,在程序中有很多todo的标签出现,但是却 ...

  7. 《剑指offer》— JavaScript(29)最小的K个数

    最小的K个数 题目描述 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4. 思路一 使用JavaScript的Array对象的so ...

  8. 解决小米note5 安装了google play store 打不开的问题

    打不开的原因是缺少了google play store 运行的一些后台程序 去豌豆荚下载如下谷歌安装器(注:安装器有很多种,我试了如下这种成功) 重启手机,google play store 即可正常 ...

  9. Java基础-SSM之mybatis一对一外键关联

    Java基础-SSM之mybatis一对一外键关联 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表)  1>.创建husbandsfk和wife ...

  10. python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件

    python操作txt文件中数据教程[3]-python读取文件夹中所有txt文件并将数据转为csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 python操作txt文件中 ...