![如果已经使用firewalld并限制ssh,是否需要fail2ban](https://linux22.com/image/178547/%E5%A6%82%E6%9E%9C%E5%B7%B2%E7%BB%8F%E4%BD%BF%E7%94%A8firewalld%E5%B9%B6%E9%99%90%E5%88%B6ssh%EF%BC%8C%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81fail2ban.png)
我看过很多帖子展示如何安装fail2ban和firewalld,并且想知道我的设置是否真的需要fail2ban。
我的设置如下
- VPS 中的 Cent OS 8
- 面向公众的知识产权
- Firewalld 处于活动状态并阻止除以下内容之外的所有内容
- 80/443端口对外开放
- 22端口只对3个IP地址开放
- 不允许远程 root ssh
- 不允许使用密码 ssh - 只允许使用 ssh 密钥登录
有了这个设置,我什至需要fail2ban,如果需要,它能解决什么目的。我发现一个线程声称如果不使用fail2ban,则有关CPU成本的信息 如果密码登录已关闭,fail2ban 是否会为 SSH 提供任何额外的保护?
我的设置是这样吗?我可以理解fail2ban可以用于其他日志监控和警报,但是仅对于ssh来说会是一种浪费
答案1
fail2ban
的逻辑非常简单:如果从同一 IP 进行一定次数的 ssh 登录尝试失败,则该 IP 会被暂时阻止。
由于您仅将端口 22 暴露给 3 个 IP 地址,因此您已经阻止了入侵者访问 SSH。你的其他预防措施(没有root,没有密码)也很好。基于这些现有的预防措施,我不会担心fail2ban。
有人可能会说,fail2ban 比 ssh 更有用,但由于只暴露了 80/443 端口,我很难想出一个案例。
终于,你已经链接到答案它还有另外两个好处:
- 防止身份验证日志被填满
- 减少处理暴力尝试时不必要的 CPU 周期。
我认为这些对你都没有好处。由于您将端口 22 限制为三个 IP 地址,因此您不会收到来自随机 IP 地址的尝试。 fail2ban 执行任何操作的唯一方法是,如果这三个 IP 地址之一开始专门对您进行暴力破解。任何暴力破解都不太可能成功,因为您已经禁用了 root 并禁用了密码。因此,该特定 IP 地址将被禁止,我认为这对您来说是一个更大的问题,因为它在您的候选名单上,并且可能对您的操作是必要的。
答案2
Fail2ban 从来都不是“必需的”,但它很有用。
如果 SSH 只能通过少数 IPS 访问,并且您通常信任那些有权访问此 IPS 的人,那么fail2ban 对于保护 SSH 的用处不大。事实上,如果有人登录出现问题并且突然整个办公室被封锁,这可能会很痛苦。
但fail2ban 不仅仅是一种 SSH 保护。它的配置非常复杂,但可以配置为监视任何日志。这意味着您的 Web 应用程序(端口 80 和 443 上)也可以受到监控。有些人很清楚。 Web 应用程序(例如 WordPress)吸引了许多来自机器人的不必要的黑客攻击。 Fail2ban 也是一个很好的禁止这些机制的机制。
因此,就您的情况而言,我怀疑 failed2ban 对于保护 SSH 没有多大用处,但请考虑您将为 Web 应用程序提供哪些保护。