转自:

查看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. 基于Ryu的服务器实现及相关请求访问处理

    基于Ryu的服务器实现及相关请求访问处理 前言及问题描述 近期又遇到了一个非常棘手的问题,由于Ryu是通过Python语言开发的,通过Ryu的wsgi的方式建立服务器,无法解析PHP,通过多次方法解决 ...

  2. Alpha 冲刺八

    团队成员 051601135 岳冠宇 051604103 陈思孝 031602629 刘意晗 031602248 郑智文 031602234 王淇 会议照片 项目燃尽图 项目进展 完善各自部分 项目描 ...

  3. PGSQL 数据库备份练习

    截图先 慢慢说 1. 简单使用方法 先用 之前的setx 命令设置环境变量. set path=%PATH% ---其实第一步没必要..... 跟人学的 setx PATH "%path%& ...

  4. [转帖]linux namespace 和cgroup lxc

    https://blog.csdn.net/xiaoliuliu2050/article/details/53443863 5.1 linux namespace 和cgroup lxc 2016年1 ...

  5. javascript extend

    interface Date{ addHours(h:number); addMinutes(m:number); format(str):string } interface String{ tri ...

  6. wordApp.Documents.Open 未将对象引用实例

    wordApp.Documents.Open (.........),当我打开的是.docx,能正常打开当是.doc时,却返回空置,显示失败,未能找到文件.......,但其实文件都在 解决方案 WO ...

  7. 使用AutoMapper实现Dto和Model的自由转换(上)

    在实际的软件开发项目中,我们的“业务逻辑”常常需要我们对同样的数据进行各种变换.例如,一个Web应用通过前端收集用户的输入成为Dto,然后将Dto转换成领域模型并持久化到数据库中.另一方面,当用户请求 ...

  8. 【设计模式】—— 装饰模式Decorator

    前言:[模式总览]——————————by xingoo 模式意图 在不改变原来类的情况下,进行扩展. 动态的给对象增加一个业务功能,就功能来说,比生成子类更方便. 应用场景 1 在不生成子类的情况下 ...

  9. pgm10

    这部分讨论 MAP 估计.从某个角度上来说,我们可以将这个问题转换成为前面讨论过的: 这样一来我们只需要将原先的 sum-product 换成 max-sum 即可.话虽这么说,我们还是看看 Koll ...

  10. SpringMVC返回JSON方案

    SpringMVC已经大行其道.一般的,都是返回JSP视图.如果需要返回JSON格式,我们大都掌握了一些方法. 在ContentNegotiatingViewResolver之前,一般使用XmlVie ...