> 软件包与系统管理 > fail2ban

Fail2Ban 完全指南

Fail2Ban 是一款自动阻止针对服务器的暴力破解攻击(Brute-force attack)的安全工具。通过本指南,您可以了解从 Fail2Ban 的安装到配置、主要命令的所有内容。

安装方法

Fail2Ban 在大多数 Linux 发行版中作为默认软件包提供。您可以使用以下命令轻松安装。

Debian/Ubuntu

sudo apt-get update
sudo apt-get install fail2ban

CentOS/RHEL

sudo yum install epel-release
sudo yum install fail2ban

安装后启动和启用 Fail2Ban 服务

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

安装后启动服务并设置为在启动时自动运行。

主要配置文件

Fail2Ban 的核心配置在 `jail.conf` 和 `jail.local` 文件中进行。最佳做法是不要修改原始文件 `jail.conf`,而是创建 `jail.local` 文件以覆盖设置。

⚙️ 主要配置文件位置

/etc/fail2ban/jail.conf

📝 用户自定义配置文件(推荐)

/etc/fail2ban/jail.local

要更改 `jail.conf` 的配置,只需创建此文件并添加所需的设置即可。此方法可以防止在更新时覆盖原始文件。

jail.local 文件的主要设置示例

以下是经常添加到 `jail.local` 文件中的设置选项。通过这些设置,您可以详细控制 Fail2Ban 的操作方式。

  • [sshd]: 开始为 sshd 服务配置.
  • enabled = true: 启用该 jail(监狱).
  • port = ssh: 指定要保护的 ssh 端口(默认 22).
  • maxretry = 5: 如果在指定时间(findtime)内失败登录次数超过 5 次,则阻止.
  • bantime = 10m: 设置阻止时间(10 分钟).
  • findtime = 10m: 设置计算失败登录次数的时间(10 分钟).

主要命令

用于检查 Fail2Ban 服务状态或手动阻止/解除阻止 IP 的主要命令。

检查 Fail2Ban 服务状态

sudo systemctl status fail2ban

确认 Fail2Ban 服务是否正常运行。

检查 Fail2Ban 日志

sudo journalctl -u fail2ban

查看 Fail2Ban 阻止的 IP 列表等详细操作日志。

手动阻止特定 IP

sudo fail2ban-client set sshd banip 1.2.3.4

手动阻止指定的 IP 地址在 `sshd` jail 中。

手动解除阻止特定 IP

sudo fail2ban-client set sshd unbanip 1.2.3.4

手动解除之前在 `sshd` jail 中阻止的 IP 地址。

查看当前被阻止的 IP 列表

sudo fail2ban-client status sshd

查看当前在 `sshd` jail 中被阻止的 IP 地址列表。


相同类别命令