工具官方入口:OpenSSH(openssh.com)|fail2ban(GitHub)|UFW 为 Ubuntu 官方仓库自带(apt install ufw)
昨天写完新 VPS 四步实测教程,有读者问:测完之后呢?答案是加固。一台裸奔的 VPS 挂上公网,SSH 端口 22 平均几分钟就会开始被扫描爆破,日志里全是各国 IP 在试密码。主机评测网实测用的每台机器都做这三步,十分钟的事,做完安心睡觉。
第一步:SSH 换密钥登录,禁掉密码
密码再复杂也扛不住字典爆破,密钥直接让爆破失去意义。本机生成密钥对(一路回车,或加口令更稳):
ssh-keygen -t ed25519
把公钥推到服务器:
ssh-copy-id root@服务器IP
推完先开个新终端测试密钥能登录(别关现有窗口),再改配置 /etc/ssh/sshd_config:
PasswordAuthentication no
PermitRootLogin prohibit-password
Port 22222
然后 systemctl restart sshd。端口顺手从 22 改成一个五位数,扫描器瞬间少 90%。改端口的坑见第二步——顺序错了会把自己锁在门外。
第二步:UFW 防火墙,只放行你要的口
Ubuntu 系直接用自带的 UFW。先放行新 SSH 端口再开防火墙,这个顺序是保命的:
ufw allow 22222/tcp
ufw allow 80,443/tcp
ufw default deny incoming
ufw enable
跑网站的放 80/443,其他端口按需加。开了 default deny incoming 之后,没放行的口全部对公网关闭,端口扫描直接抓瞎。CentOS 系用 firewalld,思路一样:先 add-port 再 reload。
第三步:fail2ban 自动封爆破 IP
防火墙管端口,fail2ban 管「谁在反复试密码」。安装并启动:
apt install fail2ban
systemctl enable --now fail2ban
新建规则 /etc/fail2ban/jail.local(端口记得和第一步改的一致):
[sshd]
enabled = true
port = 22222
maxretry = 5
bantime = 1h
systemctl restart fail2ban 生效。之后 fail2ban-client status sshd 随时能看到已经封了多少个不怕死的 IP。5 次失败封 1 小时是温和起点,激进点可以封一天。
收尾:快照兜底,别裸奔更新
三步做完,再拍一张快照当后悔药——选商家时就该把这个算进成本,比如 CloudCone 免费快照+自动备份就是同价位里少见的厚道配置。另外 SSH 端口、防火墙、fail2ban 三件事都建议在机器刚开出来、还没跑业务时做,线上老机器改动前务必先拍快照——顺序错了锁死自己,就只能靠商家控制台救场了。
一句话总结:密钥登录堵住爆破、防火墙收窄入口、fail2ban 自动反击,三件事各管一段,缺一不可。机器怎么选看独立服务器和 VPS 的区别,买回来先测(6732)再加固,这套流程走完,你的小鸡就比八成裸奔的机器安全了。












-300x200.jpg)

暂无评论内容