Nginx隐藏server头信息的实现

 更新时间:2023年01月16日 09:32:01   作者:倦~  
本文主要介绍了Nginx隐藏server头信息的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

分析

上一篇文章我们搭建了Nginx,请求响应头如下

[nginx@node01 sbin]$ curl -I 127.0.0.1:8090
HTTP/1.1 200 OK
Server: nginx/1.9.9
Date: Fri, 11 Nov 2022 14:56:38 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Fri, 11 Nov 2022 12:47:59 GMT
Connection: keep-alive
ETag: "636e447f-264"
Accept-Ranges: bytes

可看到这么一行 Server: nginx/1.9.9,暴露了服务为Nginx并且还知道了具体版本号,如果有人想要攻击我们网站,那么他们就会通过这种方式来获取我们网站的一些信息。比如 知道了是Nginx,并且如果恰好发现该版本是有一些漏洞的,那么攻击者就能够很轻松的找到攻击我们的方案,所以隐藏一些信息是很有必要的。

Nginx它考虑到了这方面的问题。给我们提供了一个配置 server_tokens。将该配置放到http快中就可以隐藏版本号了。

隐藏版本号

修改 nginx.conf,添加server_tokens,配置如下

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;
    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       8090;
        server_name  localhost;
            
        location / {
            root   html;
            index  index.html index.htm;
        }
    }

}

重启nginx

版本号已隐藏

[nginx@node01 sbin]$ ./nginx -s reload

[nginx@node01 sbin]$ curl -I 127.0.0.1:8090
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 11 Nov 2022 15:08:55 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Fri, 11 Nov 2022 12:47:59 GMT
Connection: keep-alive
ETag: "636e447f-264"
Accept-Ranges: bytes

php-fpm服务器隐藏版本号

如果搭建的是 php-fpm 服务器的话,还得修改 fastcgi.conf

在该配置中有这么一行

fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
修改后
fastcgi_param  SERVER_SOFTWARE    nginx;

隐藏Server

经过上面的修改,版本号就已经隐藏了,如果连Server信息都不想让别人知道,那就只能修改源码了

修改C文件 src/http/ngx_http_header_filter_module.c

大概在50行左右,将nginx修改为 其它名字

//static char ngx_http_server_string[] = "Server: nginx" CRLF;
//static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
static char ngx_http_server_string[] = "Server: juan" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;

重新编译前记得停掉Nginx 备份自己的nginx.conf

Nginx源码安装教程 https://www.jb51.net/article/142431.htm

编译完后替换之前备份的文件,启动Nginx

[nginx@node01 sbin]$ curl -I 127.0.0.1:8090
HTTP/1.1 200 OK
Server: juan
Date: Fri, 11 Nov 2022 15:34:27 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Fri, 11 Nov 2022 15:30:46 GMT
Connection: keep-alive
ETag: "636e6aa6-264"
Accept-Ranges: bytes

这时Server已经变成自己定义的名字了,nginx的加固就介绍到这。

到此这篇关于Nginx隐藏server头信息的实现的文章就介绍到这了,更多相关Nginx隐藏server头信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx作grpc的反向代理踩坑总结

    nginx作grpc的反向代理踩坑总结

    nginx是一款高性能的web服务器,常用于负载均衡和反向代理,本文主要介绍了nginx作grpc的反向代理踩坑总结,感兴趣的可以了解一下
    2021-07-07
  • 如何让Nginx支持中文文件名具体设置步骤

    如何让Nginx支持中文文件名具体设置步骤

    想让Nginx支持中文文件名首先得让你的系统有中语语言包,设置前可以执行:locale 看一下,如果显示是en_US.UTF-8,即是正常,不用按下面的步骤设置
    2013-06-06
  • Nginx负载均衡中的Memcached缓存模块

    Nginx负载均衡中的Memcached缓存模块

    Nginx 的 ngx_http_memcached_module 模块本身并没有提供缓存功能,它只是一个将用户请求转发到 Memcached 服务器的代理模块,这篇文章主要介绍了Nginx负载均衡之Memcached缓存模块,需要的朋友可以参考下
    2024-06-06
  • 解决Nginx配置静态资源文件404 Not Found问题

    解决Nginx配置静态资源文件404 Not Found问题

    在使用Nginx作为静态资源服务器时,如果配置了根目录root导致404错误,而使用前缀URL配置alias则需要正确处理目录路径,使用alias时要确保目录名后加‘/’,并且在需要时使用root和alias配置,本文介绍Nginx配置静态资源文件404 Not Found问题解决方法,感兴趣的朋友一起看看吧
    2025-03-03
  • Nginx负载均衡之upstream模块简介与使用详解

    Nginx负载均衡之upstream模块简介与使用详解

    nginx有一个最大的功能就是可以实现服务器的负载均衡,下面这篇文章主要给大家介绍了关于Nginx负载均衡之upstream模块简介与使用的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • nginx 负载均衡的简单配置方法

    nginx 负载均衡的简单配置方法

    Nginx 负载均衡的简单配置例子,供初学的朋友参考下
    2013-02-02
  • Nginx proxy、rewrite、alias配置过程

    Nginx proxy、rewrite、alias配置过程

    这篇文章主要介绍了Nginx proxy、rewrite、alias配置过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 使用Nginx解决跨域访问问题的完整案例

    使用Nginx解决跨域访问问题的完整案例

    在现代的Web开发中,跨域访问是一种常见的需求,由于浏览器的同源策略,不同域名之间的访问存在一定的限制,本文将介绍如何使用Nginx来解决跨域访问的问题,并通过一个完整的实例来展示,需要的朋友可以参考下
    2024-03-03
  • Nginx隐藏式跳转(浏览器URL跳转后保持不变)

    Nginx隐藏式跳转(浏览器URL跳转后保持不变)

    这篇文章主要介绍了Nginx隐藏式跳转(浏览器URL跳转后保持不变),需要的朋友可以参考下
    2022-04-04
  • nginx结合openssl实现https的方法

    nginx结合openssl实现https的方法

    这篇文章主要介绍了基于nginx结合openssl实现https的方法,准备工作大家需要安装nginx服务,具体操作过程跟随小编一起看看吧
    2021-07-07

最新评论