Linux服务器安全:自动封禁SSH暴力破解攻击IP
背景介绍
服务器经常会遇到SSH暴力破解攻击,攻击者通过反复尝试不同的密码组合来尝试获取系统访问权限。这种攻击会在系统日志中留下大量失败登录记录。本文提供了在Ubuntu和CentOS系统上自动识别并封禁此类攻击IP的解决方案。
工作原理
本文提供的脚本通过分析系统认证日志,识别出短时间内多次SSH登录失败的IP地址,并将这些IP地址添加到系统的/etc/hosts.deny
文件中,从而阻止这些IP的后续连接请求。
Ubuntu系统脚本
Ubuntu系统的SSH失败登录记录存储在/var/log/auth.log
文件中:
CentOS系统脚本
CentOS系统的SSH失败登录记录存储在/var/log/secure
文件中:
自动化部署:结合crontab定时任务
为实现自动封禁功能,可以将脚本设置为crontab定时任务,定期执行:
注意事项
执行脚本前,确保
/etc/hosts.deny
文件存在且有写入权限调整
TRYCOUNT
变量值可以改变封禁阈值该脚本使用TCP Wrappers机制进行封禁,确保系统支持此功能
考虑定期清理
/etc/hosts.deny
文件,避免文件过大
高级配置
可以添加白名单功能,避免误封重要IP
可以设置封禁时限,在一定时间后自动解除封禁
可以加入日志功能,记录封禁历史
相关工具
更强大的SSH防护可以考虑使用以下工具:
Fail2Ban
DenyHosts
CSF (ConfigServer Security & Firewall)
Last updated
Was this helpful?