Nginx屏蔽服務(wù)器名稱與版本信息方式(源碼級修改)
一、背景與目的
在生產(chǎn)環(huán)境部署 Nginx 時(shí),默認(rèn)配置會在 Server 響應(yīng)頭中暴露服務(wù)類型(如 nginx)和版本號(如 nginx/1.25.4)。
這些信息可能被攻擊者利用來針對性發(fā)起攻擊,因此需通過源碼修改徹底屏蔽,確保 Server 頭不包含任何服務(wù)標(biāo)識。
二、適用版本
本文以 Nginx 1.25.4 為例,其他版本(如 1.23.x、1.24.x)操作流程類似。
三、操作步驟
修改源碼文件
進(jìn)入 Nginx 源碼目錄(假設(shè)已下載并解壓 nginx-1.25.4.tar.gz):
cd nginx-1.25.4
打開定義服務(wù)器標(biāo)識的核心文件:
vi src/http/ngx_http_header_filter_module.c
找到以下原代碼行(定義 Server 頭信息):
static u_char ngx_http_server_string[] = "Server: nginx" CRLF; static u_char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF; static u_char ngx_http_server_build_string[] = "Server: " NGINX_VER_BUILD CRLF;
修改為以下內(nèi)容(移除所有服務(wù)類型和版本信息):
static u_char ngx_http_server_string[] = "Server:" CRLF; static u_char ngx_http_server_full_string[] = "Server: " CRLF; static u_char ngx_http_server_build_string[] = "Server: " CRLF;
保存文件并退出編輯器(vi 中按 ESC 后輸入 :wq 回車)。
四、后續(xù)操作提示
修改源碼后,需繼續(xù)執(zhí)行配置、編譯、安裝等步驟使修改生效,具體可參考:
- 配置編譯選項(xiàng)(如啟用 SSL 模塊等)
- 執(zhí)行
make編譯 - 執(zhí)行
make install安裝 - 啟動 Nginx 并驗(yàn)證
Server頭是否已屏蔽
五、注意事項(xiàng)
- 升級 Nginx 時(shí)需重新修改源碼,否則會恢復(fù)默認(rèn)標(biāo)識。
- 該修改不影響 Nginx 功能,僅屏蔽對外暴露的服務(wù)信息。
六、總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Nginx開啟Brotli壓縮算法實(shí)現(xiàn)過程詳解
這篇文章主要介紹了Nginx開啟Brotli壓縮算法實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
PHP開發(fā)框架kohana3.3.1在nginx下的偽靜態(tài)設(shè)置例子
這篇文章主要介紹了PHP開發(fā)框架kohana3.3.1在nginx下的偽靜態(tài)設(shè)置例子,kohana曾經(jīng)是codeigniter框架的衍生版,后來發(fā)展成另一個(gè)獨(dú)立的PHP5開發(fā)框架,需要的朋友可以參考下2014-07-07
查看nginx是否已經(jīng)啟動的幾種方法總結(jié)
在Ubuntu或其他Linux系統(tǒng)上,有多種方法可以檢查Nginx是否已經(jīng)啟動,文中通過代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用nginx具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-11-11

