SSH 一天被扫几千次?三步配好 fail2ban,爆破进来先封 IP
刚开好一台云服务器,第一件事不是装面板,而是看一眼日志。翻开 /var/log/auth.log,“Failed password” 一行接一行,一天下来能攒几千条——99% 是全网扫描的肉鸡在撞你的 SSH。这事跟你做没做错配置没关系,公网 IP 拿到手,扫描第二天就到。
fail2ban 干的事很简单:盯着日志看,同一个 IP 短时间内连续输错几次密码,就调 iptables 把它封掉一段时间。它本身是个轻量守护进程,1GB 内存的小机器跑起来毫无压力。
Debian/Ubuntu 上三步装好:
第一步,apt install fail2ban。
第二步,新建 /etc/fail2ban/jail.local,写入:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h
意思是 10 分钟内输错 5 次,就封 1 小时。
第三步,systemctl enable --now fail2ban,然后 fail2ban-client status sshd 看状态。想查现在封了谁、解封某个 IP:fail2ban-client set sshd unbanip x.x.x.x。
几个实战里踩过的坑:
一是先加白名单再开封禁。jail.local 里写上 ignoreip = 127.0.0.1 加上你自己的固定出口 IP,否则你自己输错几次密码也被关在门外,只能走控制台 VNC 进去解,狼狈得很。
二是 bantime 别一上来就设一年。扫描源的 IP 池大得吓人,封一年也没用,fail2ban 挡的是"同一 IP 短时间高频撞"的低端脚本。先 1 小时起步,观察几天再调。
三是 fail2ban 是兜底不是银弹。配合改默认 SSH 端口、只留密钥登录禁用密码,效果是叠加的。安全从来都是组合拳。
最后,偶尔看一眼战果:grep "Ban " /var/log/fail2ban.log | tail,一天拦了多少 IP 一目了然。小内存机器最怕常驻的重服务,fail2ban 这种轻量守护进程反而是最值的投入之一——装上,设好白名单,之后就不用再管它。
- 点赞
- 收藏
- 关注作者
评论(0)