如何为Plesk自带的fail2ban添加MySQL过滤规则
为Plesk内置fail2ban添加MySQL防护支持操作步骤
- 第一步:创建MySQL登录失败匹配过滤器
进入fail2ban过滤器目录/etc/fail2ban/filter.d/,新建配置文件plesk-mysql.conf,写入以下内容:
[Definition] failregex = ^.*\[Warning\] Access denied for user '.*'@'<HOST>' (using password: (YES|NO))$ ignoreregex =
其中<HOST>为fail2ban内置变量,可自动提取日志中的攻击者IP地址。
第二步:验证过滤器匹配有效性
执行以下命令,测试过滤器是否能正确识别MySQL错误日志中的登录失败记录:fail2ban-regex /var/log/mysql/error.log /etc/fail2ban/filter.d/plesk-mysql.conf
若返回结果中存在匹配成功的失败记录,即代表过滤器配置正确。第三步:在Plesk后台添加防护jail
登录Plesk管理后台,依次进入「工具与设置」-「安全性」-「Fail2Ban」-「Jails」选项卡,点击「添加Jail」,按以下规则填写配置:- 名称填写
mysql-auth,勾选「启用」选项 - 过滤器下拉选择刚才创建的
plesk-mysql - 操作项默认选择
iptables-multiport,端口填写3306,33060(如自定义过MySQL端口需对应替换) - 日志路径:Debian/Ubuntu系统填
/var/log/mysql/error.log,CentOS/RHEL系统填/var/log/mariadb/mariadb.log - 按需设置封禁时间、最大重试次数后保存配置即可
- 名称填写
第四步:验证jail运行状态
配置完成后执行命令fail2ban-client status mysql-auth,能正常返回当前封禁IP列表、累计匹配失败次数即代表配置已生效。
注意:
- 如果你的MySQL开启了额外的远程访问限制,或者自定义了错误日志存储路径,需要对应调整上述配置中的日志路径、端口参数,避免过滤器无法正常工作
- 自定义过滤器存放在fail2ban系统目录下,Plesk系统更新不会覆盖该配置,无需重复设置
内容的提问来源于stack exchange,提问作者JuliSmz
相关产品推荐
相关产品推荐

