云服务器安全防护需要从网络边界、系统内核、应用层和数据安全等多维度构建防御体系。

一、网络边界防护:构建第一道安全屏障

网络层防护是抵御外部攻击的首要环节,核心在于精准控制流量进出抵御 DDoS 攻击

1. 云厂商安全组 / 防火墙配置

主流云厂商(阿里云、腾讯云、天翼云、特网云)均提供安全组功能,建议按以下规则配置:

  • 默认拒绝原则:仅开放业务必需端口(如 Web 服务的 80/443 端口、SSH 的 22 端口),关闭所有未使用端口
  • 精细化授权:限制访问源 IP,例如仅允许公司办公网段访问 SSH 端口。以阿里云为例,在安全组规则中设置 "授权对象" 为指定 IP 段(如 192.168.1.0/24)
  • 端口隐藏技巧:将 SSH 默认 22 端口修改为非标准端口(如 2222),并在安全组同步更新规则,降低暴力破解概率
2. DDoS 防护配置

根据业务规模选择防护方案:

  • 基础防护(免费):启用云厂商默认的 DDoS 基础防护,合理设置流量清洗阈值。阈值应略高于业务峰值流量(如日常流量 100Mbps 时,可设置 120Mbps 阈值)
  • 阈值调整策略
    • 业务高峰期(如促销活动)适当调高阈值,避免误清洗
    • 安全敏感业务(如金融系统)可降低阈值,提高攻击检测灵敏度
  • 高级防护(付费):大流量业务建议购买企业级 DDoS 高防服务,通过高防 IP 转发流量,隐藏真实服务器 IP

二、系统层防护:加固服务器内核安全

系统层防护重点在于减少攻击面提升入侵检测能力

1. Linux 系统基础加固
  • 账号安全
    • 禁用 root 账号直接登录,创建普通用户并配置 sudo 权限
    • 设置密码复杂度要求(至少 8 位,包含大小写字母、数字和特殊符号),定期 90 天更换
  • SSH 安全配置(修改 /etc/ssh/sshd_config):

    bash

    PermitRootLogin no  # 禁止root登录
    PasswordAuthentication no  # 禁用密码登录,仅允许密钥登录
    Port 2222  # 修改默认端口
    
  • 自动更新安全补丁

    bash

    # CentOS系统
    yum install -y yum-cron
    systemctl enable --now yum-cron
    
    # Ubuntu系统
    apt install -y unattended-upgrades
    dpkg-reconfigure -plow unattended-upgrades
    
2. 防火墙规则优化(iptables)

在云安全组基础上,配置系统级防火墙双重防护:

  • 基础规则模板

    bash

    # 清除旧规则
    iptables -F
    # 默认拒绝所有入站流量
    iptables -P INPUT DROP
    # 允许已建立的连接
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    # 开放80/443端口
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    # 仅允许指定IP访问2222端口
    iptables -A INPUT -p tcp --dport 2222 -s 192.168.1.0/24 -j ACCEPT
    
  • 防 DoS 攻击规则:限制单 IP 访问频率

    bash

    iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
    
    上述规则限制每分钟最多 25 个新连接,突发上限 100 个
3. 入侵检测工具部署

安装 fail2ban 监控暴力破解行为:

bash

# 安装fail2ban
yum install -y fail2ban
# 配置SSH防护(/etc/fail2ban/jail.local)
[sshd]
enabled = true
filter = sshd
action = iptables[name=SSH, port=2222, protocol=tcp]
logpath = /var/log/secure
maxretry = 5  # 5次失败尝试后封禁
bantime = 3600  # 封禁1小时

三、应用层防护:保障业务系统安全

如果使用宝塔面板管理服务器,需特别注意面板和网站应用的安全配置。

1. 宝塔面板安全加固
  • 面板基础设置
    • 使用复杂密码(至少 12 位,包含多种字符类型)
    • 更改默认 8888 端口,在面板 "安全" 菜单中设置新端口,并同步更新云安全组规则
    • 启用 "动态口令认证" 和 "访问 IP 限制",仅允许指定 IP 访问面板
  • 应用安全配置
    • 删除默认的 phpMyAdmin(888 端口),通过宝塔面板内的数据库管理功能访问
    • 为数据库账号设置独立密码,禁止 root 账号远程访问
    • 定期更新宝塔面板和所有已安装软件(如 Nginx、MySQL)
2. Web 应用防护
  • 安装 WAF:在宝塔面板中安装 "宝塔 WAF" 插件,开启 SQL 注入、XSS 攻击防护规则
  • HTTPS 强制开启:通过宝塔面板申请免费 SSL 证书(如 Let's Encrypt),并配置 HTTP 自动跳转 HTTPS
  • 文件权限控制
    • Web 目录权限设置为 755,禁止写入权限
    • 敏感配置文件(如数据库配置文件)权限设置为 600,仅所有者可读写

四、数据安全:构建数据备份与恢复体系

数据安全的核心是建立完善的备份策略确保备份数据可用

1. 备份策略制定

采用 "全量 + 增量" 混合备份方案:

  • 全量备份:每周日凌晨执行一次全量备份,备份所有数据
  • 增量备份:每日凌晨执行增量备份,仅备份自上次备份以来变化的数据
  • 备份存储
    • 本地备份:存储在服务器本地磁盘(作为应急备份)
    • 异地备份:同步到云厂商对象存储(如阿里云 OSS),防范区域性灾难
    • 备份加密:对备份文件进行 AES-256 加密,防止数据泄露
2. 备份验证与恢复演练
  • 每月随机抽取备份文件进行恢复测试,验证备份完整性
  • 记录恢复时间,确保满足业务的恢复时间目标(RTO),例如核心业务需在 1 小时内恢复

五、安全运维:持续监控与应急响应

1. 安全监控配置
  • 部署服务器监控工具(如宝塔面板监控、Zabbix),设置 CPU、内存、流量异常告警
  • 启用日志审计,重点监控 SSH 登录日志(/var/log/secure)和 Web 访问日志,及时发现异常访问
2. 应急响应流程
  • 入侵检测:发现服务器异常(如 CPU 使用率突增)时,立即断开网络连接或启用云厂商的 "安全隔离" 功能
  • 证据留存:保存系统日志和网络流量记录,便于后续溯源分析
  • 系统重建:确认入侵后,建议重装系统并从备份恢复数据,避免留后门

通过以上多层防护措施,可以大幅提升云服务器的安全性。建议每季度进行一次安全评估,根据业务变化调整防护策略,确保安全体系持续有效。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