中间件安全排查标准

中间件安全排查标准

一、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个月、返回结果

相关推荐
无限大6几秒前
二维数组搜索:从暴力地毯到二分神技的奇幻之旅
后端
bobz96544 分钟前
最近玩了好多把 LOL
后端
爱欲无极1 小时前
基于Flask的微博话题多标签情感分析系统设计
后端·python·flask
cwkiller1 小时前
heapdump深度利用之信息泄露篇
后端
Olrookie3 小时前
若依前后端分离版学习笔记(五)——Spring Boot简介与Spring Security
笔记·后端·学习·spring·ruoyi
小白的代码日记4 小时前
基于 Spring Boot 的小区人脸识别与出入记录管理系统实现
java·spring boot·后端
Chaney不会代码4 小时前
Java7/8中的HashMap深挖
后端
新程快咖员4 小时前
兄弟们,你们安装IDEA 2025.2了吗?java编辑器代码提示失效?临时解决方案新鲜出炉!
后端·intellij idea
调试人生的显微镜4 小时前
移动端网页调试实战,跨设备兼容与触控交互问题排查全流程
后端
onejason5 小时前
《PHP 爬虫实战指南:获取淘宝店铺详情》
前端·后端·php