服务器 SSH 防暴力破解配置教程 —— fail2ban 实战
你有没有看过服务器日志?每天有成百上千条来自世界各地 IP 的登录尝试。这就是暴力破解。
好在有 fail2ban 这个工具,它可以监控登录日志,发现多次失败后自动封禁 IP。
安装 fail2ban
CentOS:
yum install epel-release -y
yum install fail2ban -yUbuntu:
sudo apt update
sudo apt install fail2ban -y基础配置
创建配置文件:
vi /etc/fail2ban/jail.local粘贴以下内容:
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = ssh
logpath = /var/log/secure
action = iptables[name=SSH, port=ssh, protocol=tcp]- bantime:封禁时长(秒),3600 = 1 小时
- findtime:检测窗口(秒),600 = 10 分钟
- maxretry:允许失败次数,5 次后封禁
启动 fail2ban
systemctl start fail2ban
systemctl enable fail2ban查看封禁情况
fail2ban-client status
fail2ban-client status sshd输出类似:
Status for the jail: sshd
|- Filter
| |- Currently failed: 6
| |- Total failed: 1482
|- Actions
|- Currently banned: 23
|- Total banned: 156手动解封 IP
fail2ban-client set sshd unbanip 103.151.228.100建议配置
对于国内 IDC 环境,建议以下参数:
bantime = 86400
maxretry = 3
findtime = 600一天(86400秒)内尝试 3 次就封,基本能挡住 99% 的扫描。
注意事项
- 配置完记得先确认自己的 IP 在白名单里,别把自己封了
- fail2ban 只是辅助防护,配合修改 SSH 端口(换成非常规端口)效果更好
- 封禁记录在 /var/log/fail2ban.log,可以定期查看
评论