隐藏nginx版本号的方法介绍


    出于安全考虑,决定隐藏nginx的版本号。因为暴漏了版本号,也就相当于告诉了别人你的漏洞,别人可以通过这个版本所对应的漏洞利用程序来入侵你的后台。就像我知道你的操作系统内核版本为2.6.18或者我知道了你apache的版本号,我就可以利用对应的0day来进行攻击。所以说,隐藏版本号也是一种不错的安全防护措施。
    未隐藏版本号之前:
    复制代码
    代码如下:
    
    # curl --head www.nginx.org
    HTTP/1.1 200 OK
    Server: nginx/0.8.31
    Date: Wed, 13 Jan 2010 06:17:30 GMT
    Content-Type: text/html
    Content-Length: 2341
    Last-Modified: Mon, 11 Jan 2010 15:45:11 GMT
    Connection: keep-alive
    Keep-Alive: timeout=15
    Accept-Ranges: bytes
    这样一下子就给人家看到你的服务器nginx版本是0.8.31
    可以不显示不?
    当然可以
    复制代码
    代码如下:
    
    #vi nginx.conf
    在http 加上server_tokens off;
    http {
    ......省略配置
    sendfile on;
    tcp_nopush on;
    keepalive_timeout 65;
    tcp_nodelay on;
    server_tokens off www.jb51.net;
    .......省略配置
    }
    编辑php-fpm配置文件 如fcgi.conf 、fastcgi.conf(要看你是什么配置文件名)
    fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
    改为
    fastcgi_param SERVER_SOFTWARE nginx;
    nginx重新加载配置就完成了404 501等页面都不会显示nginx版本
    隐藏版本号后:
    复制代码
    代码如下:
    
    #curl --head 127.0.0.1
    HTTP/1.1 200 OK
    Server: nginx
    Date: Wed, 13 Jan 2010 06:25:01 GMT
    Content-Type: text/html
    Content-Length: 793
    Last-Modified: Sat, 12 Dec 2009 02:28:16 GMT
    Connection: keep-alive
    Accept-Ranges: bytes