• 如何隐藏或修改Docker容器中的Nginx响应头中的Server


    背景介绍

    现在大部分项目通过Nginx作为反向代理,实际由于安全审计要求需要隐藏或修改响应头的Server信息,传统的项目直接部署在nginx服务器中,只需要在nginx服务器安装ngx_http_headers_more_filter_module插件,然后通过修改nginx.conf文件配置即可,但是自从容器化时代来了之后,大部分项目都通过kubernetes或docker部署的,所以容器化的nginx如何修改对应的响应头,下面进行详细的介绍

    实施步骤

    修改Dockerfile的基础镜像

    修改nginx基础镜像,引入安装了ngx_http_headers_more_filter_module插件的nginx镜像:rookiezoe/nginx,对应的镜像目前实测下来可用的有1.23.3、1.21.3版本

    FROM rookiezoe/nginx:1.23.3
    ENV LANG=C.UTF-8
    ENV TZ=Asia/Shanghai
    
    COPY dist/ /usr/share/nginx/html
    COPY error.html /usr/share/nginx/html
    COPY nginx-default.conf /etc/nginx/conf.d/default.conf
    COPY nginx.conf /etc/nginx/nginx.conf
    RUN chown -R nginx:nginx /usr/share/nginx/html
    
    EXPOSE 7081
    COPY entrypoint.sh /
    RUN chmod +x /entrypoint.sh
    CMD ["/entrypoint.sh"]```
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    修改宿主机的nginx配置文件

    修改nginx.conf文件,在http作用域之外追加load_module modules/ngx_http_headers_more_filter_module.so; 在htto作用域之内,server作用域之外增加more_set_headers或more_clear_headers;
    删除响应头Server即通过more_clear_headers命令如下图所示:
    在这里插入图片描述
    修改响应头Server值的配置即通过more_set_headers命令如下图所示:
    在这里插入图片描述

    测试验证

    请求nginx所在的端口服务,比如https:/xxx.xxx/xx/,按照以上步骤中的通过more_clear_headers命令执行完如下图所示查看响应头信息中是否有Server
    在这里插入图片描述
    如果按照more_set_headers命令执行完后如下图所示查看Server值是否变更为mytest
    在这里插入图片描述

    总结

    通过以上两种方式可以分别对关键的响应头进行修改或删除从而做到安全审计的要求,不对外暴露真实的服务信息

  • 相关阅读:
    19-Mitt
    mysql转达梦的python脚本
    51单片机外设篇:ADC
    Data security.隐私保护-多方安全计算技术基础
    2023年中国石油催化裂化剂行业供需、竞争格局及市场规模分析[图]
    易语言实现植物大战僵尸新手cheat体验
    Qt开发必备技术栈学习路线和资料
    js字符串转时间戳
    六.初阶指针
    Office project 2007安装
  • 原文地址:https://blog.csdn.net/AiMaiShanHuHai/article/details/133087914