一、隐藏服务器缺省banner的目的

通过隐藏服务器缺省banner,可以避免黑客获取真实的服务器类型和版本信息,间接地增加攻击难度。

二、查看服务器的缺省banner(标记)的命令

1、Linux: curl -I 服务器ip:port , 就是获取http响应头 。

详细记录一次Tomcat服务器和Nginx服务器的缺省banner的修改全过程_Nginx
通过命令返回的信息,我们可以看到这是Tomcat的缺省banner:Apache-Coyote/1.1。

2、Windows:我们可以利用浏览器查看响应头

步骤:①打开浏览器 ——> ② 按F12,打开开发者工具 ——> ③输入请求地址
——> 查看开发者工具网络(Network),即可看到响应头

详细记录一次Tomcat服务器和Nginx服务器的缺省banner的修改全过程_Nginx_02
上面截图我是用的是谷歌浏览器,其他浏览器大同小异。

二、修改Tomcat服务器缺省banner

(1)我们可以编辑Tomcat(安装目录)/conf/server.xml 文件 ,找到我们应用程序端口对应的元素,新增 server=“自定义” 属性,覆盖掉原来的server属性。

详细记录一次Tomcat服务器和Nginx服务器的缺省banner的修改全过程_Nginx_03
(2)我们修改后重启Tomcat之后,验证一下我们的修改成果吧:

详细记录一次Tomcat服务器和Nginx服务器的缺省banner的修改全过程_Nginx_04

三、修改Nginx服务器的缺省banner

1、没有修改之前我们看到Nginx服务器显示server属性为nginx。

详细记录一次Tomcat服务器和Nginx服务器的缺省banner的修改全过程_Nginx_05
2、由于Nignx没有提供相关配置项改变缺省banner,所以我们需要改变源码,然后重编译和重新安装一下,具体操作:

(1) 找到/opt/nginx/nginx-1.14.1/src/http/ngx_http_header_filter_module.c文件(我的nginx的安装目录为/opt/nginx/nginx-1.14.1),修改以下变量的声明:

         static u_char ngx_http_server_string[] = "Server: nginx" CRLF;
         static u_char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
         static u_char ngx_http_server_build_string[] = "Server: " NGINX_VER_BUILD CRLF;      

         修改为:

        static u_char ngx_http_server_string[] = "Server: unkowna" CRLF;
        static u_char ngx_http_server_full_string[] = "Server: unkowna " CRLF;
        static u_char ngx_http_server_build_string[] = "Server: unkowna" CRLF;

(2)执行编译命令:

$ ./configure --prefix=/usr/local/nginx          
$ make
$ make install

–prefix=/usr/local/nginx (–prefix是nginx的安装到哪个目录)

(3)启动nginx,我们测试一下效果:

详细记录一次Tomcat服务器和Nginx服务器的缺省banner的修改全过程_Nginx_06