http://blog.rekfan.com/?p=122
黑客攻击一个网站,往往需要了解服务器的架构,网站的架构等信息,了解了这些信息,就知道网站薄弱的地方在哪里了!
为了不让对方知道自己的webserver真实环境,我们可以伪装隐藏自己的真实服务器环境.虽然安防不能做到100%,但至少也会让对方焦头烂额.废话不多说了! @_@``
一. Windows环境
修改nginx的server信息
1.进入nginx安装目录下,用文本编辑器编辑conf目录下的fastcgi.conf
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
2.用文本编辑器编辑conf目录下的fastcgi_params
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
3.#service nginx restart #重启nginx
隐藏nginx的server信息
1.进入nginx安装目录下,用文本编辑器编辑conf目录下的nginx.conf
#http{}里面加:
server_tokens off;
2.#service nginx restart #重启nginx
二.Linux环境下
同windows 操作一样 ,可能文件名稍有不同,不过本人更改后还是显示Nginx,然后按网上的修改编译src/core/nginx.h ,我们先看下更改前的header信息:
[root@REKFAN-Server /]# curl -I http://blog.rekfan.com
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 02 Nov 2012 15:25:42 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 01 Nov 2012 18:47:51 GMT
Connection: keep-alive
ETag: "5092c3d7-264"
Accept-Ranges: bytes
修改后的src/core/nginx.h ,代码如下:
/*
* Copyright (C) Igor Sysoev
* Copyright (C) Nginx, Inc.
* http://blog.rekfan.com/?p=122
*/
#ifndef _NGINX_H_INCLUDED_
#define _NGINX_H_INCLUDED_
#define nginx_version 1003008
#define NGINX_VERSION "1.3.8"
#define NGINX_VER "REKFAN/" NGINX_VERSION
#define NGINX_VAR "REKFAN"
#define NGX_OLDPID_EXT ".oldbin"
#endif /* _NGINX_H_INCLUDED_ */
编译Nginx,重新看看结果header信息还是没变!
最后找到另一个帖子更改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;
将其修改为:
static char ngx_http_server_string[] = "Server: REKFAN" CRLF;
static char ngx_http_server_full_string[] = "Server: REKFAN/1.0" CRLF;
将上面红色修改为你想要显示的信息,重新编译后重新启动下Nginx!
重新查看header信息:
[root@REKFAN-Server /]# curl -I http://blog.rekfan.com
HTTP/1.1 200 OK
Server: REKFAN
Date: Fri, 02 Nov 2012 15:30:28 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 01 Nov 2012 18:47:51 GMT
Connection: keep-alive
ETag: "5092c3d7-264"
Accept-Ranges: bytes
后来发现,当我们添加server_tokens off; 参数的时候,调用的是src/http/ngx_http_header_filter_module.c里的值
不添加的时候,显示版本号调用的是src/core/nginx.h里的值,所以我们修改的时候尽量两个地方都修改!