中间件安全排查标准

中间件安全排查标准

一、Nginx

(1)目录索引是否禁止*

评估目的 WEB 目录禁止目录列表显示。
安全建议 禁止目录列表显示,保护网页目录和文件信息。
描述操作 修改nginx/conf/nginx.conf 文件中的location部分:autoindex 为offlocation /{# root html;# index index.html index.htm; root /usr/local/src/static/img;#指定实际目录绝对路径; autoindex on; # 目录浏览功能开关
判定依据 查看配置文件 nginx.conf 有无相关设置。

(2)隐藏版本信息*

评估目的 防止Nginx版本泄露
安全建议 禁止在所有自动产生的错误页面中显示版本号,防止泄露敏感信息。
描述操作 设置操作步骤(1) 修改文件$NGINX_HOME/conf/nginx.conf在 http 模块下添加或则修改为 server_tokens off;(2) 重新启动 Nginx 服务
判定依据 在地址栏输入一个不存在的页面,验证是否已不显示版本号

(3)请求拦截配置*

| 评估目的 | 防止Nginx请求拦截遗漏造成未授权访问 |
|------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----|------|----------------------------------------------------------------------------------------------------------|
| 安全建议 | 白名单配置访问或梳理系统访问url,全部加入黑名单访问 |
| 描述操作 | 设置操作步骤(1) server {listen 80;server_name www.example.com; # 精确匹配根URL,转发到后端的index页面location = / {proxy_pass http://backend_server/index;} # 处理静态文件请求,这是Nginx的强项location ^~ /static/ {root /path/to/static/files;} # 正则匹配图片文件,转发到图片服务器location ~* .(gif | jpg | jpeg | png)$ {proxy_pass http://image_server;} # 通用匹配,转发到后端应用服务器location / {proxy_pass http://backend_server;}} |
| 判定依据 | 查看配置文件 nginx.conf 有无相关设置。 |

(4)超时连接设置

评估目的 设置连接超时自动断开,防范DDOS攻击
安全建议 白名单配置访问或梳理系统访问url,全部加入黑名单访问
描述操作 设置操作步骤(1) (1)修改文件$NGINX_HOME/conf/nginx.conf 在 http 模块下添加或则修改为 keepalive_timeout 65; (数值根据需要调整) (2)重新启动 Nginx 服务
判定依据 查看配置文件 nginx.conf 有无相关设置。

(5)禁用危险HTTP方法*

| 评估目的 | 防止危险方法访问 |
|------|---------------------------------------------------------------------------------------------------------|------|------------------------------------------------|
| 安全建议 | 拒绝除post/get/head方法外的其他方法请求 |
| 描述操作 | 设置操作步骤(1)修改配置文件#vim /usr/local/nginx/conf/nginx.conf具体设置如下:Server{ ...... if(request_method !\~ \^(GET | HEAD | POST)) { return404; } ......}(2)重新启动 nginx 服务 |
| 判定依据 | 查看配置文件 nginx.conf 有无相关设置。 |

(6)隐藏X-Powered-By

评估目的 防止暴露后端语言或框架
安全建议 隐藏Nginx后端服务指定Header的状态
描述操作 设置操作步骤(1)修改文件$NGINX_HOME/conf/nginx.conf 在 http 模块下配置proxy_hide_header项;添加或则修改为 proxy_hide_header X-Powered-By; proxy_hide_header Server; (2)重新启动 Nginx 服务。
判定依据 查看配置文件 nginx.conf 有无相关设置。

二、APACHE

(1)目录索引是否禁止*

评估目的 WEB 目录禁止目录列表显示。
安全建议 禁止目录列表显示,保护网页目录和文件信息。
描述操作 将httpd.conf文件中Options Indexes MultiViews将"Indexes" Options Indexes MultiViews  ← 找到这一行,将"Indexes"删除    ↓  Options MultiViews   ← 变为此状态(不在浏览器上显示树状目录结构)AllowOverride NoneOrder allow,denyAllow from all
判定依据 查看配置文件 httpd.conf 有无相关设置。

(2)隐藏版本信息*

评估目的 防止Tomcat版本泄露
安全建议 禁止在所有自动产生的错误页面中显示版本号,防止泄露敏感信息。
描述操作 设置操作步骤(1)在 conf/server.xml文件中的 节点下添加如下配置// showReport:默认true,是否显示异常信息// showServerInfo:默认true,是否显示版本号(2) 修改或隐藏响应头的 server 值在 conf/server.xml 文件中的 <Connector > 节点新增 server属性 <Connector port="21058" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="21052" server="smartbi"/> // server 值可以为空或自定义字符串
判定依据 在地址栏输入一个不存在的页面,验证是否已不显示版本号

(3)错误页面处理*

评估目的 防止泄露敏感信息
安全建议 Apache 访问错误页面重定向,防止泄露敏感信息
描述操作 设置操作步骤 (1) 修改 httpd.conf 配置文件:ErrorDocument 400 /custom400.htmlErrorDocument 401 /custom401.htmlErrorDocument 403 /custom403.htmlErrorDocument 404 /custom404.htmlErrorDocument 405 /custom405.htmlErrorDocument 500 /custom500.htmlCustomxxx.html 为要自建的错误页面。(2)重新启动 Apache 服务
判定依据 在地址栏输入一个不存在的页面,验证是否已指向错误页面

(4)CGI 程序控制

评估目的 CGI 程序控制
安全建议 如果服务器上不需要运行 CGI 程序,建议禁用 CGI
描述操作 设置操作步骤编辑 httpd.conf 配置文件,把 cgi-bin 目录的配置和模块注释掉:#<Directory "/var/www/cgi-bin"># AllowOverride None# Options None# Require all gra#
判定依据 检查配置文件 httpd.conf

(5)禁用危险HTTP方法

评估目的 用危险HTTP方法
安全建议 只允许get 、post等程序常用方法
描述操作 设置操作步骤编辑 httpd.conf 配置文件,新增或修改如下配置: Order Allow,Deny Deny from all
判定依据 检查配置文件 httpd.conf

(6)关闭 TRACE方法

评估目的 关闭 TRACE方法
安全建议 关闭 TRACE,防止 TRACE 方法被访问者恶意利用
描述操作 设置操作步骤(1)编辑 httpd.conf 配置文件,配置如下内容: TraceEnable Off (2)如果不存在则手动在文件末尾添加。>
判定依据 检查配置文件 httpd.conf

(7)拒绝服务防御

评估目的 拒绝服务防御
安全建议 防范拒绝服务攻击
描述操作 设置操作步骤(1) 编辑 httpd.conf 配置文件:Timeout 10 #客户端与服务器端建立连接前的时间间隔KeepAlive OnKeepAliveTimeout 15 #限制每个session的保持时间是15秒AcceptFilter http dataAcceptFilter https data(2)重新启动 Apache 服务。
判定依据 检查配置文件 httpd.conf

(8) 请求拦截配置*

评估目的 防止请求拦截遗漏造成未授权访问
安全建议 白名单配置访问或梳理系统访问url,全部加入黑名单访问
描述操作 设置操作步骤修改/conf目录下的 httpd.conf 文件(1) #去掉以下两行的注释LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_http_module modules/mod_proxy_http.so在 httpd.conf 文件末尾添加转发配置 (2)# 将所有 /sina/ 开头的链接转发到 http://192.168.1.31:80/ProxyPass /sina/ http://192.168.1.31:80/ProxyPassReverse /sina/ http://192.168.1.31:80/
判定依据 查看配置文件httpd.conf有无相关设置。

三、TOMCAT

(1)目录索引是否禁止*

评估目的 WEB 目录禁止目录列表显示。
安全建议 禁止目录列表显示,保护网页目录和文件信息。
描述操作 修改conf/web.xml文件中listings项为false default org.apache.catalina.servlets.DefaultServlet debug 0 listings false // 这里改为false 1
判定依据 查看配置文件 web.xml有无相关设置。

(2)隐藏版本信息*

评估目的 防止Tomcat版本泄露
安全建议 禁止在所有自动产生的错误页面中显示版本号,防止泄露敏感信息。
描述操作 设置操作步骤打开 Apache 配置文件httpd.conf,添加/修改下面的代码,保存后重启Apache服务ServerTokens ProdServerSignature Off
判定依据 在地址栏输入一个不存在的页面,验证是否已不显示版本号

(3)禁用危险http方法

评估目的 防止危险方法访问
安全建议 拒绝除post/get/head方法外的其他方法请求
描述操作 (1)修改文件$TOMCAT_HOME/conf/web.xml,配置org.apache.catalina.servlets.DefaultServlet 的值,内容如 下:readonlyfalsereadonly 参数默认是 true,即允许 delete 和 put 操作,修改 为 false。(2)重新启动 Tomcat 服务。
判定依据 查看配置文件web.xml 有无相关设置。

(4)禁止显示异常调试信息

评估目的 禁止显示异常调试信息
安全建议 当请求处理期间发生运行时错误时,ApacheTomcat将向请求者显示调试信息,存在安全隐患
描述操作 ((1)修改文件$TOMCAT_HOME/conf/web.xml在web-app下添加子节点,配置java.lang.Throwable/error.jsp在webapps目录下创建error.jsp,定义自定义错误信息(2)重新启动 Tomcat 服务。
判定依据 查看配置文件web.xml 有无相关设置。

(5)Tomcat禁止自动部署

评估目的 禁止自动部署程序
安全建议 配置自动部署,容易被部署恶意或未经测试的应用程序,应将其禁用
描述操作 修改Tomcat 根目录下的配置文件conf/server.xml,将host节点的autoDeploy属性设置为"false",<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="false"> 如果host的deployOnStartup属性(如没有deployOnStartup配置可以忽略)为"true",则也将其更改为"false"
判定依据 查看配置文件web.xml 有无相关设置。

(6)删除无关文件和目录*

评估目的 删除无关文件和目录
安全建议 Tomcat安装提供了示例应用程序、文档和其他可能不用于生产程序及目录,存在极大安全风险
描述操作 删除Tomcat示例程序和目录、管理控制台等,即从Tomcat根目录的webapps目录,移出或删除docs、examples、host-manager、manager目录
判定依据 确认已删除或移除看配置文件。

(7)运行进程权限检测

| 评估目的 | 运行进程权限检测 |
|------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------|
| 安全建议 | 在运行Internet服务时,最好尽可能避免使用root用户运行,降低攻击者拿到服务器控制权限的机会 |
| 描述操作 | 新增tomcat用户useradd tomcat--将tomcat目录owner改为tomcatchown -R tomcat:tomcat /opt/tomcat-- 停止原来的tomcat服务--切换到tomcat用户su - tomcat--重新启动tomcat/opt/tomcat/bin/startup.sh |
| 判定依据 | ps -ef | grep tomcat查看运行tomcat的用户 |

(8)错误页面处理

评估目的 错误页面处理
安全建议 Tomcat 访问错误页面重定向,防止泄露敏感信息
描述操作 (1)查看 tomcat/conf/web.xml 文件,新增或修改如下配置:404/错误页面......java.lang.NullPointerException/error.jsp(2)重新启动 Tomcat 服务
判定依据 在地址栏输入一个不存在的页面,验证是否已指向错误页面

(9) 请求拦截配置*

评估目的 防止请求拦截遗漏造成未授权访问
安全建议 白名单配置访问或梳理系统访问url,全部加入黑名单访问
描述操作 设置操作步骤修改/conf目录下的 httpd.conf 文件(1)使用 web.xml 配置 Servlet 映射(内部转发) myForwardServlet com.example.ForwardServlet myForwardServlet /old-path/(2)配置 实现访问控制适用场景:拦截 URL 并强制跳转到登录页或其他页面(基于安全约束)。 Protected Area /admin/ admin FORM /login.html /error.html
判定依据 查看配置文件web.xml有无相关设置。

四、中间件日志*

(1)Apache HTTP 服务器的日志文件通常位于 /var/log/apache2/ 目录下。主要的日志文件包括:

access.log:记录所有访问请求。

error.log:记录所有错误信息。

(2)Nginx 的日志文件通常位于 /var/log/nginx/ 目录下。主要的日志文件包括:

access.log:记录所有访问请求。

error.log:记录所有错误信息。

(3)Tomcat的日志文件通常位于 /usr/local/tomcat/logs/目录下。

访问日志: /usr/local/tomcat/logs/access.log

错误日志: /usr/local/tomcat/logs/catalina.out

日志标准包括不限于:来源IP、时间、访问地址、访问方式、成功失败等,保存时间必须近6个月、返回结果

相关推荐
顺丰同城前端技术团队1 小时前
用大白话聊Deepseek MoE
前端·人工智能·后端
啊哈灵机一动1 小时前
golang开发的一些注意事项(二·)
后端·面试
喵手1 小时前
领导让我同事封装一个自定义工具类?结果她说要三小时...
java·后端·java ee
程序小武1 小时前
Python面向对象编程:特殊方法深度实践
后端
OnlyLowG1 小时前
SpringSecurity 灵活管控:特定用户单一设备登录机制
后端
zhangyifang_0092 小时前
Spring Boot Actuator 跟踪HTTP请求和响应
spring boot·后端·http
我命由我123452 小时前
C++ - 标准库之 <string> npos(npos 概述、npos 的作用)
服务器·c语言·开发语言·c++·后端·visualstudio·visual studio
用户6757049885022 小时前
InfluxDB 时序数据的高效解决方案
后端
IT艺术家-rookie2 小时前
golang--数据类型与存储
开发语言·后端·golang
鸡窝头on2 小时前
Redisson 自定义序列化 Codec 实战指南:原理、实现与踩坑记录
redis·后端