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 手册页。
## 代码状态:
* [](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服务器, 上游代理, 偏好优化, 入侵防御, 子域名枚举, 开源安全工具, 拒绝服务攻击防护, 无后门, 暴力破解防护, 系统安全, 系统运维, 网络安全, 身份验证保护, 逆向工具, 逆向工程平台, 防火墙, 隐私保护