跳到主要内容

Debian安装使用Fail2ban防范SSH暴力破解攻击

fail2ban是一款入侵防御软件,能够运行在大多数Linux服务器上,保护计算机服务器免受暴力破解的攻击

安装fail2ban服务并设置开机自启

# 更新软件源
sudo apt-get update
# 安装fail2ban
sudo apt-get install -y fail2ban
# 启动fail2ban服务并设置开机自启
sudo systemctl start fail2ban
sudo systemctl enable fail2ban

配置fail2ban jail规则

编辑文件vim /etc/fail2ban/jail.local加入以下内容

[DEFAULT]
# 用于指定哪些地址(IP/域名等)可以忽略 fail2ban 防御,空格分隔
ignoreip = 127.0.0.1/8
# 封禁该ip的时间(单位:秒),-1为永久封禁,这里是封禁一天
bantime = 86400
#检测扫描行为的次数,和findtime结合使用,一天内失败2次即封禁
maxretry =2
# 检测扫描行为的时间窗口(单位:秒),和maxretry结合使用,这里配置24小时
findtime = 86400
action = %(action_mwl)s

[sshd]
# 启用ssh扫描判断器
enabled = true
filter = sshd
# ssh的端口,如更换过ssh的默认端口请更改成相应端口
port = 22
action = %(action_mwl)s
# 系统行为记录日志,一般无需改动
logpath = /var/log/auth.log
#检测扫描行为的次数,这里配置的话会覆盖上面的默认配置
maxretry = 1
# 过滤器每次从日志中读取的日志行最大数量,可选,一般无需改动
maxLines = 500

保存文件后,重启服务

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

另外也可以使用iptables -nvL查看Chain f2b-sshd中的数据来判断封禁IP是否生效