一台全新 VPS 上的头十分钟,悄悄决定了很多。一个新的公网 IP 几乎立刻就开始被自动化机器人探测——它们不是针对你,它们只是把一切都扫一遍。什么都不做,你就在靠运气。做四五件小事,你就关上了那些真正会被踹开的门。这是清单,按优先级排,附命令。
1. SSH 密钥,并关掉密码登录
这是最要紧的那件。如果你能用密码登录,一个猜到它的机器人也能——它们每分钟试上千次。
在你的笔记本上,如果你还没有密钥:
ssh-keygen -t ed25519 -C "you@laptop"
ssh-copy-id root@your-server-ip
然后在服务器上,关掉密码:
# /etc/ssh/sshd_config.d/99-hardening.conf
PasswordAuthentication no
PermitRootLogin prohibit-password
sudo systemctl reload ssh
⚠️ 在关掉第一个会话之前,先测一个第二个 SSH 会话——如果密钥登录能用,很好;如果不能,你还有那个开着的会话来修它。把自己锁在门外是这里的经典乌龙。
2. 一道防火墙——默认拒绝
只暴露你打算暴露的。在 Ubuntu/Debian 上:
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH # 或你的 SSH 端口
sudo ufw enable
现在一个游离的服务除非你开放它,否则从外面够不着。这抓住了你必然会忘掉的那个东西。
给 NAT 式套餐的一点提醒:你的 SSH 落在一个转发端口上,而不是 22,你也开不了任意入站端口——隔离替你做了这活的一部分。在独立IP套餐上,所有端口都归你,所以防火墙干的活更多。
3. 自动安全更新
大多数被攻陷的服务器不是精心挑的目标——它们是在一台没人更新的机器上,跑着一个补丁早已修好的已知漏洞。让打补丁自动化:
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
设好就忘。这是 SSH 密钥之后价值最高的习惯。
4. fail2ban(可选,但便宜)
密码登录已经关掉后,暴力破解赢不了——所以这更多是削减噪声、及早封掉滥用 IP,而不是核心保护:
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
为更安静的日志值得装;如果你想保持极简,跳过它也不必内疚。
你可以跳过什么
- 改 SSH 端口 —— 减少机器人噪声,拦不住真正的攻击者。表面功夫。别把它跟安全混为一谈。
- 繁复的 IDS/SELinux 调优 —— 对一台跑机器人或代理的单一用途机器来说过头了。收益递减。
诚实的总结
如果你只做一件事,做 SSH 密钥 + 禁用密码登录。 加上防火墙和自动更新,你就在远不到十分钟里处理了现实世界里绝大多数的真实风险。再往后的一切都是打磨。
在机器上跑一个常开的代理或机器人?把这个和用 systemd 让它保活配起来,这样它熬过的不只是攻击者,还有重启和崩溃。
评论
暂无评论。来做第一个吧。