1. 程式人生 > >隱藏 Nginx 版本號和軟體名

隱藏 Nginx 版本號和軟體名

隱藏nginx版本號:

首先,為什麼要隱藏版本號?

  因為一般來說,軟體的漏洞都與版本有關,隱藏版本號是為了防止惡意使用者利用軟體漏洞進行攻擊。

檢視伺服器響應的頭部資訊(檢視是否隱藏版本號和軟體名):
[[email protected] ~]# curl -I http://localhost/ ##curl - -I

進入 /usr/local/nginx/conf/nginx.conf

再http的行內寫入一條 " server_tokens off; "即可

http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;      #隱藏版本號
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

   #access_log  logs/access.log  main;

   sendfile        on;
    #tcp_nopush     on;

   #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

隱藏版本號前:
HTTP/1.1 200 OK
Server: nginx/1.12.2 ##顯示了版本號
Date: Thu, 08 Nov 2018 08:05:22 GMT
Content-Type:text/html
Content-Length: 612
Last-Modified:Thu, 08 Nov 2018 07:32:55 GMT
Connection: keep-alive
ETag: “5be3e6a7-264”
Accept-Ranges: bytes
在這裡插入圖片描述

隱藏版本號後:
HTTP/1.1 200 OK
Server: nginx ##不顯示版本號
Date: Thu, 08 Nov 2018 08:05:39 GMT
Content-Type:text/html
Content-Length: 612名
Last-Modified:Thu, 08 Nov 2018 07:32:55 GMT
Connection: keep-alive
ETag: “5be3e6a7-264”
Accept-Ranges: bytes
在這裡插入圖片描述

修改軟體名:

為什麼要修改軟體名?

因為黑客知道是 Nginx 伺服器後更容易進行攻擊,需要注意的是,修改 Nginx 軟體名需要重新編譯安裝 Nginx ,如果沒有該方面需求儘量不要做

cd進入nginx的原始碼包目錄後
[[email protected] ~]# cd /root/nginx-1.12.2/

[[email protected] nginx-1.12]# vim +48 src/http/ngx_http_header_filter_module.c
//注意:vim這條命令必須在nginx-1.12原始碼包目錄下執行,+48的意思是vim進入後直接調轉再第48行

找到這三行更改為
static u_char ngx_http_server_full_string[] = "Server:"NGINX_VER CRLF;

在這裡插入圖片描述