如果你的服务器版本信息是这样的,是很 危险的。


[root@xinsz63 httpd-2.2.27]# curl -I 192.168.1.38

HTTP/1.1 403 Forbidden

Date: Thu, 23 Mar 2017 08:46:31 GMT

Server: Apache/2.2.15 (CentOS)

Accept-Ranges: bytes

Content-Length: 5039

Connection: close

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


要彻底将版本之类的信息进行改头换面,需要在编译之前修改源码包下include/ap_release.h文件

 

[root@xuegod63 httpd-2.2.25]#pwd

/usr/local/src

[root@xuegod63 src]# rm -rfhttpd-2.2.25

[root@xuegod63src]# tar zxf httpd-2.2.25.tar.gz

[root@xuegod63 src]# cd httpd-2.2.25

[root@xuegod63 httpd-2.2.25]# vim include/ap_release.h  #修改源码中的版本信息为自己公司的相关信息,隐藏真实版本信息

 

改:

42 #define AP_SERVER_BASEVENDOR "Apache SoftwareFoundation"

 43 #defineAP_SERVER_BASEPROJECT "Apache HTTP Server"

 44 #defineAP_SERVER_BASEPRODUCT "Apache"

 45

 46 #defineAP_SERVER_MAJORVERSION_NUMBER 2

 47 #defineAP_SERVER_MINORVERSION_NUMBER 2

 48 #defineAP_SERVER_PATCHLEVEL_NUMBER   25

 49 #defineAP_SERVER_DEVBUILD_BOOLEAN    0

为:

#define AP_SERVER_BASEVENDOR "xuegod"

#define AP_SERVER_BASEPROJECT "web server"

#define AP_SERVER_BASEPRODUCT "xuegod web server"

 

#define AP_SERVER_MAJORVERSION_NUMBER 8

#define AP_SERVER_MINORVERSION_NUMBER 1

#define AP_SERVER_PATCHLEVEL_NUMBER   2

#define AP_SERVER_DEVBUILD_BOOLEAN    3

注释:

#define AP_SERVER_BASEVENDOR "Apache SoftwareFoundation" #服务的供应商名称

#define AP_SERVER_BASEPROJECT "Apache HTTPServer"  #服务的项目名称

#define AP_SERVER_BASEPRODUCT "Apache"        #服务的产品名

#define AP_SERVER_MAJORVERSION_NUMBER 2  #主要版本号

#define AP_SERVER_MINORVERSION_NUMBER 4  #小版本号

#define AP_SERVER_PATCHLEVEL_NUMBER  6  #补丁级别

#define AP_SERVER_DEVBUILD_BOOLEAN  0  #

注:上述列出的行,大家可以修改成自己想要的,然后编译安装之后,再对httpd-default.conf文件进行修改,对方就彻底不知道你的版本号了。

 

源码编译安装apache

[root@xuegod63httpd-2.2.25]# pwd

/usr/local/src/httpd-2.2.25

[root@xuegod63 httpd-2.2.11]# yum installopenssl*

[root@xuegod63httpd-2.2.25]# ./configure --prefix=/usr/local/apache2.2-xuegod --enable-so--enable-rewrite --enable-ssl  --enable-deflate  --enable-expires   #检查安装环境并生成Makefile文件

 

配置参数用途:

--prefix=/usr/local/apache2.2   #指定安装路径

--enable-so  # 支持动态加载模块

--enable-rewrite  #支持网站地址重写

--enable-ssl  # 支持ssl加密

--enable-deflate  #支持页面传输前进行压缩

--enable-expires  #支持设置网页缓存的时间

 

编译:

[root@xuegod63 httpd-2.2.25]# make -j  4  #把源代码编译成可执行的二进制文件。 

 

安装:

[root@xuegod63 httpd-2.2.25]# make install

 

 

启动apache:

配置apache 可以开机启动并且可以使用service命令启动apache服务器

[root@xuegod63 httpd-2.2.25]#cp /usr/local/apache2.2-xuegod/bin/apachectl /etc/init.d/apachectl-xuegod

 

测试:隐藏apache版本信息

[root@xu63 ~]# curl -I192.168.1.39   

HTTP/1.1 200 OK

Date: Sat, 29 Aug 201509:43:44 GMT

Server: xuegod web server/8.1.2-dev (Unix) mod_ssl/8.1.2-devOpenSSL/1.0.0-fips

Last-Modified: Sat, 29 Aug2015 09:37:36 GMT

ETag:"6d086-3a-51e6ff35dba19"

Accept-Ranges: bytes

Content-Length: 58

Content-Type: text/html

 已经看不到apache版本相关内容了



