fail2ban/fail2ban

GitHub: fail2ban/fail2ban

通过监控日志文件自动封禁多次认证失败的主机 IP,防御暴力破解攻击的轻量守护进程。

Stars: 17735 | Forks: 1475

``` __ _ _ ___ _ / _|__ _(_) |_ ) |__ __ _ _ _ | _/ _` | | |/ /| '_ \/ _` | ' \ |_| \__,_|_|_/___|_.__/\__,_|_||_| v1.1.0.dev1 20??/??/?? ``` ## Fail2Ban:封禁造成多次身份验证错误的主机 Fail2Ban 会扫描 `/var/log/auth.log` 等日志文件,并封禁那些进行过多失败登录尝试的 IP 地址。它通过更新系统防火墙规则来实现这一点,以便在可配置的时间段内拒绝来自这些 IP 地址的新连接。Fail2Ban 开箱即用,能够读取许多标准的日志文件,例如 sshd 和 Apache 的日志文件,并且可以轻松配置以读取您选择的任何日志文件,用于捕获您希望的任何错误。 尽管 Fail2Ban 能够降低错误身份验证尝试的频率,但它无法消除弱身份验证带来的风险。如果您确实想要保护服务,请将服务设置为仅使用双重身份验证或公钥/私钥身份验证机制。 | 自 v0.10 起,fail2ban 支持匹配 IPv6 地址。 ------|------ 本 README 是 Fail2Ban 的快速入门介绍。更多文档、常见问题解答和 HOWTO 指南可以在 fail2ban(1) man 手册页、[Wiki](https://github.com/fail2ban/fail2ban/wiki)、[开发者文档](https://fail2ban.readthedocs.io/) 以及网站:https://www.fail2ban.org 上找到。 ## 安装: Fail2Ban 可能已经为您的 Linux 发行版打包好了,并且可以[通过一条简单的命令进行安装](https://github.com/fail2ban/fail2ban/wiki/How-to-install-fail2ban-packages)。 如果列表中没有您的发行版,您可以从 GitHub 安装: 必需: - [Python >= 3.5](https://www.python.org) 或 [PyPy3](https://pypy.org) - 从源码安装所需的 python-setuptools(或 python3-setuptools) 可选: - [pyinotify >= 0.8.3](https://github.com/seb-m/pyinotify),可能需要: * Linux >= 2.6.13 - [systemd >= 204](http://www.freedesktop.org/wiki/Software/systemd) 及其 python 绑定: * [python-systemd 软件包](https://www.freedesktop.org/software/systemd/python-systemd/index.html) - [dnspython](http://www.dnspython.org/) - [pyasyncore](https://pypi.org/project/pyasyncore/) 和 [pyasynchat](https://pypi.org/project/pyasynchat/)(通常内置于 fail2ban 中,仅适用于 python 3.12+) 安装步骤: ``` tar xvfj fail2ban-master.tar.bz2 cd fail2ban-master sudo python setup.py install ``` 或者,您可以将 GitHub 上的源代码克隆到您选择的目录中,然后从那里进行安装。请选择正确的分支,例如 master 或 0.11 ``` git clone https://github.com/fail2ban/fail2ban.git cd fail2ban sudo python setup.py install ``` 这会将 Fail2Ban 安装到 python 库目录中。可执行脚本会被放置在 `/usr/bin` 中,配置文件会被放置在 `/etc/fail2ban` 中。 Fail2Ban 现在应该已经正确安装。只需输入: ``` fail2ban-client -h ``` 来查看是否一切正常。您应该始终使用 fail2ban-client,切勿直接调用 fail2ban-server。 您可以通过以下命令验证是否安装了正确的版本: ``` fail2ban-client version ``` 请注意,系统初始化/服务脚本不会自动安装。要将 fail2ban 启用为自动服务,只需将 `files` 目录中适用于您发行版的脚本复制到 `/etc/init.d`。示例(在基于 Debian 的系统上): ``` cp files/debian-initd /etc/init.d/fail2ban update-rc.d fail2ban defaults service fail2ban start ``` ## 配置: 您可以使用 `/etc/fail2ban` 中的文件来配置 Fail2Ban。也可以通过 `fail2ban-client` 向服务器发送命令来进行配置。可用的命令在 fail2ban-client(1) man 手册页中有描述。更多信息另请参阅 fail2ban(1) 和 jail.conf(5) man 手册页。 ## 代码状态: * [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/e01add3e97192339.svg)](https://github.com/fail2ban/fail2ban/actions/workflows/main.yml) ## 联系方式: ### 缺陷、功能请求、讨论? 请参阅 [CONTRIBUTING.md](https://github.com/fail2ban/fail2ban/blob/master/CONTRIBUTING.md) ### 如果您只是想表达对这个程序的喜爱: 请向原作者 ([Cyril Jaquier](mailto:cyril.jaquier@fail2ban.org)) 致谢, 或者*最好*发送到[邮件列表](https://lists.sourceforge.net/lists/listinfo/fail2ban-users), 因为 Fail2Ban 多年来一直是由“社区驱动”的。 ## 感谢: 请参阅 [THANKS](https://github.com/fail2ban/fail2ban/blob/master/THANKS) 文件。 ## 许可证: Fail2Ban 是自由软件;您可以根据自由软件基金会发布的 GNU General Public License 的条款,对其进行重新分发和/或修改;您可以选择遵循该许可证的第二版,或(由您选择)任何更新的版本。 分发 Fail2Ban 的目的是希望它有用,但不提供任何保证;甚至没有对适销性或特定用途适用性的默示保证。有关更多详细信息,请参阅 GNU General Public License。 您应该在收到 Fail2Ban 的同时收到一份 GNU General Public License 的副本;如果没有,请写信给 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
标签:DevSecOps, Fail2Ban, IPv6, IP封禁, PowerShell, Python, SSH安全, Web服务器, 上游代理, 偏好优化, 入侵防御, 子域名枚举, 开源安全工具, 拒绝服务攻击防护, 无后门, 暴力破解防护, 系统安全, 系统运维, 网络安全, 身份验证保护, 逆向工具, 逆向工程平台, 防火墙, 隐私保护