编辑MediaWiki的Common.css出现ERR_CONNECTION_RESET及ModSecurity报错求助
我们部署了MediaWiki服务,尝试编辑Common.css文件做小修改时,浏览器返回ERR_CONNECTION_RESET错误。Apache的error.log中记录了ModSecurity相关报错:
[Thu Jul 27 11:00:16.253269 2023] [:error] [pid 522278:tid 140286206387776] [client 138.232.72.64:2820] [client 138.232.72.64] ModSecurity: Error reading request body: Connection reset by peer [hostname "fila.feuerwehr-landeck.at"] [uri "/index.php"] [unique_id "ZMIyIMzlGwCCOoqHoneh4AAAAk0"], referer: http://fila.feuerwehr-landeck.at/index.php?title=MediaWiki:Common.css&action=edit
已更换不同客户端、IP及浏览器测试,问题依旧。
解决步骤:
临时放行Common.css编辑请求(紧急处理)
找到Apache的ModSecurity配置文件(通常是/etc/apache2/mods-available/modsecurity.conf或规则集文件),添加规则排除对应请求:SecRule ARGS_GET:title "MediaWiki:Common.css" "id:1000001,phase:1,nolog,allow"保存后重启Apache:
sudo systemctl restart apache2定位并禁用具体触发的规则
查看ModSecurity审计日志(默认路径/var/log/apache2/modsec_audit.log),搜索报错中的unique_id(ZMIyIMzlGwCCOoqHoneh4AAAAk0),找到被触发的规则ID。之后在配置文件中单独禁用该规则:SecRuleRemoveById [实际规则ID]例如触发规则为981172时,写
SecRuleRemoveById 981172,重启Apache生效。调整请求体读取配置
针对"Error reading request body"报错,尝试增大ModSecurity的请求体限制参数:SecRequestBodyLimit 13107200 SecRequestBodyNoFilesLimit 131072 SecRequestBodyInMemoryLimit 131072修改后重启Apache,确保请求能被完整读取。
检查PHP及MediaWiki配置
确认PHP的post_max_size和upload_max_filesize参数足够(不小于编辑内容大小),同时MediaWiki的LocalSettings.php中无额外POST请求限制配置。
内容的提问来源于stack exchange,提问作者reinmanu

