有时候为了伪装自己的真实服务器环境.
不像让对方知道自己的webserver真实环境,就不得不修改我们的webserer软件了!
今天看了一下baidu.com的webserver感觉像是nginx修改的.
C:/curl-7.18.0>curl.exe -I www.baidu.com
HTTP/1.1 200 OK
Date: Tue, 11 Mar 2008 05:00:39 GMT
Server: BWS/1.0
Content-Length: 3022
Content-Type: text/html
Cache-Control: private
Expires: Tue, 11 Mar 2008 05:00:39 GMT
Set-Cookie: BAIDUID=41BB2845D3E8BC1AEE99D4CECB90C50A:FG=1; expires=Tue, 11-
8 05:00:39 GMT; path=/; domain=.baidu.com
P3P: CP=" OTI DSP COR IVA OUR IND COM "

哈只是感觉,人家有坚强的开发后盾,可能是自己开发的!

于是自己翻了一下nginx源码了,发现竟然很容修改就可以实现.
cd /usr/local/src/nginx-0.5.35/src/core/

[root@zyatt core]# cat nginx.h

/*
* Copyright (C) Igor Sysoev
*/

#ifndef _NGINX_H_INCLUDED_
#define _NGINX_H_INCLUDED_

#define NGINX_VERSION    "1.0"   //型号
#define NGINX_VER       "LPKWS/" NGINX_VERSION //服务器名

#define NGINX_VAR       "LPKWS"
#define NGX_OLDPID_EXT     ".oldbin"

#endif /* _NGINX_H_INCLUDED_ */

测试效果
C:/curl-7.18.0>curl.exe -I 211.100.11.122/info.PHP   (此Nginx没有做优化,配置expires,gzip等,仅为测试)

HTTP/1.1 200 OK
Server: LPKWS/1.0
Date: Tue, 11 Mar 2008 04:53:02 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=20
X-Powered-By: php/5.2.4

哈,仅为娱乐,要想真正的优化和安全考虑,还是应该好好读读源代码,踏踏实实做好细节工作!

修改apache的header伪装服务器

作者:守住每一天 转自:www.linuxtone.org/thread-1566-1-1.html

当客户端连接到Apache服务器的时候,Apache一般会返回服务器版本、非缺省模块等信息,例如:
Server: Apache/2.2.0 (Unix) mod_perl/1.26
解决:
你可以在Apache的配置文件里面作如下设置让它返回的关于服务器的信息减少到最少:
ServerTokens Prod
注意:
这样设置以后Apache还会返回一定的服务器信息,比如:
Server: Apache
但是这个不会对服务器安全产生太多的影响,因为很多扫描软件是扫描的时候是不顾你服务器返回的头部信息的。你如果想把服务器返回的相关信息变成:
Server: It iS a nOnE-aPaCHe Server
那么你就要去修改源码了。
方法:
代码:
修改几个Apache的几个源代码文件,然后自己编译

操作:
一、文件操作
file: include/ap_release.h

#define AP_SERVER_BASEVENDOR"这里填写开发组织名,例如:Microsoft Corp."
#defineAP_SERVER_BASEPRODUCT"这里填写服务器软件名,例如:Microsoft-IIS"
#defineAP_SERVER_MAJORVERSION "主版本,例如:5"
#defineAP_SERVER_MINORVERSION "次版本,例如:0"
#defineAP_SERVER_PATCHLEVEL "修正版本,例如:1"

file: os/os2/os.h

#define PLATFORM "这里填写操作系统的名称,例如:Win32"

二、编译操作
代码:
按照一般正常步骤编译安装

修改webserver的header伪装服务器

一般在Linux下查询一个网站链接返回的header信息,用

引用:

curl -I 链接

curl --head 链接

即可

好了开始正题
修改header信息
一、Apache

引用:

修改
include/ap_release.h

#define AP_SERVER_BASEVENDOR "
主版本
#define AP_SERVER_MINORVERSION_NUMBER 
次版本
#define AP_SERVER_PATCHLEVEL_NUMBER   
修正版本

修改
os/os2/os.h

#define PLATFORM "OS/2"
这里填写操作系统的名称

二、Nginx

引用:

两种方法任选其一即可
1、修改
src/core/nginx.h
2、修改
src/http/ngx_http_header_filter_module.c

static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;

三、IIS

引用:

需要用16进制编辑器编辑
SYSTEM32/INETSRV/W3SVC.DLL

四、Tomcat 6.0.20

引用:


java/org/apache/coyote/http11/Constants.java

java/org/apache/coyote/ajp/Constants.java
这两个文件中查找
public static final byte[] SERVER_BYTES =
ByteChunk.convertToBytes("Server: Apache-Coyote/1.1" + CRLF);
然后修改红色部分

五、Cherokee

引用:

修改
cherokee/version.c
中包含有
Cherokee web server
的部分

