一、先介绍nginx隐藏版本号的方法。

搭建好nginx或者apache,为了安全起见我们都会隐藏他们的版本号,这边讲的是nginx的版本号,如果你也想隐藏apache的版本号,那请点前面的链接。请看nginx版本号信息隐藏文章。

Nginx默认是显示版本号的,如:

[root@bkjz ~]# curl -I www.nginx.org
1
[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
1
2
3
4
5
6
7
8
9
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
1
# vim nginx.conf

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

http {
……省略
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
server_tokens off;
…….省略
}
1
2
3
4
5
6
7
8
9
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;
1
2
3
4
找到:
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
改为:
fastcgi_param SERVER_SOFTWARE nginx;

3、重新加载nginx配置:

# /etc/init.d/nginx reload
1
# /etc/init.d/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
1
2
3
4
5
6
7
# 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

二、下面是Apache隐藏版本号的方法。

安装完apache一般第一时间都是关闭apache的版本信息和其他信息,一些黑客会通过apache暴露出来的信息针对性的入侵,为了服务器的安全这些信息一定要及时关闭,配置如下

1. 隐藏Apache信息

1.1 主配置中启用httpd-default.conf

# vi /usr/local/apache2/conf/httpd.Conf
//找到httpd-default.conf,删除includes前面的“#”,改成如下
Include conf/extra/httpd-default.conf
1
2
3
# vi /usr/local/apache2/conf/httpd.Conf
//找到httpd-default.conf,删除includes前面的“#”,改成如下
Include conf/extra/httpd-default.conf

1.2 修改httpd-default.conf

文件:/usr/local/apache2/conf/extra/httpd-default.conf

找到

ServerTokens Full
ServerSignature On
1
2
ServerTokens Full
ServerSignature On

改成

ServerTokens Prod
ServerSignature off
1
2
ServerTokens Prod
ServerSignature off

2. 测试

2.1 修改前截图

隐藏Nginx/Apache版本号的安全性与方法-LMLPHP

未隐藏apache信息

2.2 隐藏后

隐藏Nginx/Apache版本号的安全性与方法-LMLPHP

隐藏apache信息

 3. 结束

配置完成,很简单.

04-19 18:46
查看更多