我們使用Nginx進行代理程式時,所有的網路請求都是透過Nginx進行分發。而只要是軟體那麼都會有漏洞。
Nginx也再所難免會有一些漏洞,而Nginx也在不斷進行版本迭代,那麼我們就需要在對外訪問的時候,避免外界獲取到我們的
Nginx的版本。減少部分因為版本曝光而出現的攻擊風險。 (及時升級最新版本,安全性會更高。)
本篇介紹如何將我們的Nginx的版本號進行隱藏,避免受到外界攻擊。
下面介紹不同環境下的查詢方法
我們可以透過瀏覽器存取網頁,按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/ 不會懈怠有版本號碼。
相對於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 後面加上版本號了。
隱藏方法比較簡單:需要開啟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 是不會隱藏版本號碼的。需要我們自己主動配置。
以上是如何將我們的Nginx的版本號碼進行隱藏的詳細內容。更多資訊請關注PHP中文網其他相關文章!