防黑客攻擊服務器,如何在網絡上隱藏Nginx軟件名與版本號
① 依次修改3個Nginx源碼文件
# vim /usr/local/src/nginx-1.6.3/src/core/nginx.h
找到
#define nginx_version 1006003
#define NGINX_VERSION "1.6.3" <-- 修改為先要顯示的版本號
#define NGINX_VER "nginx/" NGINX_VERSION <-- 修改為想要顯示的軟件名
#define NGINX_VAR "nginx" <-- 修改為想要顯示的軟件名
#define NGX_OLDPID_EXT ".oldbin"
修改為
#define nginx_version 1006003
#define NGINX_VERSION "2.2.23"
#define NGINX_VER "OWS/" NGINX_VERSION
#define NGINX_VAR "OWS"
#define NGX_OLDPID_EXT ".oldbin"
② 修改第二個Nginx源碼文件
# vim /usr/local/src/nginx-1.6.3/src/http/ngx_http_header_filter_module.c
找到
49 static char ngx_http_server_string[] = "Server: nginx" CRLF;
## 將 nginx 修改為想要顯示的軟件名
修改為
49 static char ngx_http_server_string[] = "Server: OWS" CRLF;
③ 修改第三個文件,在網站對外報錯時,它會控制敏感信息
# vim /usr/local/src/nginx-1.6.3/src/http/ngx_http_special_response.c
找到
"<hr><center>" NGINX_VER "</center>" CRLF
修改為
"<hr><center>" NGINX_VER " ([email protected])</center>" CRLF
## 當網站對外報錯時會顯示此段內容
找到
"<hr><center>nginx</center>" CRLF
## 將 nginx 修改為想要顯示的軟件名
修改為
"<hr><center>OWS</center>" CRLF
④ 修改後編譯軟件使其生效,如果是以安裝好的軟件,需要重新編譯Nginx按之前的編譯在編譯一次,配置好配置,啟動服務
在重新編譯後還需要將之前的nginx服務殺死,在啟動方能失效
最後結果
# curl -I www.123.org
HTTP/1.1 200 OK
Server: OWS
Date: Tue, 24 Apr 2018 14:59:04 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.3.27
Link: <http://www.123.org/wp-json/>; rel="https://api.w.org/"
之前配置了隱藏版本號,所以不顯示版本
防黑客攻擊服務器,如何在網絡上隱藏Nginx軟件名與版本號