fail2ban 无法在 CentOS 中创建 jail

fail2ban 无法在 CentOS 中创建 jail

我正在尝试在 Fail2Ban 中创建一个 jail 来保护 Asterisk PBX。我已经按照建议做了,并复制了jail.conf名为的文件jail.local。在 中jail.local,我按如下方式设置了一个 asterisk jail:

[asterisk]

port     = 5060,5061
action_  = %(default/action_)s[name=%(__name__)s-tcp, protocol="tcp"]
           %(default/action_)s[name=%(__name__)s-udp, protocol="udp"]
logpath  = /var/log/asterisk/messages
maxretry = 10

然后,在jail.d文件夹中,我创建了一个名为asterisk.full

[asterisk-full]
backend = polling
enabled = true
port = all
filter = asterisk-full
logpath = /var/log/asterisk/messages
maxretry = 3
findtime = 1200
bantime = 600

filter.d我放置的文件夹中asterisk-full.conf

[Definition]
failregex = .*NOTICE.* .*: Request '.*' from '.*' failed for '<HOST>:.*' .*- Failed to authenticate
            .*NOTICE.* .*: Request '.*' from '.*' failed for '<HOST>:.*' .*- No matching endpoint found
ignoreregex =

问题是,如果我尝试使用命令进行过滤

sudo fail2ban-regex /var/log/asterisk/full /etc/fail2ban/filter.d/asterisk-full.conf

它确实有效,它正确地看到了日志文件并匹配了行,但问题是 jail 在 fail2ban 中没有激活。

这是我启动时得到的fail2ban-client status

Status
|- Number of jail:      1
`- Jail list:   sshd

并且 Asterisk 监狱没有列出。

我运行了命令fail2ban-client reloadsystemctl restart fail2ban,但无济于事。

所以是 CentOS 7。

答案1

jail 尚未启动,因为其中的文件jail.d必须以.local或结尾.conf。因此请将您的 重命名asterisk.fullasterisk.conf

另外,不要同时对某个 jail 使用jail.localjail.d/*文件;要么使用其中一个,要么使用另一个。在这种情况下,只需删除 jail.local 文件即可。

从 asterisk.conf 中删除任何冗余部分,仅包含将保存自定义非标准值的参数(省略的参数将从中的默认值中获取jail.conf,这些默认值应保持不变)。

[asterisk]
backend = polling
enabled = true
logpath = /var/log/asterisk/full
maxretry = 3
findtime = 1200
bantime = 600

将您的asterisk-full.conf内部filter.d文件夹重命名为asterisk.conf(这不是必需的,但您必须提供具有该值的filter参数jail.d/asterisk.conf,否则它将默认为监狱的名称,在本例中仅为asterisk)。

检查参数的值是否确实符合您的标准(例如,后端是否正在轮询,或者 logpath 是否有正确的路径等)。重新启动 fail2ban 并检查其状态,然后应该会列出新的 jail。

相关内容