本文转自 维度2018 51CTO博客,原文链接:http://blog.51cto.com/xinsz08/1909730,如需转载请自行联系原作者

apache调优技巧之一隐藏apahce版本信息的更多相关文章

  1. 11 个简单的 Java 性能调优技巧

    大多数开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识.好吧,不能说这是完全错误的.优化应用程序以获得最佳性能不是一件容易的事情.但是,这并不意味着如果你不具备这些知识,就不能做任何事情.这 ...

  2. 11个简单的Java性能调优技巧,傻瓜都能学会!

    大多数开发人员理所当然地以为性能优化很复杂,需要大量的经验和知识.好吧,不能说这是完全错误的.优化应用程序以获得最佳性能不是一件容易的事情.但是,这并不意味着如果你不具备这些知识,就不能做任何事情. ...

  3. Tomcat 调优技巧

    Tomcat 调优技巧:1.Tomcat自身调优: ①采用动静分离节约Tomcat的性能: ②调整Tomcat的线程池: ③调整Tomcat的连接器: ④修改Tomcat的运行模式: ⑤禁用AJP连接 ...

  4. 20个Linux服务器性能调优技巧

    Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...

  5. [转]20个你不得不知的Linux服务器性能调优技巧

    Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提供GUI(图形用户界面),而是命令行界面,它的主要 ...

  6. Apache调优(二)

    Apache调优(一) (1).Apache运行模式说明 Apache目前一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式:Prefork(进程模式).Wo ...

  7. 第三篇、调优之路 Apache调优

    1.  简介 在第一篇中整合了apache + tomcat ,利用了apache解析静态文件为tomcat解压.但是在测试机上发现两者性能不足,不能充分利用服务器的性能,该篇中将对apache进行性 ...

  8. iOS开发25个性能调优技巧

    1. 用ARC管理内存 ARC(Automatic Reference Counting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露.它自动为 ...

  9. LAMP之Apache调优

    一.环境的搭建 实验环境: 操作系统:Centos 7.4 [root@xuegod70 ~]# ls apr-1.6.3.tar.gz apr-util-1.6.1.tar.bz2 httpd-2. ...

随机推荐

  1. 【php】面向对象(五)

    一. 类型约束: a) 约束函数可传入的参数类型二. 类的遍历 a) Foreach b) 可以将类当中的所有成员属性遍历出来三. 关于操作类与对象的一些函数: a) 判断函数 i. Function ...

  2. ERC20代币(ETH)空投工具-创建代币

    代币空投工具地址:http://tool.ethhelp.cn 适用币种: ETH和ERC20代币 使用建议: ERC代币空投,直投,ETH批量转小号 优势介绍: 1.可节省30%手续费 2.转几千地 ...

  3. Hadoop(十):本地IDEA链接远程Hadoop

    本文使用的Hadoop为2.7.7,版本如果不同要下载相应版本的文件 配置本地的Hadoop库(不需完整安装,但是要有环境支持) 下载文件 https://github.com/speedAngel/ ...

  4. django-rest-framework权限验证

    django-rest-framework权限验证 在项目根目录下新建utils的文件 新建permissions.py from rest_framework.permissions import ...

  5. Linux网络安全篇,配置Yum源(二),阿里Yum源

    官网教程: https://opsx.alibaba.com/mirror 1.下载配置文件到 /etc/yum.repos.d 目录 wget -O /etc/yum.repos.d/CentOS- ...

  6. 33.2 案例:输出指定目录下的所有java文件名(包含子目录)

    package day32_file_文件和目录操作; import java.io.File; public class test_输出指定目录下所有的java文件名 { public static ...

  7. <E> 泛型

    /* * 使用集合存储自定义对象并遍历 * 由于集合可以存储任意类型的对象,当我们存储了不同类型的对象,就有可能在转换的时候出现类型转换异常, * 所以java为了解决这个问题,给我们提供了一种机制, ...

  8. 差分数组&&定义&&使用方法&&与线段树的区别

    **1.定义**对于一个有n个元素的数组a[n],我们令a[i]-a[i-1]=d[i],且d[1]=a[1]-0=a[1];那么我们将d[i]称为**差分数组**---即记录数组中的每项元素与前一项 ...

  9. TensorFlow保存、加载模型参数 | 原理描述及踩坑经验总结

    写在前面 我之前使用的LSTM计算单元是根据其前向传播的计算公式手动实现的,这两天想要和TensorFlow自带的tf.nn.rnn_cell.BasicLSTMCell()比较一下,看看哪个训练速度 ...

  10. 详解 Set接口

    (请关注 本人"集合"总集篇博文--<详解 Collection接口>) 在Collection接口的子接口中,最重要的,也是最常见的两个-- List接口 和 Set ...