我使用 fail2ban 来防止对我的生产服务器的暴力攻击。Fail2ban 会在 5 次身份验证失败后禁止某个 IP,并在 1 小时后根据我自己的配置解除禁止。我想知道最佳禁令持续时间是多少,或者我真的需要再次解除禁令吗?永久禁止某个 IP 是最好的解决方案吗?
答案1
禁令的最佳实施时间没有一般规则,这取决于很多因素,包括
- 服务器/服务的类型
- 目标受众
- 攻击类型
- 以及具体的攻击/攻击者。
当然,这也适用于决定是否需要解除禁令 - 如果很少有 IP 地址可以合法连接到您的服务,那么(半)永久禁止攻击者可能不是一个坏主意,但在其他情况下,这会产生更多问题而不是好处。
编辑您的评论:
对 root 账户最重要的保护是
- 首先不允许 root 访问
- 其他用途仅使用基于密钥的登录并且不允许使用密码。
这也有助于保护您免受今天所见的分布式暴力攻击,在这种攻击中,您会受到大量僵尸网络机器的缓慢攻击,每台机器只会尝试极少量的密码,因此根本不会触发类似的东西fail2ban
。
第二次编辑,关于第二条评论:
我们显然处于“视情况而定”的境地。以下是我的环境中的示例:
- 机器 1 有用户从外部网络登录。我无法禁用密码登录(因为原因:( )。禁令时间设置为 10 分钟。
- 机器 2 上只有管理员从极少数缓慢变化的 IP 登录。禁止时间设置为 24 小时。
问题是,24 小时禁令的效果只会稍微好一些,如果有的话(*),但是由于限制了非基于根密钥的登录,机器 2 受到了更好的保护。
(*)这是我的印象,并非基于对日志文件的任何实际统计分析。
答案2
永久禁止 IP 并不是好的行为,因为任何无害的连接都会随时占用该 IP。
我通常更喜欢一天作为最佳禁令时间跨度。这种方法可以保护您免受来自同一 IP 的攻击。如果您仍然受到来自同一 IP 的攻击,您可以手动将其禁止一个月。