Nginx 屏蔽服务器名称与版本信息(源码级修改)

Nginx 屏蔽服务器名称与版本信息(源码级修改)

一、背景与目的

在生产环境部署 Nginx 时,默认配置会在 Server 响应头中暴露服务类型(如 nginx)和版本号(如 nginx/1.25.4)。这些信息可能被攻击者利用来针对性发起攻击,因此需通过源码修改彻底屏蔽,确保 Server 头不包含任何服务标识。

二、适用版本

本文以 Nginx 1.25.4 为例,其他版本(如 1.23.x、1.24.x)操作流程类似。

三、操作步骤

修改源码文件

  1. 进入 Nginx 源码目录(假设已下载并解压 nginx-1.25.4.tar.gz):

    bash 复制代码
    cd nginx-1.25.4
  2. 打开定义服务器标识的核心文件:

    bash 复制代码
    vi src/http/ngx_http_header_filter_module.c
  3. 找到以下原代码行(定义 Server 头信息):

    c 复制代码
    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;
  4. 修改为以下内容(移除所有服务类型和版本信息):

    c 复制代码
    static u_char ngx_http_server_string[] = "Server:" CRLF;
    static u_char ngx_http_server_full_string[] = "Server: " CRLF;
    static u_char ngx_http_server_build_string[] = "Server: " CRLF;
  5. 保存文件并退出编辑器(vi 中按 ESC 后输入 :wq 回车)。

四、后续操作提示

修改源码后,需继续执行配置、编译、安装等步骤使修改生效,具体可参考:

  1. 配置编译选项(如启用 SSL 模块等)
  2. 执行 make 编译
  3. 执行 make install 安装
  4. 启动 Nginx 并验证 Server 头是否已屏蔽

五、注意事项

  • 升级 Nginx 时需重新修改源码,否则会恢复默认标识。
  • 该修改不影响 Nginx 功能,仅屏蔽对外暴露的服务信息。
相关推荐
Alex艾力的IT数字空间4 小时前
在 Kylin(麒麟)操作系统上搭建 Docker 环境
大数据·运维·缓存·docker·容器·负载均衡·kylin
陳10304 小时前
Linux:进程间切换与调度
linux·运维·服务器
邂逅星河浪漫6 小时前
【银行内网开发-管理端】Vue管理端+Auth后台开发+Nginx配置+Linux部署(详细解析)
linux·javascript·css·vue.js·nginx·html·前后端联调
JJay.6 小时前
Android BLE 稳定连接的关键,不是扫描,而是 GATT 操作队列
android·服务器·前端
SilentSamsara6 小时前
TCP 三次握手:连接建立失败的那些坑
运维·服务器·网络·网络协议·tcp/ip
code tsunami7 小时前
如何在车辆数据自动化中解决Cloudflare Turnstile
运维·microsoft·自动化
翼龙云_cloud8 小时前
亚马逊云代理商:CloudWatch Agent 全解析 5 步实现服务器监控
运维·服务器·云计算·aws·云服务器
Cyber4K9 小时前
【Nginx专项】基础入门篇:状态页、微更新、内容替换、读取、压缩及防盗链
linux·运维·服务器·nginx·github
awei091610 小时前
MinIO配置自定义crossdomain.xml跨域策略(Nginx反向代理实现)
xml·java·nginx
门思科技10 小时前
LoRaWAN项目无需NS和平台?一体化网关如何简化部署与成本
服务器·网络·物联网