VPS 安全进阶:超越 Fail2ban 的加固方案
在之前的文章中,我们介绍了如何使用 Fail2ban 自动封禁暴力破解 IP。然而,安全是一个多层级的防御体系,Fail2ban 只是“事后补救”式的防御。
如果黑客拥有极高效率的爆破手段,或者你刚好使用了一个弱密码,Fail2ban 可能在封禁 IP 之前就让攻击者得逞。真正的“堡垒级”防御,应该从减少攻击面和增强身份验证入手。
本文将带你完成 VPS 的深层加固,确保即使你的 IP 暴露,攻击者也无从下手。
一、 SSH 密钥登录:彻底告别“爆破”
核心思想: 用“长达数千位的复杂字符串(密钥)”代替“人脑能记住的简单字符串(密码)”。
即使攻击者有再强大的算力,也无法在有限的时间内破解 4096 位的 RSA 密钥或 Ed25519 密钥。
1. 在本地生成密钥对
在你的本地电脑(Windows 使用 PowerShell/CMD,macOS/Linux 使用终端)执行:
ssh-keygen -t ed25519 -C "your_email@example.com"提示:Ed25519 是目前公认最安全且性能最好的算法。
2. 将公钥上传至服务器
你可以手动复制,也可以使用快捷命令:
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@你的服务器IP3. 测试密钥登录
确保不需要输入密码即可直接进入服务器:
ssh root@你的服务器IP二、 禁用密码认证:关闭那扇“虚掩的门”
只要服务器还允许密码登录,爆破就不会停止。一旦密钥登录配置成功,你应该果断禁用密码认证。
修改 SSH 配置文件
nano /etc/ssh/sshd_config找到并修改以下关键项:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no # 如果你打算使用 2FA,此项需保持为 yes,详见下文保存并重启 SSH 服务:
systemctl restart ssh⚠️ 警告: 在重启服务前,请务必保持当前的 SSH 连接不要断开,并开启另一个终端窗口测试是否仍能通过密钥登录。否则一旦配置错误且无法密码登录,你将被锁在服务器之外!
三、 启用双因子认证 (2FA):双重保险
如果你觉得“密钥”还不够保险,可以再加一把锁:手机验证码。即使密钥被盗(虽然概率极低),没有你手机上的 Google Authenticator 动态验证码,攻击者依然进不去。
1. 安装 Google Authenticator 模块
apt install libpam-google-authenticator -y2. 初始化配置
在终端输入:
google-authenticator你会看到一个巨大的二维码。用手机上的 Google Authenticator 扫描它,并务必保存好那几个紧急恢复代码(Emergency Scratch Codes)。
3. 配置 PAM 模块
nano /etc/pam.d/sshd在文件顶部添加:
auth required pam_google_authenticator.so4. 修改 SSH 配置以支持 2FA
nano /etc/ssh/sshd_config修改或确认以下项:
KbdInteractiveAuthentication yes
AuthenticationMethods publickey,keyboard-interactive这表示登录时需要“公钥”+“键盘交互(验证码)”双重验证。
四、 UFW 防火墙最佳实践:只开必要的窗
很多新手安装完 VPS 后不开启防火墙,或者开启后全端口放行。这非常危险。
1. 初始化 UFW
# 默认拒绝所有入站,允许所有出站
ufw default deny incoming
ufw default allow outgoing
# 允许必要的端口(以 SSH 22, HTTP 80, HTTPS 443 为例)
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
# 开启防火墙
ufw enable2. 进阶:限制 SSH 访问频率
即使没有 Fail2ban,UFW 也能实现基础的限流:
ufw limit 22/tcp这会在 IP 尝试连接频率过高时自动封锁一段时间。
五、 定期自动更新:修补未知的洞
安全不是一次性的工作。Linux 内核和软件漏洞随时可能出现。
安装无人值守更新 (Unattended-Upgrades)
apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades这会让你的 Debian/Ubuntu 系统每天自动安装安全补丁,确保即使你没时间登录服务器,它也能自我修复。
🛡️ 总结:你的安全清单
为了达到极致的 VPS 安全,请检查你是否完成了以下动作:
安全是一个动态的过程。定期查看日志,保持软件更新,才是真正的长治久安。
延伸阅读
免责声明
本文仅供技术交流和学习参考。涉及第三方服务的链接可能包含 sponsored 标记,请自行核实服务条款、价格和可用性,并遵守当地法律法规。