就算关了密码登录,SSH、Nginx、面板仍然会被各种扫描器试探。fail2ban 会自动识别恶意尝试并把来源 IP 封禁,是服务器标配的安全利器。
fail2ban 是什么
它持续读取服务日志,发现某 IP 在短时间内多次登录失败/恶意请求,就自动把该 IP 加入防火墙封禁一段时间。
安装与启动
# Debian/Ubuntu
apt-get update && apt-get install -y fail2ban
# CentOS
yum install -y fail2ban
核心配置 jail.local
[DEFAULT]
banaction = iptables-multiport
bantime = 3600
maxretry = 5
[sshd]
enabled = true
port = ssh
这里 bantime 是封禁时长(秒),maxretry 是触发封禁前的失败次数。注意 banaction 用 iptables-multiport,不要用 ufw(很多环境 ufw 没开)。
验证效果
systemctl restart fail2ban
fail2ban-client status sshd
看到 Banned IP list 有内容,说明已经在拦截了。用错误密码连几次,很快你的 IP 就会被临时封禁。
进阶
还能给 Nginx(限频)、宝塔面板加 jail,防止恶意刷接口。建议配合日志轮转一起配置,避免日志文件撑爆硬盘。




还没有评论,来说两句吧...