修改Nginx的header伪装服务器

有时候为了伪装自己的真实服务器环境.
不像让对方知道自己的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/

[[email protected] 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 "Apache Software Foundation"
这里填写开发组织名,例如:Microsoft Corp.
#define AP_SERVER_BASEPROJECT "Apache HTTP Server"
这里填写服务器软件名
#define AP_SERVER_BASEPRODUCT "Apache"
这里填写服务器软件名
#define AP_SERVER_MAJORVERSION_NUMBER 2
主版本
#define AP_SERVER_MINORVERSION_NUMBER 2
次版本
#define AP_SERVER_PATCHLEVEL_NUMBER   14
修正版本

修改
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
的部分

时间: 2024-10-14 00:33:46

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

修改NGINX版本名称伪装任意

这里把任意改称hello修改NGINX版本名称伪装任意 无论是作为Web服务器或其他类型程序的反向代理服务器,Nginx("engine x")都有着高性能且轻量级的优势.其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好.这也使得Nginx在如今不管是存放在高配独立服务器上的大型的门户,还是存放在迷你64M内存VPS上的小型的个人博客,Nginx都在被广泛使用着. 国内淘宝.新浪.网易.腾讯等都在使用.其中淘宝正是基于原作者的BSD-like

nginx 安全笔记 (修改nginx的header信息和错误显示版本号)

随笔记载,欢迎指正: 修改nginx的header信息和错误显示版本号 1.隐藏版本号: nginx的配置文件nginx.conf找到http栏目加入: server_tokens off; 2.修改显示nginx的名称 需要修改源码文件: /opt/soft/nginx-1.2.0/src/http/ngx_http_special_response.c vi /opt/soft/nginx-1.2.0/src/http/ngx_http_special_response.c 找到29行: 2

修改NGINX版本名称伪装任意WEB SERVER

无论是作为Web服务器或其他类型程序的反向代理服务器,Nginx("engine x")都有着高性能且轻量级的优势.其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好.这也使得Nginx在如今不管是存放在高配独立服务器上的大型的门户,还是存放在迷你64M内存VPS上的小型的个人博客,Nginx都在被广泛使用着. 国内淘宝.新浪.网易.腾讯等都在使用.其中淘宝正是基于原作者的BSD-like协议,在其源代码基础上开发了Tengine,这暂且不表.

Nginx反向代理缓存服务器搭建

Nginx反向代理 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理.

隐藏或者修改nginx信息

细节决定成败,服务器的安全也是这样!隐藏或者修改nginx的信息,不是什么炫酷的技能,只是nginx设置中的一个小小的细节. Http中的Nginx版本信息 查看http请求的response里面的header我们会发现有server这个参数,它表示服务端使用的是什么web服务器. 例如 新浪网: Server: nginx 开源中国: Server: Tengine segmentfault甚至都没有返回server! 很多网站不止返回了nginx而且还带了版本号,而像版本号这种东西完全没必要

nginx反向代理缓存服务器构建

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网

nginx 反向代理缓存服务器构建

代理服务可简单的分为正向代理和反向代理:   正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器, 并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理. 反向代理服务器

一文看懂如何隐藏或者修改nginx信息

Http中的Nginx版本信息查看http请求的response里面的header我们会发现有server这个参数,它表示服务端使用的是什么web服务器. 例如 新浪网: Server: nginx开源中国: Server: Tenginesegmentfault甚至都没有返回server! 很多网站不止返回了nginx而且还带了版本号,而像版本号这种东西完全没必要暴露给用户,我们可以通过设置server_tokens off隐藏掉版本号: http {include mime.types;de

你真的了解如何将 Nginx 配置为Web服务器吗

阅读之前,建议先阅读初识 Nginx. 之后,我们来了解一下 Nginx 配置. 抽象来说,将 Nginx 配置为 Web 服务器就是定义处理哪些 URLS 和如何处理这些URLS 对应的请求.具体来说,就是定义一些虚拟服务器(Virtual Servers),控制具有特定 IP 和域名的请求. 更具体的来说, Nginx 通过定义一系列 locations 来控制对 URIS 的选择.每一个 location 定义了对映射到自己的请求的处理场景:返回一个文件或者代理请求,或者根据不同的错误代码