You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache2服务器中拉黑占用CPU的Matomo归档命令?

解决Matomo CLI命令占用CPU的问题

首先明确:你之前添加的Apache Rewrite规则完全无效,因为问题中的PHP命令是通过命令行(CLI)直接执行的,根本不走Apache的HTTP请求处理流程,Rewrite规则只对HTTP请求生效。

下面是几种可行的解决方法:

方法一:通过Matomo后台配置限制归档触发

这条命令是触发Matomo的年度归档任务(CoreAdminHome.archiveReports),可以直接在Matomo后台限制归档的触发方式:

  • 登录Matomo后台,进入「设置」→「系统」→「归档设置」
  • 开启「仅允许通过cron执行归档」选项,这样就能禁止通过API或climulti请求触发归档(注意:开启前要确保你已经配置了定时cron任务来自动执行归档)
  • 额外:可以在Matomo的「权限管理」中,限制超级用户的API调用权限,禁止调用CoreAdminHome.archiveReports方法。

方法二:系统级限制该CLI命令执行

如果是有人恶意在服务器上执行这条命令,可以通过系统权限或脚本拦截:

  1. 限制console脚本的执行权限:
    修改Matomo的console脚本权限,只允许指定用户(比如运行cron任务的用户)执行,其他用户无法调用:
    chown cron_user:cron_group /PATH_TO_MATOMO/console
    chmod 700 /PATH_TO_MATOMO/console
    
  2. 用脚本拦截特定参数的PHP调用:
    写一个简单的bash脚本,替换系统的PHP命令,拦截包含特定参数的请求:
    • 先备份原PHP命令:
      mv /usr/bin/php8.1 /usr/bin/php8.1.real
      
    • 创建自定义脚本/usr/bin/php8.1:
      #!/bin/bash
      # 检查是否包含禁止的命令参数
      if [[ "$*" == *"climulti:request"* && "$*" == *"CoreAdminHome.archiveReports"* ]]; then
          exit 1
      fi
      # 正常执行原PHP命令
      /usr/bin/php8.1.real "$@"
      
    • 给脚本添加可执行权限:
      chmod +x /usr/bin/php8.1
      

方法三:排查并拦截远程触发源

如果这条CLI命令是通过远程HTTP请求触发的(比如服务器存在可被滥用的脚本):

  • 查看Apache的访问日志,找到触发该命令的请求来源IP
  • 用iptables拉黑该IP:
    iptables -A INPUT -s 恶意IP -j DROP
    
  • 同时检查服务器上的PHP脚本,修复可能存在的命令执行漏洞,避免被再次滥用。

内容的提问来源于stack exchange,提问作者Naser Aslam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 04:25:20