天天看點

nginx 隐藏php版本号,(原創)徹底隐藏Nginx版本号的安全性與方法

Nginx預設是顯示版本号的,如:

[[email protected] ~]# 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版本是0.8.44,前些時間暴出了一些Nginx版本漏洞,就是說有些版本有漏洞,而有些版本沒有。這樣暴露出來的版本号就容易變成攻擊者可利用的資訊。是以,從安全的角度來說,隐藏版本号會相對安全些!

那nginx版本号可以隐藏不?其實可以的,看下面我的步驟:

1、進入nginx配置檔案的目錄(此目錄根據安裝時決定),用vim編輯打開

# vim nginx.conf

在http {—}裡加上server_tokens off; 如:

http {

……省略

sendfile on;

tcp_nopush on;

keepalive_timeout 60;

tcp_nodelay on;

server_tokens off;

…….省略

}

nginx 隐藏php版本号,(原創)徹底隐藏Nginx版本号的安全性與方法

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

這樣就完全對外隐藏了nginx版本号了,就是出現404、501等頁面也不會顯示nginx版本。

下面測試一下:

[[email protected] ~]# curl -I www.ha97.com

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

……

Firefox裡的伺服器資訊顯示工具也不能顯示出nginx版本号(其實這個工具也是利用curl 指令偵查的)如圖:

nginx 隐藏php版本号,(原創)徹底隐藏Nginx版本号的安全性與方法

OK,完畢。