隐藏Nginx版本号的主要作用是增强服务器的安全性。当Nginx的版本号被隐藏时,攻击者就难以利用已知的漏洞来攻击特定版本的软件,因为他们无法确切知道服务器上运行的Nginx版本。这样可以降低攻击者对系统的了解,增加攻击的复杂性,从而保护服务器免受潜在攻击。

步骤

安装nginx

[root@admin ~]# wget  -c https://nginx.org/download/nginx-1.24.0.tar.gz
--2024-05-01 14:38:29--  https://nginx.org/download/nginx-1.24.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:5c0:2601::6, ...
正在连接 nginx.org (nginx.org)|3.125.197.172|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1112471 (1.1M) [application/octet-stream]
正在保存至: “nginx-1.24.0.tar.gz”

nginx-1.24.0.tar.gz                  100%[====================================================================>]   1.06M  12.2KB/s  用时 98s     

2024-05-01 14:40:09 (11.1 KB/s) - 已保存 “nginx-1.24.0.tar.gz” [1112471/1112471])#
#安装依赖包
[root@admin ~]# yum -y install gcc make gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
正在更新 Subscription Management 软件仓库。
无法读取客户身份

本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。

AppStream                                                                                                         3.1 MB/s | 3.2 kB     00:00    
BaseOS                                                                                                            2.7 MB/s | 2.7 kB     00:00    
软件包 pcre-8.44-3.el9.3.x86_64 已安装。
软件包 zlib-1.2.11-39.el9.x86_64 已安装。
软件包 openssl-1:3.0.7-6.el9_2.x86_64 已安装。
依赖关系解决。
省略 。 。 。 。 。 
[root@admin ~]# useradd  -s /sbin/nologin nginx
[root@admin ~]# tar  xf nginx-1.24.0.tar.gz

预编译安装

[root@admin nginx-1.24.0]# ./configure  --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module 
省略。。。。
[root@admin nginx-1.24.0]# make && make install
省略。。。。

启动nginx

[root@admin nginx-1.24.0]# cd /usr/local/nginx/
[root@admin nginx]# cd sbin/
[root@admin sbin]# ./nginx 
[root@admin sbin]# ss -anltp
State     Recv-Q     Send-Q         Local Address:Port         Peer Address:Port    Process                                                       
LISTEN    0          511                  0.0.0.0:80                0.0.0.0:*        users:(("nginx",pid=89050,fd=6),("nginx",pid=89049,fd=6))    
LISTEN    0          128                  0.0.0.0:22                0.0.0.0:*        users:(("sshd",pid=1001,fd=3))                               
LISTEN    0          128                127.0.0.1:631               0.0.0.0:*        users:(("cupsd",pid=999,fd=7))                               
LISTEN    0          128                     [::]:22                   [::]:*        users:(("sshd",pid=1001,fd=4))                               
LISTEN    0          128                    [::1]:631                  [::]:*        users:(("cupsd",pid=999,fd=6))                               
[root@admin sbin]# 
[root@admin sbin]# systemctl  stop firewalld.service 
[root@admin sbin]# setenforce 0

 

隐藏版本号

没隐藏前

[root@admin ~]# curl  -I 192.168.200.133
HTTP/1.1 200 OK
Server: nginx/1.24.0         //版本
Date: Wed, 01 May 2024 06:51:31 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Wed, 01 May 2024 06:47:00 GMT
Connection: keep-alive
ETag: "6631e564-267"
Accept-Ranges: bytes

[root@admin ~]# 

编辑配置文件

[root@admin ~]# vim /usr/local/nginx/conf/nginx.conf
 29 
 30     #keepalive_timeout  0;
 31     keepalive_timeout  65;
 32     server_tokens off;  //添加此行

[root@admin ~]# /usr/local/nginx/sbin/nginx  -s reload
[root@admin ~]# curl  -I 192.168.200.133
HTTP/1.1 200 OK
Server: nginx                       //版本号已经隐藏
Date: Wed, 01 May 2024 06:55:12 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Wed, 01 May 2024 06:47:00 GMT
Connection: keep-alive
ETag: "6631e564-267"
Accept-Ranges: bytes

[root@admin ~]# 

第二种隐藏版本方法

编译安装时禁用模块

[root@admin ~]# vim /usr/local/nginx/conf/nginx.conf
 29 
 30     #keepalive_timeout  0;
 31     keepalive_timeout  65;
 32     server_tokens off;  //删除此行
[root@admin ~]# /usr/local/nginx/sbin/nginx  -s reload
[root@admin ~]# cd nginx-1.24.0/ 
[root@admin nginx-1.24.0]# make clean 
rm -rf Makefile objs    
[root@admin nginx-1.24.0]# cd src/core/
[root@admin core]# vim nginx.h 
 12 #define nginx_version      1024000
 13 #define NGINX_VERSION      "hhh"                  //修改此行随意写什么
 14 #define NGINX_VER          "hhh" NGINX_VERSION   //修改此行随意写什么

重新预编译安装

[root@admin nginx-1.24.0]# ./configure  --prefix=/usr/local/nginx --user=nginx --group=nginx --with-debug  --with-http_realip_module --with-http_ssl_module   --with-http_gunzip_module --with-http_gzip_static_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log


[root@admin nginx-1.24.0]# make && make install
[root@admin nginx-1.24.0]# /usr/local/nginx/sbin/nginx 
[root@admin nginx-1.24.0]# curl  -I 192.168.200.133
HTTP/1.1 200 OK
Server: hhhhhh                        //此处以看不到版本号了
Date: Wed, 01 May 2024 07:20:13 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Wed, 01 May 2024 06:47:00 GMT
Connection: keep-alive
ETag: "6631e564-267"
Accept-Ranges: bytes

[root@admin nginx-1.24.0]# 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