【Nginx】 - nginx 模块安装

又是漏洞扫描,要求修改 Web 服务器的 HTTP 标头,使其不泄露有关基础 Web 服务器的详细信息。o(╥﹏╥)o

漏洞修复 CVE-2004-2479

Web 服务器 HTTP 标头信息泄露, 采用headers-more-nginx-module模块可隐藏头标信息。

在这里插入图片描述

开始修复

nginx安装headers-more-nginx-module模块

安装编译套件

sudo apt install build-essential libpcre3-dev zlib1g-dev

下载nginx 原始码这裡需要下载和你使用的 nginx 同版本的原始码

查看版本命令

nginx -v

知道版本后就可以进行下载了(以下用版本 1.21.5 作为范例)

curl -O http://nginx.org/download/nginx-1.21.5.tar.gz

解压缩

tar -xzf nginx-1.21.5.tar.gz

下载 headers-more-nginx-module 源码

git clone https://github.com/openresty/headers-more-nginx-module

开始编译切换到原始码目录

cd nginx-1.21.5

设置

./configure --add-dynamic-module=/root/headers-more-nginx-module --with-compat

编译modules

make modules

复制动态库到模组目录
nginx 的模组目录可以用以下指令查看


nginx -V 2>&1 | grep modules-path

在这里插入图片描述

接在 modules-path=后面的就是我的路径,我的路径为

/usr/lib/nginx/modules/

复制

cp objs/ngx_http_headers_more_filter_module.so /usr/lib/nginx/modules/

隐藏服器信息
headers-more-nginx-module 有很多实用的功能,不过这里只着重如何设定 server 标头。

以下操作修改 nginx 的设定,可以在在 /etc/nginx/modules-enabled/ 新增 .conf 档或是直接在 /etc/nginx/nginx.conf 写入

载入模组

# 载入 ngx_http_headers_more_filter_module.so 自订标头 在/etc/nginx/nginx.conf 顶部写入

load_module modules/ngx_http_headers_more_filter_module.so;

# 禁用 server 标头 在server下添加
server {

    more_clear_headers "server";
    ...
}

more_clear_headers 后面接的字串即为要拿掉的标头。
查看标头, 可以看到nginx的信息已经不见啦

#  --head          Show document info only
curl --head http://localhost

在这里插入图片描述

自订 server 标头
当然我们也可以打造专属自己的酷炫 server 标头

more_set_headers "server: super web server";

修改后服务器回传的 HTTP 标头 server 栏位变成了 super web server

参考: https://blog.owo9.com/910/hide-nginx-header-server-information/

nginx-module-vts模块是为Nginx提供可视化监控信息的扩展模块,可以将Nginx的状态以JSON格式输出,方便用户通过图形界面或脚本进行分析和监控。安装nginx-module-vts模块通常涉及几个步骤: 1. 首先需要确保你的系统中已经安装Nginx,并且Nginx是编译安装的,因为vts模块需要在编译Nginx时一并编译安装2. 下载nginx-module-vts的源代码包。可以从官方GitHub仓库或者其他代码托管平台下载。 3. 解压下载的源代码包,然后将其放置在Nginx源代码目录的相应位置。 4. 配置Nginx的编译选项,以包含vts模块。可以通过执行`./configure --add-module=/path/to/nginx-module-vts`命令来完成这一步骤,其中`/path/to/nginx-module-vts`需要替换为nginx-module-vts模块的实际路径。 5. 在编译之前,可能需要确认Nginx的编译依赖是否满足,比如是否安装了编译工具和Nginx开发包。 6. 执行编译安装命令`make && make install`,这将编译并安装Nginx及其模块。 7. 安装完成后,需要在Nginx的配置文件(通常是nginx.conf)中启用vts模块。添加如下配置: ``` http { vhost_traffic_status_zone; vhost_traffic_status_filter_by_host on; # 其他配置... server { listen 80; # ...其他server配置 location /status { vhost_traffic_status_display; vhost_traffic_status_display_format html; } } } ``` 8. 重启Nginx以使配置生效。 安装完成后,你就可以通过访问Nginx配置的`/status`路径来查看Nginx的状态信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生如夏花般绚丽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值