介紹
我們使用nginx進行代理時,所有的網絡請求都是通過Nginx進行分發。而只要是軟件那么都會有漏洞。
Nginx也再所難免會有一些漏洞,而Nginx也在不斷進行版本迭代,那么我們就需要在對外訪問的時候,避免外界獲取到我們的
Nginx的版本。減少部分因為版本暴露而出現的攻擊風險。(及時升級最新版本,安全性會更高。)
本篇介紹如何將我們的Nginx的版本號進行隱藏,避免受到外界攻擊。
1、如何查詢自己的服務器Nginx 版本是否隱藏
下面介紹不同環境下的查詢方法
(1)windows環境下
我們可以通過瀏覽器訪問網頁,按F12?進入檢查模式,通過Network?面板可以看到當前頁面的所有網絡請求
隨意找一個接口點擊,通過彈出的請求詳情中的Headers面板下的?Response Headers?可以看到下面的數據: 其中Server?后面就會顯示你的nginx 的版本號了:
Accept-Ranges: bytes Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: Content-Type,ADMIN-Authorization,API-Authorization Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS Access-Control-Max-Age: 3600 Cache-Control: public,max-age=60,s-maxage=60 Content-Encoding: gzip Content-Length: 3348 Content-Type: application/javascript Date: Fri, 23 Sep 2022 01:55:37 GMT Last-Modified: Tue, 08 Mar 2022 07:14:08 GMT Server: nginx/1.23.0 Vary: Origin
上面的實例是 nginx版本號被暴露的實例, 如果隱藏版本號后就會顯示成:Server: nginx/?不會懈怠有版本號。
(2)Linux 環境下
相較于windows的查詢方法,Linux 查詢可以直接通過?curl -I?命令進行查詢了。
例如查本站的效果:
[root@iZuf63tu3fn1swasqa62h8Z nginx]# curl -I zinyan.com HTTP/1.1 301 Moved Permanently Server: nginx Date: Fri, 23 Sep 2022 02:09:49 GMT Content-Type: text/html Content-Length: 178 Connection: keep-alive Location: https://zinyan.com/
如果沒有進行nginx 版本隱藏就會在nginx 后面加上版本號了。
2、隱藏Nginx 版本
隱藏方法比較簡單:需要打開nginx.conf 配置文件。(通常情況下該文件目錄在?/etc/nginx/nginx.conf)
切換到nginx.conf 文件所在目錄下,使用vim nginx.conf?打開文件。(按I進入到編輯模式)
然后在server級別下添加:?server_tokens off;?如果原先有server_tokens 就將值改為on,如果沒有就添加整個。
實現效果如下:
http{ ... server{ listen 80 default_server; listen [::]:80 default_server; server_name_; root /usr/share/nginx/html; server_tokens off;#添加這一項就可以了 location / { } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } }
添加完畢后,按Esc?鍵退出編輯模式,然后輸入:wq?保存退出即可。(如果不熟悉vim 指令可以通過https://zinyan.com/?p=23 了解)
最后執行:
nginx -s reload
重啟nginx 就可以了。就能實現版本的隱藏了。
默認情況下,nginx 是不會隱藏版本號的。需要我們自己主動配置。