阿里云轻量 2核2G 38元/年起 · 新客秒杀限量 去看看

云服务器安全防护实战:从零搭建安全策略

WeHosts技术团队·2026年3月24日

快速结论

云服务器安全的3个阶段:

  1. 基础防护(必做):安全组配置、SSH加固、密码管理 - 防止99%的通用攻击
  2. 应用加固(推荐):WAF、DDoS防护、日志监控 - 防止针对性攻击
  3. 高级防御(可选):入侵检测、容器隔离、零信任架构 - 企业级需求(容器安全与编排基础见容器技术指南)

本指南重点讲前两个阶段,帮你快速构建安全的生产环境。


第一层:网络层安全(防火墙)

安全组配置(必做)

安全组相当于云服务器的防火墙,默认拒绝所有入站流量,只允许你显式开放的端口。

最小化开放原则:只开放业务必需的端口。

推荐配置

入站规则:
┌─────────────┬──────────┬──────────────────┬──────────┐
│ 协议        │ 端口     │ 来源             │ 描述     │
├─────────────┼──────────┼──────────────────┼──────────┤
│ HTTP        │ 80       │ 0.0.0.0/0        │ 公网访问 │
│ HTTPS       │ 443      │ 0.0.0.0/0        │ 公网访问 │
│ SSH         │ 22       │ 你的办公IP/VPN   │ 管理员   │
│ (可选)MySQL │ 3306     │ 特定IP范围       │ 应用服务 │
└─────────────┴──────────┴──────────────────┴──────────┘

出站规则:
允许所有出站(服务器需要下载依赖、发送数据等)

风险案例:

❌ 错误的SSH配置:
SSH 22 端口允许 0.0.0.0/0(全网访问)
结果:每天收到数千次暴力破解尝试

✅ 正确的SSH配置:
SSH 22 端口仅允许 203.0.113.0/24(你的办公网段)
结果:黑客根本连不上

密钥登录、authorized_keys 权限与关闭密码登录的具体命令见Linux 运维命令速查。

配置步骤(以阿里云为例)

  1. 进入ECS实例详情
  2. 点击"安全组"
  3. 编入站规则
  4. 只保留必要的端口(HTTP/HTTPS/SSH)
  5. 删除其他不必要的规则

修改SSH默认端口(可选但推荐)

SSH默认端口22是攻击的重点目标。修改端口能减少噪音干扰。

# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config

# 找到 Port 22 这一行,改为
Port 2222  # 改为不常见的端口号

# 重启SSH服务
sudo systemctl restart sshd

# 注意:还需在安全组中开放新端口 2222

需要记住新端口号:以后连接时使用

ssh -p 2222 user@server_ip

第二层:身份认证安全

SSH密钥认证(必做)

相比密码认证,密钥认证安全性高1000倍,且无法暴力破解。

生成和配置密钥对

在本地机器上生成(不在服务器上):

# 生成密钥对
ssh-keygen -t rsa -b 4096 -f ~/.ssh/my-server-key

# 输出两个文件:
# ~/.ssh/my-server-key       (私钥,绝对保密)
# ~/.ssh/my-server-key.pub   (公钥,放在服务器上)

上传公钥到服务器:

# 方法1:使用ssh-copy-id(推荐)
ssh-copy-id -i ~/.ssh/my-server-key.pub user@server_ip

# 方法2:手动上传
scp ~/.ssh/my-server-key.pub user@server_ip:~/
ssh user@server_ip
mkdir -p ~/.ssh
cat ~/my-server-key.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

禁用密码认证(仅在确认密钥认证成功后):

# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config

# 修改以下行
PasswordAuthentication no
PubkeyAuthentication yes

# 重启SSH
sudo systemctl restart sshd

风险:如果禁用密码认证后丢失私钥,将无法连接服务器。建议先测试成功再禁用。

禁用root登录(推荐)

root账户是黑客的优先目标,禁用root直接登录能大幅降低风险。

# 编辑SSH配置
sudo nano /etc/ssh/sshd_config

