VPS 一上线就是公网 IP,扫描器和暴力破解脚本分分钟就到。不夸张,新机器开机几小时就能在 auth.log 里看到一堆失败登录。下面这几步不复杂,但做和不做差别很大。
换掉 SSH 默认端口
22 端口是所有扫描器的第一个目标。改到别的端口,能挡掉绝大多数无差别扫描。
编辑 /etc/ssh/sshd_config:
Port 2222
PermitRootLogin no
PasswordAuthentication no
改完重启:systemctl restart sshd
注意先确认新端口能连上再断开当前会话,不然就把自己锁外面了。
防火墙只开需要的端口
UFW 配置很简单:
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
原则就是默认拒绝入站,只放行你确实在用的服务。
装 Fail2Ban,自动封 IP
有人反复试密码?让 Fail2Ban 自动把它封了。
apt install fail2ban -y
systemctl enable fail2ban
systemctl start fail2ban
/etc/fail2ban/jail.local 里调一下:
[sshd]
enabled = true
maxretry = 3
bantime = 3600
试错 3 次,封一小时。简单粗暴但有效。
自动安全更新
手动 apt upgrade 你肯定会忘,自动更新省心:
apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades
它只装安全补丁,不会乱升大版本,还算靠谱。
用密钥登录,关掉密码
密码登录迟早被试出来,密钥登录才是正经方案。
ssh-keygen -t ed25519 -C "your_email@example.com"
ssh-copy-id -p 2222 user@your-vps-ip
公钥传到服务器后,把 sshd_config 里的 PasswordAuthentication 设成 no,密码登录就彻底关了。
加个 2FA
密钥加 2FA,双保险。Google Authenticator 的 PAM 模块可以直接装:
apt install libpam-google-authenticator -y
google-authenticator
然后在 /etc/pam.d/sshd 加一行:
auth required pam_google_authenticator.so这步看你需求,有些人觉得密钥已经够了,加不加随你。
看看谁在登你的机器
偶尔翻翻日志,看有没有奇怪的登录:
last -a | head -20
journalctl -u ssh -n 50
如果看到不认识的 IP 成功登录了,赶紧改密钥、查后门。
备份,备份,备份
安全做得再好也不能保证万无一失。定期把数据同步到别的地方:
rsync -avz /var/www/ backup-server:/backups/www/
写个 cron 每天跑一次,出事了至少数据还在。
以上几步花不了多少时间,但能拦住绝大部分低级攻击。做完之后偶尔看看日志就行,不用天天盯着。
评论
暂无评论