隱藏nginx版本號:
首先,爲什麼要隱藏版本號?
因爲一般來說,軟件的漏洞都與版本有關,隱藏版本號是爲了防止惡意用戶利用軟件漏洞進行攻擊。
查看服務器響應的頭部信息(查看是否隱藏版本號和軟件名):
[root@nginx51 ~]# curl -I http://localhost/ ##curl - -I
進入 /usr/local/nginx/conf/nginx.conf後
再http的行內寫入一條 " server_tokens off; "即可
http {
include mime.types;
default_type application/octet-stream;
server_tokens off; #隱藏版本號
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
隱藏版本號前:
HTTP/1.1 200 OK
Server: nginx/1.12.2 ##顯示了版本號
Date: Thu, 08 Nov 2018 08:05:22 GMT
Content-Type:text/html
Content-Length: 612
Last-Modified:Thu, 08 Nov 2018 07:32:55 GMT
Connection: keep-alive
ETag: “5be3e6a7-264”
Accept-Ranges: bytes
隱藏版本號後:
HTTP/1.1 200 OK
Server: nginx ##不顯示版本號
Date: Thu, 08 Nov 2018 08:05:39 GMT
Content-Type:text/html
Content-Length: 612名
Last-Modified:Thu, 08 Nov 2018 07:32:55 GMT
Connection: keep-alive
ETag: “5be3e6a7-264”
Accept-Ranges: bytes
修改軟件名:
爲什麼要修改軟件名?
因爲黑客知道是 Nginx 服務器後更容易進行攻擊,需要注意的是,修改 Nginx 軟件名需要重新編譯安裝 Nginx ,如果沒有該方面需求儘量不要做
cd進入nginx的源碼包目錄後
[root@nginx51 ~]# cd /root/nginx-1.12.2/
[root@nginx51 nginx-1.12]# vim +48 src/http/ngx_http_header_filter_module.c
//注意:vim這條命令必須在nginx-1.12源碼包目錄下執行,+48的意思是vim進入後直接調轉再第48行
找到這三行更改爲
static u_char ngx_http_server_full_string[] = "Server:"NGINX_VER CRLF;