# 修改为
PermitRootLogin no

# 重启SSH
sudo systemctl restart sshd

操作方式:

# 登录普通用户
ssh user@server_ip

# 需要root权限时使用sudo
sudo systemctl restart nginx

# 或切换到root
sudo su -

设置强密码策略

即使禁用密码认证,某些场景仍需要密码(如登录Linux用户账户)。

# 安装password-quality工具
sudo apt-get install libpam-pwquality

# 编辑密码策略文件
sudo nano /etc/security/pwquality.conf

# 添加以下规则
minlen = 14              # 最小长度14字符
dcredit = -1             # 至少包含1个数字
ucredit = -1             # 至少包含1个大写字母
lcredit = -1             # 至少包含1个小写字母
ocredit = -1             # 至少包含1个特殊字符

第三层:应用层安全

定期更新系统和软件(必做)

大多数安全漏洞已有补丁。定期更新能关闭99%的已知漏洞。

# Ubuntu/Debian系统
sudo apt-get update
sudo apt-get upgrade

# CentOS/RHEL系统
sudo yum update

# 推荐设置自动更新
sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

建议:每周更新一次,或启用自动更新。

Web应用防火墙(WAF)

WAF保护Web应用免受SQL注入、XSS、DDoS等攻击。

使用云服务商的WAF(推荐)

阿里云WAF:

价格:199元/月起
功能:防SQL注入、防XSS、防DDoS、IP黑名单等

腾讯云WAF:

价格:99元/月起
功能:与阿里云相近

配置步骤:

  1. 在云服务商的WAF控制台添加域名
  2. 修改域名的DNS指向WAF的CNAME
  3. WAF自动检测并阻止恶意请求

开源WAF(成本低)

如果不想付费,可在服务器上部署开源WAF。

# 安装ModSecurity(Nginx下的WAF)
sudo apt-get install libnginx-mod-http-modsecurity

# 启用模块
sudo nano /etc/nginx/nginx.conf
# 添加
modsecurity on;

# 重启Nginx
sudo systemctl restart nginx

防DDoS攻击

DDoS是网络层攻击,防护需要在网络边界。

小规模防护(阿里云/腾讯云包含):

  • 基础防护:5Gbps流量清洗
  • 检测和自动防御

大规模防护(需额外购买):

  • 按防护容量付费(10Gbps起,约1000元/月)
  • 专业DDoS防护团队

应对DDoS的策略:

1. 基础防护充足:大多数网站根本不会被DDoS
2. 遭遇DDoS时:
   - 启用云厂商的DDoS防护
   - 切换到更大容量的DDoS防护方案
   - 增加带宽临时缓解
3. 长期对策:
   - 使用CDN(如Cloudflare)
   - 配置负载均衡器

第四层:监控与日志

启用系统日志监控

日志帮助你检测异常活动和调查安全事件。

# 启用审计日志
sudo apt-get install auditd

# 记录所有文件修改
sudo auditctl -w /etc -p wa -k system-changes

# 查看日志
sudo ausearch -k system-changes

# 查看登录日志
sudo grep "sshd" /var/log/auth.log | tail -20

# 查看执行的命令
sudo journalctl -u sshd

配置云服务商的安全监控

阿里云和腾讯云提供免费的基础安全监控。

阿里云云安全中心:

功能:
- 检测恶意登录(来自异常地区的登录尝试)
- 发现web漏洞
- 检测异常账户活动
- 提供修复建议

启用方式:在控制台启用即可,免费版功能够用

定期审计和日志分析

# 检查是否有未授权的用户
cat /etc/passwd

# 检查是否有异常的定时任务
crontab -l

# 检查监听的端口(只应有HTTP/HTTPS/SSH)
sudo netstat -tulpn
sudo ss -tulpn  # 更现代的命令

# 检查最近登录的用户
last | head -20

# 检查失败的登录尝试
sudo grep "Failed password" /var/log/auth.log | wc -l

