![为什么 fail2ban 能找到但不能禁止](https://linux22.com/image/696794/%E4%B8%BA%E4%BB%80%E4%B9%88%20fail2ban%20%E8%83%BD%E6%89%BE%E5%88%B0%E4%BD%86%E4%B8%8D%E8%83%BD%E7%A6%81%E6%AD%A2.png)
我注意到我的 Ubuntu Xenial 服务器上有些奇怪。
它在默认端口上有 SSH,并且有 fail2ban。Fail2ban
正在检测服务器上的暴力破解尝试,并进行相应的记录:
2017-01-12 10:58:19,927 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:03:27,808 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:08:37,936 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:13:51,538 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:18:57,939 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:24:10,399 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:29:23,161 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:34:34,064 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
2017-01-12 11:39:44,540 fail2ban.filter [23119]: INFO [sshd] Found x.x.x.x
xxxx 在所有实例中都是相同的 IP,并且此人只是在钓鱼随机用户名,如 auth.log 中所示:
Jan 12 12:05:46 MYSERVER sshd[23579]: Invalid user journalist from x.x.x.x
Jan 12 12:05:46 MYSERVER sshd[23579]: input_userauth_request: invalid user journalist [preauth]
Jan 12 12:05:46 MYSERVER sshd[23579]: Received disconnect from x.x.x.x port 47995:11: Normal Shutdown, Thank you for playing [preauth]
Jan 12 12:05:46 MYSERVER sshd[23579]: Disconnected from x.x.x.x port 47995 [preauth]
Fail2ban 看到了它们,并将它们列为“已发现”,但没有禁止。有什么想法吗?
编辑:
cat /etc/fail2ban/jail.d/myjails.local
[apache-auth]
enabled = true
[sshd-ddos]
enabled = true
[recidive]
enabled = true
[dovecot]
enabled = true
[postfix]
enabled=true
其余配置文件按照 Ubuntu 的合理默认设置保留原样,即/etc/fail2ban/jail.conf
:
[sshd]
port = ssh
logpath = %(sshd_log)s
[sshd-ddos]
# This jail corresponds to the standard configuration in Fail2ban.
# The mail-whois action send a notification e-mail with a whois request
# in the body.
port = ssh
logpath = %(sshd_log)s
我们有:
cat /etc/fail2ban/jail.d/defaults-debian.conf
[sshd]
enabled = true
答案1
Fail2ban 似乎是正确的不是禁止任何人 - 您提供的日志没有显示任何人超过 Ubuntu xenial 附带的 fail2ban 的默认限制。
看看你的/etc/fail2ban/jail.conf
,在[DEFAULT]
部分中有参数findtime
(默认 600秒,所以 10 分钟)和maxretry
(默认 5次,在该查找窗口内)。这意味着每小时尝试输入几个密码的人根本就不会触发它。
请注意,您不需要更改此文件(也不应该更改,以便能够彻底升级它)。您/etc/fail2ban/jail.d/myjails.local
也可以将 [DEFAULT] 块放入您的 中:
[DEFAULT]
findtime = 3600
bantime = 3600
maxretry = 4
- 查看文件的开头,
jail.conf
它实际上给出了一些关于如何和为什么的提示。 - 不要把自己锁在外面。
- 您的密码应该足够强大,这样您就可以放心,即使每小时有几个人尝试几个密码,一百万年也找不到任何东西。