1. 精华:先用SSH密钥替代密码,禁用root远程登录。
2. 精华:用防火墙、更换端口、安装fail2ban做第一道防线。
3. 精华:用Let's Encrypt部署TLS证书,必要时启用OpenSSH证书签发。
作为一名有多年云运维与安全落地经验的作者,我把复杂的步骤拆成小白也能理解的操作流。本文强调香港云服务器的常见威胁与可验证的防护手段,帮助你把服务器从“开箱即死”变成“安全可控”。
第一步:准备工作。登录你的云控制台,创建一台实例并记录公网IP。推荐在本地先生成一对SSH密钥(公钥+私钥):ssh-keygen -t ed25519 -C "your_email",不要设置弱口令。把生成的公钥(~/.ssh/id_ed25519.pub)复制到云控制台或通过scp传到服务器的~/.ssh/authorized_keys。
第二步:创建非root用户并授权。以root或控制台临时登录后,执行:adduser user,然后创建.ssh目录并把公钥放入authorized_keys,设置权限(700/600)。将该用户加入sudoers(visudo),以便后续管理。这样可以减少直接用root登录的风险。
第三步:禁用密码登录与root SSH。编辑/etc/ssh/sshd_config,将PasswordAuthentication no、PermitRootLogin no、保留或调整Port(例如改成22022)并重启ssh服务:systemctl restart sshd。修改端口能降低自动扫描命中率,但不是万灵药,配合防火墙更有效。
第四步:配置防火墙。Debian/Ubuntu推荐使用ufw:先允许新端口与HTTP/HTTPS:ufw allow 22022/tcp、ufw allow 80/tcp、ufw allow 443/tcp,然后启用ufw enable。如果是CentOS,可用firewalld或iptables。记得先在一条SSH会话中测试规则,确保不会把自己锁死。
第五步:安装并配置fail2ban。防止暴力破解,执行:apt install fail2ban,创建本地配置文件覆盖默认设置(/etc/fail2ban/jail.local),对sshd设置较短的bantime和较低的maxretry,例如bantime = 3600、maxretry = 3。这样对扫描与暴力破解有显著抑制效果。
第六步:增强SSH安全性(可选但推荐)。启用SSH两步验证(Google Authenticator PAM模块),使用AllowUsers限制可登录的用户名,启用UseDNS no提升登录速度和可靠性。进阶用户可以配置OpenSSH Certificate:用CA签发短期证书,集中管理信任,提高密钥撤销与轮换效率。
第七步:部署TLS/SSL证书保护Web服务。使用Let's Encrypt免费证书并自动续期:安装certbot并运行certbot --nginx或certbot --apache,证书会自动放在/etc/letsencrypt。把HTTP强制跳转到HTTPS,启用现代TLS配置(仅启用TLS1.2/1.3,关闭旧版加密套件),并测试SSL Labs评分以确保配置合格。
第八步:密钥与证书管理策略。确保私钥永远不在公共仓库中,使用硬件安全模块(HSM)或加密存储对生产密钥加锁。定期轮换密钥与证书(例如每6-12个月),并在人员离职或密钥泄露时立即撤销相关证书或替换公钥。
第九步:监控与日志审计。启用系统日志(rsyslog/journald)并集中收集到日志服务器或云监控平台。监控异常登录、频繁失败的IP并配合黑名单策略。设置告警(登录失败次数、CPU/内存异常、磁盘空间)保证安全事件能被及时响应。
第十步:备份与恢复演练。不仅要做备份,还要定期演练恢复流程。包括SSH私钥备份(离线或加密存储)、应用配置与证书(/etc/letsencrypt)的备份。演练能发现权限错误或自动化脚本中的bug,提升生产环境恢复速度。
结语:保护香港云服务器的关键在于“分层防御+自动化运维”。从密钥认证、禁用密码、端口调整、防火墙、fail2ban到Let's Encrypt证书与监控告警,形成可重复的部署模版。作为经验贴,建议你先在测试环境完整跑通所有步骤,再在生产上逐步切换,留出回滚窗口。
如果需要,我可以基于你的操作系统(Ubuntu/CentOS)生成一份可复制粘贴的脚本和校验清单,帮助你一步步把服务器打造成坚固的堡垒。要不要我现在为你定制一份脚本?
