操作
如何配置 Redmine 的 Fail2ban¶
安装¶
如果没有安装 fail2ban,请使用 apt-get 安装(或使用 yum、pacman 或其他包管理器)
apt-get install fail2ban
配置¶
在 /etc/fail2ban/filter.d/redmine.conf 中创建一个新文件
说明:在这里,我们创建一个新的过滤器以匹配失败的登录尝试
# redmine configuration file # # Author: David Siewert # # $Revision$ # [INCLUDES] # Read common prefixes. If any customizations available -- read them from # common.local before = common.conf [Definition] datepattern = %%Y-%%m-%%d %%H:%%M:%%S %%Z$ failregex = Failed [-/\w]+ for .* from <HOST> # Option: ignoreregex # Notes.: regex to ignore. If this regex matches, the line is ignored. # Values: TEXT # ignoreregex = # Source: #http://www.fail2ban.org/wiki/index.php/MANUAL_0_8
在 /etc/fail2ban/jail.conf 中添加以下行
说明:在这里,我们启用我们刚刚创建的过滤器并添加一些配置选项
[redmine] enabled = true filter = redmine port = 80,443 #backend = polling action = iptables-allports[name=redmine] logpath = /var/log/redmine/default/production.log maxretry = 5 findtime = 7320 bantime = 7320
备注 1
如果你的 web 服务器使用本地时间,那么你需要根据与 UTC 时间的偏差相应地增加 findtime 和 bantime
在我的示例配置中,我使用了 2 小时 + 2 分钟 = 3600 * 2 + 120 = 7320
因为我的本地服务器时间总是比 UTC 时间早 2 小时,所以我额外加了 2 分钟以防万一
备注 2
如果你不在生产模式下使用 redmine,那么你也需要更改 logpath
备注 3
如果此配置不起作用,你可以尝试取消注释 "backend = polling"
测试¶
如果你做了任何更改,你可以使用以下命令检查语法
fail2ban-regex /var/log/redmine/default/production.log /etc/fail2ban/filter.d/redmine.conf
最后,启动/重启 fail2ban
/etc/init.d/fail2ban restart
并测试你是否能把自己封禁 :)
注意:你的失败登录尝试需要匹配 /etc/fail2ban/jail.conf 中的 maxretry 值
由 Jan Catrysse 更新 近 3 年前 · 5 次修订