Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2003712
  • 博文数量: 433
  • 博客积分: 918
  • 博客等级: 准尉
  • 技术积分: 3218
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 18:21
个人简介

你是不是暗恋我,那就给我发个消息呀,让我知道o(∩∩)o

文章分类

全部博文(433)

分类: LINUX

2014-03-04 22:41:59



Nginx默认是显示版本号的,如:

[root@bkjz ~]# curl -I
HTTP/1.1 200 OK
Server: nginx/0.8.44
Date: Tue, 13 Jul 2010 14:05:11 GMT
Content-Type: text/html
Content-Length: 8284
Last-Modified: Tue, 13 Jul 2010 12:00:13 GMT
Connection: keep-alive
Keep-Alive: timeout=15
Accept-Ranges: bytes

这样就给人家看到你的服务器nginx版本是0.8.44,前些时间暴出了一些Nginx版本漏洞,就是说有些版本有漏洞,而有些版本没有。这样暴露出来的版本号就容易变成攻击者可利用的信息。所以,从安全的角度来说,隐藏版本号会相对安全些!

那nginx版本号可以隐藏不?其实可以的,看下面我的步骤:


1、进入nginx配置文件的目录(此目录根据安装时决定),用vim编辑打开

# vim nginx.conf

在http {—}里加上server_tokens off; 如:

http {
……省略
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
server_tokens off;
…….省略
}

2、编辑php-fpm配置文件,如fastcgi.conf或fcgi.conf(这个配置文件名也可以自定义的,根据具体文件名修改):

找到:
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
改为:
fastcgi_param SERVER_SOFTWARE nginx;

3、重新加载nginx配置:

# /etc/init.d/nginx reload

这样就完全对外隐藏了nginx版本号了,就是出现404、501等页面也不会显示nginx版本。


#######重新编译#############
vi src/http/ngx_http_header_filter_module.c

修改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: tws" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF; (这行不要去改,不然后面编译会报错,我不知道网上其他人是怎么处理的,也不知道他们到底有没有亲手试过)

再来
vi src/core/nginx.h

#define nginx_version      1008000
#define NGINX_VERSION      "1.7.2"
#define NGINX_VER          "nginx/" NGINX_VERSION

.............

#define NGINX_VAR          "NGINX"
#define NGX_OLDPID_EXT     ".oldbin"



改为
#define nginx_version      1008000
#define NGINX_VERSION      "1.1.0"
#define NGINX_VER          "aaserver/" NGINX_VERSION

...............

#define NGINX_VAR          "AASERVER"
#define NGX_OLDPID_EXT     ".oldbin"






阅读(1409) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~