18 10 月 2026

服务器被黑,90% 不是黑客技术强,是登录入口没设防——root 密码是生日、22 端口裸奔、多台机器同一个密码。这篇给出一套从密码到双因素的登录加固方案,把「进门」这条最脆弱的路守死。

本文基于 财富云计算 NAT 型云服务器(无独立公网 IP、价格比独立 IP 机型省一半以上)的运维实践。方案对 Linux/Windows 均适用,按成本从低到高排列,建议全做。

一、威胁模型:你的机器每天在被敲门

机器上线的第一小时,扫描器就开始工作。看一组真实日志(任何公网机器都跑不掉):

# 看暴力破解尝试(安装后的第一周)
sudo grep "Failed password" /var/log/auth.log | wc -l
# 几百到几千条——这就是你的机器的日常

攻击者的流水线:全网扫描 22 端口 → 尝试常见密码字典 → 命中即进。你的密码在「常见字典」里吗? admin123、root123、123456、机器 IP、域名拼音——全在字典里。

加固目标:让「进门」这件事的成本高到攻击者放弃。


二、第一层:密码卫生(零成本)

密码三原则

  1. 长度 > 复杂度:Xk9$mQ2vLp#Wz 不如 cheng-xu-yuan-de-xiao-hei-wu(20 位无规律短语)。暴力破解怕长度,不怕大小写。
  2. 一机一密码:多台机器同一个密码 = 一黑全黑。用密码管理器(Bitwarden/KeePass)生成保存。
  3. 不复用:服务器密码和你的邮箱、QQ、Steam 密码绝对不能一样——撞库攻击专挑这个。
# 立即修改 root 密码(如果还没改)
passwd root
# 改一个 20 位以上的随机串,存进密码管理器

三、第二层:SSH 密钥登录(核心一步)

密码登录是最大的单点,密钥登录直接把它关掉:

# 1. 本地生成密钥对(在你的电脑上执行,不要传私钥到服务器)
ssh-keygen -t ed25519 -C "my-server"
# 一路回车,私钥留在本地 ~/.ssh/id_ed25519

# 2. 把公钥上传到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@你的服务器IP

# 3. 服务器上关闭密码登录
sudo nano /etc/ssh/sshd_config
# 改这三行:
# PasswordAuthentication no
# PubkeyAuthentication yes
# PermitRootLogin prohibit-password   (或按需 yes)

sudo systemctl restart sshd

完整教程见SSH 密钥登录与账号安全配置。关键顺序:先确认密钥能登录,再关密码登录——顺序反了会把自己锁在门外。


四、第三层:改端口 + 防火墙(把门藏起来)

22 端口每秒被扫,改掉它,噪音直接少 90%:

# sshd_config 里改端口
Port 2xxxx        # 选一个 10000-60000 的高位端口
# 防火墙只放行新端口 + 业务端口
sudo ufw default deny incoming
sudo ufw allow 2xxxx/tcp        # 你的 SSH 新端口
sudo ufw allow 20001/udp        # 游戏端口
sudo ufw allow 20080/tcp        # 网站
sudo ufw enable

防火墙配置见Linux 防火墙配置:ufw 与 firewalld,云平台侧再叠一层安全组——本地防火墙 + 云安全组是双保险,攻击者要过两关。


五、第四层:fail2ban 自动封禁(自动守门员)

总有人不死心,fail2ban 让他们付出代价:

sudo apt install fail2ban
# 编辑 /etc/fail2ban/jail.local:
# [sshd]
# enabled = true
# port = 2xxxx          # 你的 SSH 端口
# maxretry = 3          # 错 3 次就封
# bantime = 86400       # 封 24 小时
# findtime = 600

sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd   # 看封禁名单

配置细节见fail2ban 防暴力破解实战。三层防御叠下来:密码长 + 密钥登录 + 高位端口 + fail2ban,暴力破解的成功率趋近于零。


六、第五层:双因素认证(2FA)

对「 Root 权限 + 重要存档」的机器,上 2FA——即使密码泄露,没有动态码也进不来:

# Google Authenticator PAM 模块
sudo apt install libpam-google-authenticator
google-authenticator   # 按提示操作,保存密钥和应急码

应急恢复码(scratch codes)打印或存密码管理器——手机丢了靠它进门。

更进一步的方案见SSH 安全加固进阶:跳板机 + 密钥 + 2FA 组合,适合管理多台机器的人。


七、Windows 服务器的对等方案

Windows 机器同理,四步走:

  1. 改 Administrator 密码为 20 位随机串。
  2. 关闭 Administrator 默认账户,新建一个普通管理员账户日常使用。
  3. RDP 端口改高位 + 安全组只放行你的 IP(远程连接方式)。
  4. 开账户锁定策略:5 次失败锁定 30 分钟(本地安全策略 → 账户策略)。
  5. 网络级别认证(NLA)开启,RDP 属性里勾选。

八、账号安全的日常纪律

技术措施之外,三个习惯:

  1. 不点来路不明的链接/附件——钓鱼是当前最大的账号威胁,识别方法见钓鱼邮件与社会工程防范。
  2. 商家后台账户也上强密码 + 2FA——很多人服务器守死了,商家控制台密码是 123456,一锅端。
  3. Steam/RCON 密码单独管理——游戏相关的密钥有专门的泄露路径,见Steam API Key 与 RCON 密码安全。

九、加固清单速查

#措施优先级耗时
120 位随机密码,一机一密必须2 分钟
2SSH 密钥登录 + 关密码登录必须10 分钟
3SSH 端口改高位 + 防火墙必须5 分钟
4fail2ban 自动封禁必须5 分钟
5云安全组最小化必须5 分钟
62FA(重要机器)推荐10 分钟
7商家后台 2FA推荐3 分钟
8定期审计登录日志推荐持续

半天时间,把 8 项全部做完,你的机器登录安全超过 90% 的个人服务器。


结语

服务器账号安全的本质是提高攻击者的成本:密码要猜很久、端口找不到、试错要等、动态码没有——四道坎任何一道都能劝退绝大多数扫描攻击。这些措施全部免费、全部一小时能做完,区别只在「做没做」。

登录加固是第一步,被入侵后的响应见服务器被入侵应急排查,安全基线全清单见服务器安全基线检查清单。

财富云计算 专注 NAT 型云服务器,无独立公网 IP、价格比独立 IP 机型省一半以上,控制台支持 2FA 与 IP 白名单,配合本站安全教程,从登录到业务层层设防。

延伸阅读
  1. 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
  2. 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
  3. 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
  4. 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
  5. 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
  6. RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
  7. 短链接服务搭建:Shlink 自托管,链接数据自己掌握
  8. 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道
更多阅读
  1. 上一篇:个人网站最省方案:一台 NAT 型服务器搞定博客、导航和展示页
  2. 下一篇:Steam API Key 与 RCON 密码安全:游戏服最常泄露的两把钥匙
发表评论 4