有時(shí)候我們可能會(huì)質(zhì)疑,泄露nginx的版本號(hào)有什么大不了?但實(shí)際上主要通過(guò)惡意構(gòu)造的請(qǐng)求就能產(chǎn)生致命的威脅,如 1.15.6 和 1.14.1 版本之前的 nginx 在 HTTP/2 實(shí)現(xiàn)中存在漏洞,構(gòu)造之后的請(qǐng)求就可能導(dǎo)致nginx內(nèi)存消耗過(guò)大,嚴(yán)重者出現(xiàn)拒絕服務(wù)(Dos)。
大型的網(wǎng)站基本會(huì)隱藏版本號(hào),更有甚者會(huì)自定義web引擎的名稱(chēng),我們先看下天貓和京東的做法。
從上面的截圖,我們可以看出,沒(méi)有一家是顯示web引擎的版本號(hào)的。
在上面文章中,我們已經(jīng)介紹了nginx的編譯方法,其中就包含了headers-more-nginx-module模塊,其中有個(gè)指令more_set_headers可以實(shí)現(xiàn)靈活隱藏web引擎版本號(hào),倘若公司的安全防護(hù)等級(jí)降低,甚至可以自定義名稱(chēng),下面是實(shí)現(xiàn)的方法:
# 在http塊中添加,全局生效
http {
more_set_headers 'Server: pxe';
}
# 在server塊中添加,局部生效,更加靈活
server {
more_set_headers 'Server: pxe';
}
通過(guò)上面的配置后,站點(diǎn)反饋的response headers的server頭將返回值為SRE,黑客的攻擊成本將大大提高。
當(dāng)然,headers-more-nginx-module模塊還有其他實(shí)用的指令,都看一下吧:
1.?more_clear_headers:用于刪除指定的HTTP頭。
location / {
more_clear_headers 'Server';
}
2.?more_set_input_headers:用于修改傳入請(qǐng)求的HTTP頭。
location / {
more_set_input_headers 'X-Forwarded-Proto: https';
}
這將為所有傳入請(qǐng)求添加或修改X-Forwarded-Proto頭。
3.?more_clear_input_headers:用于刪除傳入請(qǐng)求的指定HTTP頭。
location / {
more_clear_input_headers 'User-Agent';
}
這將刪除傳入請(qǐng)求中的User-Agent頭。
通過(guò)合理配置Nginx的server_tokens指令和使用more_set_headers模塊,我們可以有效隱藏Nginx版本號(hào),并進(jìn)一步偽裝服務(wù)器信息。這不僅提升了服務(wù)器的隱蔽性,也增加了攻擊者識(shí)別和攻擊的難度,從而提高了整體安全性。此外,我們往往可能認(rèn)為nginx的安裝很簡(jiǎn)單,但要構(gòu)建一套能抗能打的nginx還是需要有實(shí)用的插件加持,歡迎閱讀上一篇文章,下期將繼續(xù)為大家分享nginx的實(shí)用模塊的具體實(shí)戰(zhàn)。
版權(quán)聲明:文章圖片資源來(lái)源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)留言刪除!!!
評(píng)論