在nginx的配置文件中可以设置不发送版本信息: 1> vi nginx.conf 在http {}里加上server_tokens off 2> 编辑php-fpm配置文件,如fastcgi.conf或fcgi.conf: 找到: fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 改为: fastcgi_param SERVER_SOFTWARE nginx; 这样可以达到隐藏版本号的目的,但是外面仍然知道你使用的是nginx,一旦黑客发现nginx的某个漏洞而且恰好是你使用的这个版本,有耐心的黑客直接尝试利用此漏洞来攻击你的服务器照样能够得手。 所以为了做得更干净我们可以修改nginx的源代码以达到表面上隐藏服务器信息的目的: 首先下载到nginx的源码并解压进入src目录, 1> vi nginx/src/http/ngx_http_header_filter_module.c 找到static char ngx_http_server_string[] = "Server: nginx" CRLF; 这一行,修改里面的Server:nginx为你想要的名称,如:Server:xws 2 >vi nginx/src/core/nginx.h 找到如下几行并按照自己的意愿修改,如: #define nginx_version 0110 #define NGINX_VERSION "0.1.10" #define NGINX_VER "xws/" NGINX_VERSION #define NGINX_VAR "XWS" 3> 重新编译安装: ./configure --prefix=/opt/nginx --with-http_ssl_module ... ... make make install 现在启动nginx服务并试着查看下版本: $curl -I localhost HTTP/1.1 200 OK Server: xws/0.1.10 Date: Wed, 09 Feb 2011 08:17:31 GMT Content-Type: text/html Content-Length: 151 Last-Modified: Wed, 09 Feb 2011 07:22:53 GMT Connection: keep-alive Accept-Ranges: bytes 注意Server一行,是不是变了?但是需要注意的是这只是表面上掩盖了你使用nginx 的事实,只能稍稍增加点牛逼黑客进攻过程的乐趣。进一步加固nginx (责任编辑:IT) |