![更新至最新版本后 Fail2ban 仍未禁止](https://linux22.com/image/672661/%E6%9B%B4%E6%96%B0%E8%87%B3%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%E5%90%8E%20Fail2ban%20%E4%BB%8D%E6%9C%AA%E7%A6%81%E6%AD%A2.png)
我运行的是 fail2ban 0.8.11,这是使用 apt-get 安装在 Ubuntu 14.04 上的版本。我下载并安装了最新的源代码 0.93。
当我启动它时,我收到两条错误消息。
WARNING Wrong value for 'loglevel' in 'Definition'. Using default one: '1'
WARNING 'logpath' not defined in 'INCLUDES'. Using default one: '/var/log/messages'
我看过一些关于日志级别消息的讨论。在最近的一次更新中,它已从 更改为int
。string
据我所知,这不是一个真正的问题。
我不知道这个logpath
错误是否严重。我已将其设置为fail2ban.conf
logpath = /var/log/fail2ban.log
Fail2ban 不会禁止任何 IP 地址,也不会将任何内容写入日志 - 无论是/var/log/fail2ban.log
还是/var/log/messages
。这包括在启动或停止时不写入任何消息。但是,该服务正在运行,并且我在启动或停止时会收到警告电子邮件。
我还注意到,当我使用交互式客户端时,出现了管道损坏错误:
fail2ban> status
Status
|- Number of jail: 2
`- Jail list: recidive, ssh
ERROR [Errno 32] Broken pipe
fail2ban>
我感觉这可能是一件简单的事情,但我不确定是什么。安装几乎是默认的。在安装新版本之前,我没有做过任何重大更改。
答案1
看起来它与 有某种关联loglevel
。我以loglevel
交互方式更改了 ,如下所示。然后我停止并启动了该服务(我之前已经做过几次了)。当它重新启动时,它不再向我发送管道损坏的消息。它还会写入日志并禁止 IP。
fail2ban> get loglevel
Current logging level is ERROR
ERROR [Errno 32] Broken pipe
fail2ban> set loglevel 3
Current logging level is INFO
ERROR [Errno 32] Broken pipe
fail2ban> reload
ERROR [Errno 32] Broken pipe
fail2ban> exit
fail2ban-client -i
fail2ban> get loglevel
Current logging level is INFO
ERROR [Errno 32] Broken pipe
fail2ban> stop
Shutdown successful
fail2ban> start
2015-12-08 22:48:37,343 fail2ban.server [8583]: INFO Starting Fail2ban v0.9.3
2015-12-08 22:48:37,344 fail2ban.server [8583]: INFO Starting in daemon mode
fail2ban> get loglevel
Current logging level is 'INFO'
fail2ban> exit
答案2
这是 Ubuntu 14.04 中 fail2ban 从 0.8.11 更新到 0.9 时的一个已知问题。请参见此处:
‘Definition’ 中 ‘loglevel’ 的值错误。#967
临时解决方案是运行
fail2ban-client stop
然后fail2ban-client start
。它运行良好......最终的解决方案是在Ubuntu 14.04上直接安装0.9.1。