第五层:数据备份与恢复

安全的关键部分:防护再好也可能被突破,备份能让你快速恢复。

数据备份策略

3-2-1备份原则:

3份副本(原始 + 2份备份)
2种不同的存储介质(云 + 本地)
1份副本在异地(防止数据中心故障)

推荐方案

定期快照(每天一次):

# 阿里云快照自动执行
1. 进入ECS实例
2. 选择"快照"
3. 创建自动快照策略(每天凌晨2点)
4. 保留7天快照

数据库备份:

# MySQL定期备份脚本
#!/bin/bash
mysql -u root -p'password' --all-databases > /backup/mysql-$(date +%Y%m%d).sql
# 上传到云存储(OSS/OBS)

文件备份:

# 使用rsync定期同步到云存储
rsync -avz /var/www/html/ \
  username@remote-server:/backups/

# 或上传到对象存储
aws s3 sync /var/www/html/ s3://my-backup/

测试恢复过程

重要:定期测试备份是否可恢复(很多人备份了但恢复时发现失败)。

# 每月进行一次恢复测试
1. 创建临时测试实例
2. 从最新备份恢复数据
3. 验证数据完整性和应用可用性
4. 记录恢复所需时间

安全检查清单

部署新服务器时使用此清单:

  • [ ] 安全组仅开放必需端口(80、443、SSH)
  • [ ] SSH改用非22端口
  • [ ] 禁用SSH密码认证,仅允许密钥
  • [ ] 禁用root直接登录
  • [ ] 安装系统补丁(apt-get update && upgrade)
  • [ ] 禁用不必要的服务
  • [ ] 安装并启用防火墙(ufw或firewalld)
  • [ ] 配置WAF(云服务商或ModSecurity)
  • [ ] 启用日志监控和定期审计
  • [ ] 配置自动快照(每天)
  • [ ] 测试备份恢复过程
  • [ ] 配置告警(异常登录、高流量等)

常见问题

Q: 被暴力破解SSH怎么办?

A: 采取措施:

  1. 立即:改SSH端口或禁用密码登录
  2. 查看日志:grep Failed /var/log/auth.log
  3. 加入防护:使用fail2ban工具
sudo apt-get install fail2ban
# 配置:3次失败后锁定IP 10分钟

Q: 数据被黑客删除了怎么办?

A: 这是最坏的情况,但有恢复方法:

  1. 停止所有写入:防止新数据覆盖旧数据
  2. 恢复快照:在阿里云/腾讯云控制台选择最新的快照
  3. 验证数据:确保恢复的数据完整且未被污染

这就是定期备份的重要性。

Q: 怎样判断是否被黑客入侵?

A: 观察以下迹象:

  • CPU/内存异常占用
  • 网络流量陡增
  • 日志中有异常的登录IP
  • 出现不认识的用户账户
  • 文件被修改(通过stat命令检查)

Q: 云服务器安全需要这么复杂吗?

A: 不需要。按优先级:

  1. 必做:安全组 + SSH密钥 + 定期更新
  2. 强烈推荐:定期备份 + 日志监控
  3. 可选:WAF + DDoS防护(根据业务重要性)

99%的网站只需要做前两项就很安全了。


WeHosts推荐方案

个人网站:安全组(仅开80/443) + SSH密钥 + 自动快照,完全免费且充分安全。

中小企业:基础安全 + 云厂商免费防护中心 + WAF(199元/月),总成本约200-300元/月。

关键业务:加强版防护 + DDoS防护(1000元/月以上) + 专业安全咨询,需要根据业务规模定制。


阿里云安全方案 | 腾讯云安全服务 | 华为云安全防护

更新时间:2026年3月24日。云安全威胁持续演变,建议定期关注云服务商的安全公告。

本文可能含联盟推广链接,购买不增加你的价格,详见联盟披露。

文中提到的云平台当前活动价

文中价格均来自各平台公开活动页。想直接对比在售机型,可以先看下面这些:价格核实日期与台账一致,以活动页为准。