修改Nginx的header伪装服务器的更多相关文章

  1. 修改nginx版本名称伪装任意web server

    如何修改nginx默认的名称,可以稍微的伪装一下,也可以装x 一般来说修改3个位置,一个是nginx.h.另一个是ngx_http_header_filter_module.c.还有一个ngx_htt ...

  2. Nginx里Header修改

    有时候,我们可能有修改Nginx默认Header的需求.本文就将常见的方法列出来供大家参考. 修改普通请求的Header Nginx内置的模块暂时仅支持修改响应头,使用add_header.其中: a ...

  3. Linux服务器上迁移项目路径,修改nginx配置,迁移及备份MongoDB数据库流程 (超详细)!!!

    缘由:客户服务器项目路径不是很合理,导致Jenkins自动部署时还需要添加路径后再更新部署,所以需要把项目路径统一和规范化. 迁移项目路径,保证路径合规,同时做好备份和迁移.迁移后先安装好依赖. 项目 ...

  4. Flask+Nginx+uWSGI在Ubuntu服务器上的配置

    Flask+Nginx+uWSGI在Ubuntu服务器上的配置 Step1 安装系统环境 Ubuntu服务器选择是阿里云的ECS服务,ECS提供单独的内存\CPU\带宽\存储规格可以选择,并且提供合适 ...

  5. 修改nginx的访问目录以及遇到的403错误修改总结

    对于这个问题困扰了我好几天,前篇文章介绍了图片服务器的使用,但是两个服务器如何进行通话访问呢,即如何通过nginx来访问ftp服务器上的资源文件呢,这里面需要修改nginx的配置文件(vi /usr/ ...

  6. Nginx搭建flv视频点播服务器

    Nginx搭建flv视频点播服务器 前一段时间使用Nginx搭建的多媒体服务器只能在缓冲过的时间区域内拖放, 而不能拖放到未缓冲的地方. 这就带来了一个问题: 如果视频限速的速率很小, 那么客户端观看 ...

  7. Nginx下载服务生产服务器调优

    一.内存调优 内核关于内存的选项都在/proc/sys/vm目录下.   1.pdflush,用于回写内存中的脏数据到硬盘.可以通过 /proc/sys/vm/vm.dirty_background_ ...

  8. Centos6.5 nginx+nginx-rtmp配置流媒体服务器

    之前使用命令方式安装nginx并配置了反向代理,由于想做一个视频直播的小项目,查了流媒体服务器的方案,发现nginx有相关模块,于是开始搞起. nginx-rtmp模块需要在nginx编译时,以模块方 ...

  9. nginx+tomcat+memcached搭建服务器集群及负载均衡

    在实际项目中,由于用户的访问量很大的原因,往往需要同时开启多个服务器才能满足实际需求.但是同时开启多个服务又该怎么管理他们呢?怎样实现session共享呢?下面就来讲一讲如何使用tomcat+ngin ...

随机推荐

  1. C#加密方法汇总(SHA1加密字符串,MD5加密字符串,可逆加密等)

    using System;using System.Collections.Generic;using System.Text; namespace StringEncry{ class Encode ...

  2. 关于InputStream类的available()方法

    要一次读取多个字节时,经常用到InputStream.available()方法,这个方法可以在读写操作前先得知数据流里有多少个字节可以读取.需要注意的是,如果这个方法用在从本地文件读取数据时,一般不 ...

  3. 62. 63. Unique Paths 64. Minimum Path Sum

    1. A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). ...

  4. textBaseline

    <!DOCTYPE html><html><body> <canvas id="myCanvas" width="400&quo ...

  5. spring cloud 学习(一)初学SpringCloud

    初学SpringCloud 前言 在SpringBoot的坑还没填完的情况下,我又迫不及待地开新坑了.主要是寒假即将结束了,到时又得忙于各种各样的事情……留个坑给自己应该就会惦记着它,再慢慢地补上…… ...

  6. DevExpress WPF入门指南:Smart Tag扩展功能

    Smart Tag提供了一些扩展功能用于简化指定某些属性的程序,比如下面这几项: Application Theme Data Context Image Gallery Convert to DXW ...

  7. localforage 对不同浏览器 使用不同的缓存策略 , 大大提高了性能 ,IndexedDB,WebSQL 和 localStorage 三种存储模式

    支持回调的异步 API: 支持 IndexedDB,WebSQL 和 localStorage 三种存储模式(自动为你加载最佳的驱动程序): 支持 BLOB 和任意类型的数据,让您可以存储图片,文件等 ...

  8. vue 登录验证引擎

    1.router配置: 路由元信息 const router = new VueRouter({ routes: [ { path: '/foo', component: Foo, children: ...

  9. idea中看不到项目结构该怎么办

    点击file->project structure..->Modules 点击右上角+加号 ->import Modules 2.选择你的项目,点击确定   3.在如下页面选择imp ...

  10. [ML] 解决样本类别分布不均衡的问题

    转自:3.4 解决样本类别分布不均衡的问题 | 数据常青藤 (组织排版上稍有修改) 3.4 解决样本类别分布不均衡的问题 说明:本文是<Python数据分析与数据化运营>中的“3.4 解决 ...