我想将我的系统配置为拒绝所有包含不当词语的网络请求(我不会在这里使用实际的字符串,而是使用一个示例字符串来代表实现,原因很明显)。
我有以下配置/etc/fail2ban/jail.local
[DEFAULT]
bantime = 1d
[sshd]
enabled = true
filter = sshd
banaction = iptables
backend = systemd
maxretry = 5
findtime = 1d
bantime = 2d
ignoreip = 127.0.0.1/8
[word-filter]
enabled = true
filter = word-filter
maxretry = 0
bantime = 1m
以及相同图案的配置(但用不同的词)在/etc/fail2ban/filter.d/word-filter.conf
[Definition]
failregex = .*Hello.*World|.*test.*
当我尝试重新加载fail2ban时,它给出了一个错误systemctl status fail2ban
,当我尝试运行时,fail2ban-regex /example/file
/etc/fail2ban/filter.d/word-filter.conf
它给出了错误ERROR: No failure-id group in '.*Hello.*World.*|.*test.*
我该如何解决这个问题?
答案1
错误No failure-id group in
意味着正则表达式不包含任何 ID(如<ADDR>
、<HOST>
、<CIDR>
、<SUBET>
等<F-ID>...</F-ID>
),因此如果正则表达式匹配,fail2ban 将不知道如何识别违规者以及确切需要禁止的人(如果maxretry
达到了ID。
对于基于 IP 的处理,通常是<ADDR>
.