1. 选择加拿大区域与云提供商
- 说明:优先选加拿大区域以降低延迟(AWS ca-central-1,GCP northamerica-northeast1(蒙特利尔),Azure Canada Central/Canada East,或DigitalOcean Toronto)。
- 小步骤:1) 登录平台控制台;2) 创建项目/订阅;3) 在创建VM时选择加拿大可用区;4) 确认计费方式与镜像(建议选择Ubuntu LTS或CentOS最新稳定版)。
2. 生成并上传SSH密钥
- 说明:使用公钥登录是基础安全操作。
- 小步骤:在本地生成密钥:ssh-keygen -t ed25519 -C "you@example.com",或 rsa: ssh-keygen -t rsa -b 4096。上传公钥到控制台或使用 ssh-copy-id user@IP。
3. 创建实例与规格选择
- 说明:根据应用选择CPU/内存/磁盘,建议磁盘使用SSD并启用加密。
- 小步骤:1) 选择镜像(如 Ubuntu 22.04 LTS);2) 选择大小(t2/micro -> dev,m5/standard -> prod);3) 勾选“自动分配公有IP”或后续申请弹性IP;4) 添加标签以便管理。
4. 网络与安全组(防火墙)基础配置
- 说明:先在云端限制端口,然后在主机上再做本地防火墙。
- 小步骤:1) 在控制台创建VPC子网、Security Group或Firewall规则;2) 允许仅必要端口(22/80/443 或自定义SSH端口);3) 创建管理IP白名单(可按需要只允许办公IP)。
5. 首次登录与系统初始化
- 说明:首次SSH登录后立即做基础更新与用户管理。
- 小步骤:1) ssh ubuntu@your_ip;2) sudo apt update && sudo apt upgrade -y;3) 创建管理用户:sudo adduser deploy && sudo usermod -aG sudo deploy;4) 将公钥复制到新用户:sudo mkdir /home/deploy/.ssh && sudo chmod 700 ...。
6. SSH安全加固
- 说明:关闭密码登录、禁用root,用密钥并可更换端口。
- 小步骤:1) 编辑 /etc/ssh/sshd_config:PermitRootLogin no;PasswordAuthentication no;Port 22(或改为2222);2) 重启ssh服务:sudo systemctl restart sshd;3) 在改端口前先保持一会儿已有会话以便回滚。
7. 本地防火墙(UFW)与端口管理
- 说明:UFW(Ubuntu)简单且易用,生产环境也可用nftables/iptables。
- 小步骤:1) sudo apt install ufw -y;2) sudo ufw allow OpenSSH 或 sudo ufw allow 2222/tcp;3) sudo ufw allow 80/tcp;sudo ufw allow 443/tcp;4) sudo ufw enable;5) sudo ufw status verbose。
8. 安装Fail2Ban与防暴力破解
- 说明:阻止重复失败的登录尝试。
- 小步骤:1) sudo apt install fail2ban -y;2) 复制配置:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local;3) 在 jail.local 中启用 sshd 并设置 bantime/maxretry;4) sudo systemctl restart fail2ban。
9. 自动更新与包安全
- 说明:启用 unattended-upgrades 来自动安装安全补丁。
- 小步骤:1) sudo apt install unattended-upgrades -y;2) sudo dpkg-reconfigure --priority=low unattended-upgrades;3) 检查 /etc/apt/apt.conf.d/50unattended-upgrades 配置并启用邮件通知(可选)。
10. TLS/证书与HTTPS(Let's Encrypt)
- 说明:为网站或API配置自动续期的免费证书。
- 小步骤:1) sudo snap install core; sudo snap refresh core;sudo snap install --classic certbot;2) sudo certbot certonly --standalone -d example.com 或使用 --nginx;3) 设置 cron 或 systemd timers 验证续期:certbot renew --dry-run。
11. 备份、快照与异地容灾
- 说明:结合云快照与对象存储做定期备份。
- 小步骤:1) 在控制台启用自动快照/备份计划;2) 将重要数据同步到对象存储(S3/GCS/Azure Blob),使用 rclone 或 aws-cli:aws s3 cp /data s3://bucket --recursive;3) 测试恢复流程并记录RTO/RPO。
12. 日志、监控与告警
- 说明:启用主机级监控和集中日志。
- 小步骤:1) 安装云监控代理(CloudWatch/Stackdriver/Azure Monitor);2) 配置Filebeat/Fluentd发送syslog到ELK/Cloud logging;3) 设置CPU/磁盘/内存阈值告警并配置通知渠道(邮件/Slack/PagerDuty)。
13. 权限、加密与密钥管理
- 说明:最小权限与加密是数据安全基石。
- 小步骤:1) 使用云IAM细分权限,禁止用root账户日常操作;2) 启用磁盘加密(KMS);3) 将敏感密钥存入云密钥管理或Vault,不把秘密写入代码库。
14. 运维自动化与基础镜像
- 说明:用脚本与镜像缩短部署时间并减少人为差错。
- 小步骤:1) 使用 cloud-init 或 Terraform/Ansible 编排实例创建与配置;2) 制作成品镜像(含补丁与基础软件),便于快速扩容;3) 将配置托管在版本控制(Git)。
15. 常见问答 1 — 问:如何安全地更改SSH端口而不被锁定?
- 问:我想换SSH端口,怎样操作最安全?
- 答:先在sshd_config中新增Port 新端口但保留原Port不删除;在防火墙(云端安全组+本机UFW)开放新端口;在另一个终端测试新端口的登录:ssh -p 新端口 user@ip;确认无误后删除旧端口并重启sshd。
16. 常见问答 2 — 问:如何快速恢复被破坏的服务器?
- 问:若服务器被攻破或损坏,有没有快速恢复流程?
- 答:保持最新快照与配置管理;恢复步骤:1) 在控制台用最近快照创建新实例;2) 关联原有IP或新分配IP并更新DNS;3) 拉取备份的数据库/文件到新机并校验;4) 强制更换所有凭证并审计日志。
17. 常见问答 3 — 问:如何在加拿大区域降低合规与数据主权风险?
- 问:我担心数据跨境问题,有哪些建议?
- 答:在创建资源时选择加拿大区域并启用区域性存储(如将S3桶设置为加拿大区域或使用本地对象存储);审查云提供商的数据处理协议并启用加密;必要时使用客户管理密钥(CMK)与日志保留策略以满足合规要求。
来源:从部署到运维加拿大云服务器快速上手指南与安全加固步骤