新买的 VPS 开机那一刻,扫描器就已经在路上了。公网上的机器几分钟内就会收到 SSH 爆破请求,这不是吓唬人,打开 /var/log/auth.log 看看就知道。好消息是,挡住绝大多数自动化攻击并不难,下面这 8 步花半小时就能做完,做一次管很久。
1. 先更新系统
镜像里的软件包往往是几个月前的版本,第一件事是补漏洞:
apt update && apt upgrade -y # Debian / Ubuntu
dnf upgrade -y # Rocky / Alma / CentOS Stream
升级了内核的话记得重启一次。
2. 建一个普通用户,别天天用 root
adduser deploy
usermod -aG sudo deploy # Debian/Ubuntu;RHEL 系用 wheel 组
日常操作用普通用户加 sudo,手滑一条 rm 的代价会小很多。
3. 换成密钥登录
在自己电脑上生成密钥并传上去:
ssh-keygen -t ed25519
ssh-copy-id deploy@你的服务器IP
先另开一个终端确认能用密钥登录成功,再进行下一步。
4. 关掉密码登录
编辑 /etc/ssh/sshd_config(或 sshd_config.d/ 下新建一个文件):
PasswordAuthentication no
PermitRootLogin prohibit-password
KbdInteractiveAuthentication no
然后 systemctl restart ssh(有的系统服务名是 sshd)。当前连接不要断开,新开窗口测试能登录再关。密码登录一关,暴力破解基本就失去意义了。
5. 开防火墙,只放需要的端口
ufw allow 22/tcp # 如果改过 SSH 端口,写新端口
ufw allow 80,443/tcp # 有网站才开
ufw enable
ufw status
顺序很重要:先放行 SSH 再 enable,否则会把自己锁在门外。另外别忘了云厂商控制台里还有一层「安全组」,两边都要放行才能访问。
6. 装 fail2ban
即便关了密码登录,日志也会被爆破刷屏。fail2ban 会把反复失败的 IP 临时封掉:
apt install fail2ban -y
systemctl enable --now fail2ban
fail2ban-client status sshd
7. 打开自动安全更新
apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades
只自动装安全补丁,不会乱升大版本,适合没空天天盯着的小机器。
8. 看一眼到底开了哪些端口,再做一次快照
ss -tlnp
列表里每一行都应该是你认识的服务。认不出来的,先查清楚再说。最后去控制台做一次快照或备份,以后折腾坏了可以一键回到这个干净的状态。
小结
- 必做:更新、密钥登录、关密码登录、防火墙。
- 强烈建议:普通用户、fail2ban、自动安全更新、快照。
- 改 SSH 和防火墙时永远保留一个已登录的窗口,这是最重要的一条。
改端口这类「藏起来」的做法能减少日志噪音,但真正起作用的是密钥登录和最小开放端口。先把这两件事做好,比什么花哨的面板都管用。
本文由 Lingshi 发布,转载请注明出处。

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