Fail2Ban 是基于 Linux 平台 WebServer 的一个插件,如果你的站点资源现托管在 『Windows』 『服务器』上的 IIS 上,而恰好又是基于单实例的架构,那么你需要对现有的 Server 站点架构做一些改造。通常一个可靠的结构会包含一个前置的 Nginx 『服务器』用作反向代理或者『负载均衡』,后面则是负责站点资源托管的『服务器』或者集群。更进一步,为了增加整体可用性,前置反向代理会适当增加冗余备份等。不过这些不是我们今天主要讨论的话题。在完成上述改造后,在整个结构中,我们就有了一个 Linux + Nginx 的结构,这是我们开启 Fail2Ban 工具之旅的一个基础。
传统运维的弊端
传统的『服务器』安全运维,站长同学会定期人肉监控『服务器』各项状态,如 CPU、内存或者 DiskIO、数据库资源占用异常偏高,再或者在连接数释放不及时等导致的异常情况时,及时登到『服务器』上,查看最近访问日志中,识别存在明显攻击行为的访问,最终对这些 IP 或者 IP 段进行封禁,阻止后续的异常访问,降低『服务器』的非可控资源占用。但在典型的访问日志中,存在着以下问题:
滞后性:通常只能在实际发生『服务器』性能明显下降时,开始干预,此时给正常的客户提供的服务已经或多或少的受到了影响,服务质量下降。
需要纯人工,或者借助一些其他三方工具从海量的日志中分析明显不正统的流量,耗时、费力
国内很多『服务器』的 IP 是动态获取的,攻击流量存在一定的时效性,可能一段时间内使用 A 地址扫描网站,再过 24 小时会自动变成地址 B,封禁、解封存在着时效性,会存在误伤的可能
因此,亟需一种可以能够可以识别攻击行为、阻止异常访问的自动化工具参与到日常运维中来。





