fail2ban防暴力破解工具

2025-04发布15次浏览

fail2ban防暴力破解工具

简介

fail2ban 是一个用于防止服务器被暴力破解的工具。它通过监控日志文件,检测到多次失败的登录尝试后,会自动屏蔽攻击者的 IP 地址,并可以发送警告邮件通知管理员。fail2ban 支持多种服务(如 SSH、FTP、Apache 等),并且可以通过配置文件进行灵活定制。

安装与配置

1. 安装 fail2ban

在基于 Debian 的系统(如 Ubuntu)上,可以使用以下命令安装:

sudo apt update
sudo apt install fail2ban

在基于 Red Hat 的系统(如 CentOS)上,可以使用以下命令安装:

sudo yum install epel-release
sudo yum install fail2ban

2. 配置 fail2ban

fail2ban 的主要配置文件位于 /etc/fail2ban/ 目录下。默认配置文件是 jail.conf,但建议不要直接修改该文件,而是创建一个自定义配置文件 jail.local 来覆盖默认设置。

创建 jail.local 文件

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

编辑 jail.local 文件

使用文本编辑器打开 jail.local 文件:

sudo nano /etc/fail2ban/jail.local

基本配置项

  • ignoreip: 设置不被阻止的 IP 地址,通常包括本地 IP 和可信 IP。
  • bantime: 设置 IP 被阻止的时间(单位为秒)。
  • findtime: 设置在多长时间内检测到多次失败登录会被认为是攻击。
  • maxretry: 设置允许的最大失败登录次数。

示例配置:

[DEFAULT]
ignoreip = 127.0.0.1/8
bantime = 600
findtime = 600
maxretry = 3

配置特定服务

jail.local 文件中,可以为不同的服务配置规则。例如,保护 SSH 服务:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 5

3. 启动和检查 fail2ban

启动 fail2ban 服务:

sudo systemctl start fail2ban

设置开机自启:

sudo systemctl enable fail2ban

检查 fail2ban 状态:

sudo fail2ban-client status

查看特定服务的状态:

sudo fail2ban-client status sshd

4. 测试 fail2ban

可以通过模拟多次错误登录来测试 fail2ban 是否生效。例如,使用 ssh 连接到服务器时故意输入错误密码多次,然后检查是否被阻止。

扩展功能

fail2ban 还支持与其他工具集成,例如与防火墙(iptables)或云服务商的网络 ACL 结合使用,以增强安全性。

与 iptables 集成

fail2ban 默认使用 iptables 来阻止恶意 IP。可以通过以下命令查看当前的 iptables 规则:

sudo iptables -L

自定义过滤器

用户可以根据自己的需求创建自定义过滤器。过滤器文件通常位于 /etc/fail2ban/filter.d/ 目录下。例如,为 Apache 创建一个过滤器:

[Definition]
failregex = ^<HOST> -.*"(GET|POST).*HTTP.*" 404.*
ignoreregex =

然后在 jail.local 中启用该过滤器:

[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 6

总结

fail2ban 是一个强大且灵活的工具,可以帮助管理员有效地防止暴力破解攻击。通过合理的配置和扩展,可以进一步提升服务器的安全性。