修改nginx服務(wù)器類型實(shí)現(xiàn)簡(jiǎn)單偽裝(隱藏nginx類型與版本等)
修改服務(wù)器類型為了防止被有所圖的人利用,才做的一些調(diào)整。比如當(dāng)前使用的一個(gè)低版本正好被爆出漏洞,如果被發(fā)現(xiàn),那豈不是危險(xiǎn)。
1、隱藏版本號(hào),修改nginx.conf,在http區(qū)塊加入
server_tokens off;
然后重新加載nginx,可以看到server頭部也是不帶版本號(hào),也可以通過(guò)404查看
2、返回自定義服務(wù)器類型
通過(guò)curl -i http://127.0.0.1 查看當(dāng)前的類型或者一些站長(zhǎng)工具都可以看到,可以修改一為gws或者GFW來(lái)威懾一些利用工具掃描的家伙
具體方法:
[root@REDIS_CLUSTER nginx-1.8.1]# vim src/http/ngx_http_header_filter_module.c
修改前
static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
...
修改后
static char ngx_http_server_string[] = "Server: gws" CRLF;
static char ngx_http_server_full_string[] = "Server: gws" CRLF;
然后重新編譯后,查看效果(Server: gws)
[root@REDIS_CLUSTER nginx-1.8.1]# /usr/local/nginx/sbin/nginx -s stop
[root@REDIS_CLUSTER nginx-1.8.1]# /usr/local/nginx/sbin/nginx
[root@REDIS_CLUSTER nginx-1.8.1]# curl -i http://127.0.0.1
HTTP/1.1 404 Not Found
Server: gws
Date: Tue, 02 Feb 2016 04:02:40 GMT
Content-Type: text/html
Content-Length: 168
Connection: keep-alive
下面是補(bǔ)充的內(nèi)容:
修改NGINX版本名稱偽裝任意WEB SERVER
無(wú)論是作為Web服務(wù)器或其他類型程序的反向代理服務(wù)器,Nginx("engine x")都有著高性能且輕量級(jí)的優(yōu)勢(shì)。其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上Nginx的并發(fā)能力確實(shí)在同類型的網(wǎng)頁(yè)服務(wù)器中表現(xiàn)較好。這也使得Nginx在如今不管是存放在高配獨(dú)立服務(wù)器上的大型的門戶,還是存放在迷你64M內(nèi)存VPS上的小型的個(gè)人博客,Nginx都在被廣泛使用著。
國(guó)內(nèi)淘寶、新浪、網(wǎng)易、騰訊等都在使用。其中淘寶正是基于原作者的BSD-like協(xié)議,在其源代碼基礎(chǔ)上開(kāi)發(fā)了Tengine,這暫且不表。
今天我們來(lái)說(shuō)說(shuō),如何修改Nginx其內(nèi)部默認(rèn)名稱。這對(duì)安全或者裝逼都是非常實(shí)用的。
我們都知道一般Nginx有哪些內(nèi)部名稱展示,如有通過(guò)HTTP Response
Header中的Server、錯(cuò)誤頁(yè)的footer、FPM-FastCGI等。
一般來(lái)說(shuō)修改3個(gè)位置,一個(gè)是nginx.h、另一個(gè)是ngx_http_header_filter_module.c、還有一個(gè)ngx_http_special_response.c。
提示:以下修改需要在編譯安裝Nginx之前進(jìn)行,修改之后再編譯
現(xiàn)在Web Server使用廣泛,針對(duì)它的攻擊也越來(lái)越多,Nginx這玩意出道時(shí)間也并不長(zhǎng),雖然國(guó)內(nèi)很多門戶網(wǎng)站都用它,小內(nèi)存VPS用戶也愛(ài)它,但是我可不想哪天它爆出了個(gè)驚天BUG,上次80sec公布的Nginx相關(guān)PHP FPM漏洞就是警示哦,倘若偽裝了我的Nginx服務(wù)器,攻擊者就不知道我使用的是何種Web Server,也就無(wú)從下手了。
修改src/core/nginx.h(Nginx內(nèi)部名稱的)
#define NGINX_VERSION "1.8.0"
#define NGINX_VER "NGINX/" NGINX_VERSION
NGINX_VERSION是版本號(hào),NGINX_VER是名稱
修改src/http/ngx_http_header_filter_module.c(HTTP ResponseHeader)
static char ngx_http_server_string[] = "Server: nginx" CRLF;
修改src/http/ngx_http_special_response.c(修改錯(cuò)誤頁(yè)的底部Footer)
static u_char ngx_http_error_tail[] =
"<hr><center>nginx</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;
為什么不修改安裝后的Nginx Config下的fastcgi.conf呢?
因?yàn)楝F(xiàn)在外部已經(jīng)是無(wú)法了解我們的服務(wù)器名稱,已經(jīng)達(dá)到我們的目的了。
而且我們常用的一些程序,可能會(huì)對(duì)你的前端(反向代理服務(wù)器)做判斷,畢竟Nginx不同于Apache,無(wú)法動(dòng)態(tài)規(guī)則。
特別是Wordpress的緩存插件,大多會(huì)通過(guò)判斷你是否Nginx,如果是的話,提醒你添加一些規(guī)則語(yǔ)句。
這時(shí)fastcgi.conf就起作用的,其中的
fastcgi_param SERVER_SOFTWARE
nginx/$nginx_version;可以使得PHP與Nginx內(nèi)部之間的互相了解。
所以我的建議,還是不修改fastcgi.conf,當(dāng)然你非要改,也可以的。
相關(guān)文章
Nginx靜態(tài)壓縮和代碼壓縮提高訪問(wèn)速度詳解
Nginx提供靜態(tài)壓縮功能,對(duì)于比較大的文件,可以自動(dòng)默認(rèn)查找.gz后綴的壓縮包,下面這篇文章主要給大家介紹了關(guān)于Nginx靜態(tài)壓縮和代碼壓縮提高訪問(wèn)速度的相關(guān)資料,需要的朋友可以參考下2022-05-05Windows系統(tǒng)下安裝及部署Nginx詳細(xì)教程(含多個(gè)站點(diǎn)部署)
Nginx是一個(gè)很強(qiáng)大的高性能Web和反向代理服務(wù),也是一種輕量級(jí)的Web服務(wù)器,可以作為獨(dú)立的服務(wù)器部署網(wǎng)站,應(yīng)用非常廣泛,這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下安裝及部署Nginx(含多個(gè)站點(diǎn)部署)的相關(guān)資料,需要的朋友可以參考下2024-01-01Nginx如何獲取自定義請(qǐng)求header頭和URL參數(shù)詳解
這篇文章主要給大家介紹了關(guān)于Nginx如何獲取自定義請(qǐng)求header頭和URL參數(shù)的相關(guān)資料,本文適用于需要在nginx里獲取http請(qǐng)求頭信息或者傳遞的參數(shù)進(jìn)行一些計(jì)算和處理的情況,需要的朋友可以參考下2022-07-07FastDFS及Nginx整合實(shí)現(xiàn)代碼解析
這篇文章主要介紹了FastDFS及Nginx整合實(shí)現(xiàn)代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Nginx的nginx.conf配置文件中文注釋說(shuō)明
這篇文章主要介紹了Nginx的nginx.conf配置文件中文注釋說(shuō)明,本文是個(gè)人注釋版,在生產(chǎn)環(huán)境中經(jīng)常使用,需要的朋友可以參考下2014-12-12