隱藏 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;