修改APACHE和NGINX的header伪装服务器
为了服务器安全。我们很有必要伪装自己的真实服务器环境.不想让别有用心的人知道自己的webserver真实环境,就不得不修改我们的webserer软件了,对发送的server header进行伪装。
用curl就能查到服务器返回的Response header有这么几条信息
C:/curl-7.18.0>curl.exe -I www.bnxb.com
或者到https://www.bnxb.com/tools/check-header.php输入域名查询
发现返回
HTTP/1.1 200 OK
Server: nginx/1.4.0
X-Powered-By:PHP/5.5.1
Date: Thu, 25 May 2017 06:29:29 GMT
Content-Type: text/html
Last-Modified: Wed, 24 May 2017 16:19:30 GMT
Connection: keep-alive
Vary: Accept-Encoding
ETag: W/"5925b292-125eb"
Content-Encoding: gzip
第二条Server显示了服务器使用的程序版本以及版本号
第三条X-Powered-By显示了脚本语言以及版本号
最后一条显示了通过gzip进行压缩
这里明显就存在安全问题:
那么第二、三条将服务器的版本信息暴露出来了,如果在发行版本上出现什么BUG,无异将自己服务器漏洞暴露出来了。
首先是NGINX的修改方法
一、Windows环境
修改nginx的server信息
1.进入nginx安装目录下,用文本编辑器编辑conf目录下的fastcgi.conf
fastcgi_param SERVER_SOFTWAREnginx/$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
关闭 php X-Powered-By 信息
修改 php.ini 文件,设置
expose_php = Off
重启php服务
php-fpm restart
二、Linux环境下
1、先在nginx.conf 的 http {} 里头加入 server_tokens 的参数
server_tokens off;
例如:
http {
include mime.types;
default_type application/octet-stream;
server_tokens off; #关闭版本显示
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
# ...
}
重载nginx
#nginx reload
2、修改编译src/core/nginx.h
我们先看下更改前的header信息:
[root@Bnxb-Server /]# curl -I http://www.bnxb.com
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 02 Nov 2016 15:25:42 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 01 Nov 2016 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.
*/
#ifndef _NGINX_H_INCLUDED_
#define _NGINX_H_INCLUDED_
#define nginx_version 1003008
#define NGINX_VERSION "1.3.8"
#define NGINX_VER "BnxbOS/" NGINX_VERSION
#define NGINX_VAR "BnxbOS"
#define NGX_OLDPID_EXT ".oldbin"
#endif /* _NGINX_H_INCLUDED_ */
编译Nginx,重新看看结果header信息还是没变,不用急,下面还有:
3、更改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: BnxbOS" CRLF;
static char ngx_http_server_full_string[] = "Server: BnxbOS/1.0" CRLF;
将上面红色修改为你想要显示的信息,重新编译后重启Nginx!
4、关闭 php X-Powered-By 信息
修改 php.ini 文件,设置
expose_php = Off重启php服务
#php-fpm restart
重新查看header信息:
[root@Bnxb-Server /]# curl -I http://www.bnxb.com
用curl就能查到服务器返回的Response header有这么几条信息
C:/curl-7.18.0>curl.exe -I www.bnxb.com
或者到https://www.bnxb.com/tools/check-header.php输入域名查询
发现返回
HTTP/1.1 200 OK
Server: nginx/1.4.0
X-Powered-By:PHP/5.5.1
Date: Thu, 25 May 2017 06:29:29 GMT
Content-Type: text/html
Last-Modified: Wed, 24 May 2017 16:19:30 GMT
Connection: keep-alive
Vary: Accept-Encoding
ETag: W/"5925b292-125eb"
Content-Encoding: gzip
第二条Server显示了服务器使用的程序版本以及版本号
第三条X-Powered-By显示了脚本语言以及版本号
最后一条显示了通过gzip进行压缩
这里明显就存在安全问题:
那么第二、三条将服务器的版本信息暴露出来了,如果在发行版本上出现什么BUG,无异将自己服务器漏洞暴露出来了。
首先是NGINX的修改方法
一、Windows环境
修改nginx的server信息
1.进入nginx安装目录下,用文本编辑器编辑conf目录下的fastcgi.conf
fastcgi_param SERVER_SOFTWAREnginx/$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
关闭 php X-Powered-By 信息
修改 php.ini 文件,设置
expose_php = Off
重启php服务
php-fpm restart
二、Linux环境下
1、先在nginx.conf 的 http {} 里头加入 server_tokens 的参数
server_tokens off;
例如:
http {
include mime.types;
default_type application/octet-stream;
server_tokens off; #关闭版本显示
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
# ...
}
重载nginx
#nginx reload
2、修改编译src/core/nginx.h
我们先看下更改前的header信息:
[root@Bnxb-Server /]# curl -I http://www.bnxb.com
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 02 Nov 2016 15:25:42 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 01 Nov 2016 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.
*/
#ifndef _NGINX_H_INCLUDED_
#define _NGINX_H_INCLUDED_
#define nginx_version 1003008
#define NGINX_VERSION "1.3.8"
#define NGINX_VER "BnxbOS/" NGINX_VERSION
#define NGINX_VAR "BnxbOS"
#define NGX_OLDPID_EXT ".oldbin"
#endif /* _NGINX_H_INCLUDED_ */
编译Nginx,重新看看结果header信息还是没变,不用急,下面还有:
3、更改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: BnxbOS" CRLF;
static char ngx_http_server_full_string[] = "Server: BnxbOS/1.0" CRLF;
将上面红色修改为你想要显示的信息,重新编译后重启Nginx!
4、关闭 php X-Powered-By 信息
修改 php.ini 文件,设置
expose_php = Off重启php服务
#php-fpm restart
重新查看header信息:
[root@Bnxb-Server /]# curl -I http://www.bnxb.com
顶(0)
踩(0)
- 最新评论