Skip to main content

Fail2Ban:阻断暴力攻击与恶意登录

· 2 min read
Mo
Software Engineer

Fail2ban的安装及部署方法

更新软件源

sudo apt-get update

安装fail2ban

sudo apt-get install -y fail2ban

启动fail2ban服务并设置开机自启

sudo systemctl start fail2ban
  
sudo systemctl enable fail2ban

配置 fail2ban jail 规则

Fail2Ban 封禁行为的配置文件是 /etc/fail2ban/jail.conf。为了便于修改,可以把它复制一份 /etc/fail2ban/jail.local,后面的修改都针对jail.local这个文件。

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

下面是配置文件jail.local的配置项含义,所有配置项的格式都是key=value。

bantime

封禁的时间长度,单位m表示分钟,d表示天,如果不写单位,则表示秒。Fail2Ban 默认封禁10分钟(10m 或 600)。

[DEFAULT]
bantime = 10m
findtime

登录失败计算的时间长度,单位m表示分钟,d表示天,如果不写单位,则表示秒。Fail2Ban 默认封禁 10 分钟内登录 5 次失败的客户端。

[DEFAULT]
findtime = 10m
maxretry
[DEFAULT]
maxretry = 5

尝试登录的最大失败次数, -1 为永久封禁。

用任意文本编辑器打开 /etc/fail2ban/jail.local, 用以下内容替换原有配置:

[DEFAULT]
ignoreip = 127.0.0.1/8 192.168.1.10 192.168.1.20
bantime = -1
findtime = 1d
maxretry = 3

[sshd]
enabled = true
port = ssh
filter = sshd
banaction = iptables
backend = systemd

保存并关闭该文件。使用以下命令重新启动fail2ban

  

sudo systemctl restart fail2ban

fail2ban的测试及关闭服务方法

查看当前封禁IP:sudo fail2ban-client status sshd

解禁某一IP: sudo fail2ban-client set sshd unbanip IP_ADDRESS

停止fail2ban服务:sudo systemctl stop fail2ban

关闭fail2ban服务:sudo systemctl disable fail2ban