导读:很多人拿到VPS的第一件事是搭网站,然后某天在登录记录里发现一堆陌生IP。一台裸奔的服务器,全网扫描机器人几分钟就能摸到——SSH弱密码、暴露的数据库端口、没打补丁的组件,每一个都是现成的入口。这篇按优先级梳理新机加固清单,全部操作30分钟内能做完,让绝大多数自动化攻击直接绕道。
一、第一道防线:改掉SSH的三个默认值
SSH是服务器的正门,也是攻击者最爱敲的门。三个默认值必须改:
- 改端口。默认22端口每天会被大量机器人扫。挑一个10000-65535之间的高位端口,改 /etc/ssh/sshd_config 里的 Port 字段,重启sshd生效。注意:改之前先在防火墙放行新端口,否则会把自己锁在门外。
- 禁用root直接登录。先创建普通用户并加入sudo组,确认能登录、能提权后,再把 sshd_config 里的 PermitRootLogin 改成 no。顺序不能反。
- 密钥登录替换密码登录。本地 ssh-keygen 生成密钥对,ssh-copy-id 推到服务器,测试免密登录成功后,把 PasswordAuthentication 改成 no。从此暴力破解字典直接失效。
改完这三项,SSH层面的自动化攻击基本过滤掉90%以上。
二、第二道防线:防火墙默认全拒,用到再开
原则很简单:默认拒绝所有入站,只放行业务端口。Ubuntu/Debian用ufw三条命令搞定:
- ufw allow 新SSH端口/tcp
- ufw allow 80,443/tcp
- ufw enable
CentOS用firewalld同理。重点检查两件事:数据库3306、Redis 6379这类服务端口绝对不能对公网开放(绑定127.0.0.1即可);面板类服务(宝塔、phpMyAdmin)要么改默认端口,要么加IP白名单。
三、第三道防线:自动安全更新加fail2ban
系统补丁不能靠手动。Debian/Ubuntu装 unattended-upgrades,让它自动安装安全更新。再装fail2ban,配置好后连续输错密码的IP会被自动封禁,配合密钥登录基本杜绝暴力破解。
四、第四道防线:管住数据库和面板这两个大户
- MySQL/MariaDB确认只监听127.0.0.1(bind-address)
- Redis设置requirepass,顺带禁用FLUSHALL这类危险命令
- 面板、phpMyAdmin改掉默认路径和端口,开启两步验证
- 不用的服务直接 systemctl disable 关掉,攻击面越小越安全
五、第五道防线:定期巡查,留好记录
安全不是一次性的。每月花十分钟做三件事:
- last和lastb看登录成功和失败记录,出现陌生IP立刻排查
- 查看待更新列表,确认自动更新没罢工
- 检查磁盘和进程有没有异常(挖矿木马最喜欢伪装成系统进程)
常见误区
误区一:“我一个小破站,没人会盯上我。” 自动化扫描不看网站大小,只看端口和漏洞。
误区二:“装了面板就安全了。” 面板本身也是攻击面,每年都有面板爆出高危漏洞。
误区三:“加固一次管终身。” 系统在更新,漏洞在更新,加固也要跟着更新。
写在最后
加固顺序记一句话:改SSH → 上防火墙 → 自动更新加fail2ban → 收紧服务和面板 → 每月巡查。做完这五步,你的VPS在全网扫描机器人眼里,已经从“不设防”变成了“性价比太低”,绝大多数攻击会直接绕道。剩下针对性的高级攻击,靠定期备份兜底——毕竟安全没有100分,但可以离100分很近。
你加固VPS的第一步是什么?踩过哪些坑?欢迎评论区交流。


