一般來說,黑客攻擊服務器的首要步驟就是收集信息,比如說你的軟件版本,這些將成為下一步有針對性攻擊的依據。所以說一定程度的隱藏這些信息就顯得非常有必要了,本文將簡單介紹如何在網絡上隱藏Nginx版本號以及PHP的版本號。
1.隱藏Nginx版本號,Nginx的版本號主要在兩個地方會有,
第一個是HTTP header,有個Server:nginx/1.x.x類似會暴露Web服務器所用軟件名稱以及版本號,這個也是大多數Web服務器最容易暴露版本號的地方,如下:
[root@bkjz ~]# curl -I www.nginx.org
HTTP/1.1 200 OK
Server: nginx/0.8.44
Date: Tue, 13 Jul 2010 14:05:11 GMT
Content-Type: text/html
Content-Length: 8284
Last-Modified: Tue, 13 Jul 2010 12:00:13 GMT
Connection: keep-alive
Keep-Alive: timeout=15
Accept-Ranges: bytes
第二個地方是Nginx出錯頁面,比如404頁面沒有找到等,這是如果用戶沒有指定頁面的話,那么Nginx自己的頁面會有版本戳記。
不過幸運的是對於這兩個地方的版本號隱藏,Nginx都提供了簡單的辦法一步到位,參考server_tokens。通過在配置文件的http節配置server_tokens off來達到我們目的。
1、打開Nginx主配置文件:nginx.conf,取消注釋或添加配置語句。
http {
# ...省略一些配置
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
server_tokens off; #默認是注釋掉的
# ...省略一些配置
}
2、編輯php-fpm配置文件,如fastcgi.conf或fcgi.conf(這個配置文件名也可以自定義的,根據具體文件名修改):
找到:
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
改為:
fastcgi_param SERVER_SOFTWARE nginx;
3、重新加載nginx配置
# /etc/init.d/nginx reload 或
# servic nginx reload
也可以考慮直接重啟。
這樣就完全對外隱藏了nginx版本號了,就是出現404、501等頁面也不會顯示nginx版本。
下面測試一下:
# curl -I www.abc.net HTTP/1.1 200 OK Server: nginx Date: Tue, 13 Jul 2010 14:26:56 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding
轉載自:http://www.ttlsa.com/nginx/hidden-nginx-version/;