服务器安全组设置完全指南:从入门到最佳实践

举报
暮山紫 发表于 2026/09/26 08:45:22 2026/09/26
【摘要】 一、什么是安全组?安全组(Security Group)是云计算环境中一种虚拟防火墙,用于控制云服务器(如 ECS、CVM、EC2 等)的入站和出站网络流量。它是云安全的第一道防线,通过定义一系列规则来决定哪些流量可以进入或离开服务器。可以把它理解为一栋大楼的门禁系统:只有持有合法凭证(IP、端口、协议)的人才能进出,其余一律拒之门外。安全组的核心特征有状态(Stateful):如果一条入站...

一、什么是安全组?

安全组(Security Group)是云计算环境中一种虚拟防火墙,用于控制云服务器(如 ECS、CVM、EC2 等)的入站和出站网络流量。它是云安全的第一道防线,通过定义一系列规则来决定哪些流量可以进入或离开服务器。

可以把它理解为一栋大楼的门禁系统:只有持有合法凭证(IP、端口、协议)的人才能进出,其余一律拒之门外。

安全组的核心特征

  • 有状态(Stateful):如果一条入站规则允许某个请求进入,那么该请求的响应流量会自动被允许出站,无需额外配置出站规则。
  • 白名单机制:默认拒绝所有流量,只有明确允许的规则才会放行。
  • 实例级别:安全组作用于单个或多个云服务器实例,而非子网级别(子网级别的是网络 ACL)。
  • 多组叠加:一个实例可以绑定多个安全组,最终生效的是所有规则的并集。

二、安全组 vs 网络 ACL

特性 安全组 网络 ACL
作用层级 实例级别 子网级别
状态 有状态 无状态
规则类型 仅允许规则 允许 + 拒绝规则
生效顺序 所有规则同时评估 按规则编号顺序评估
默认行为 拒绝所有入站 允许所有入站/出站

三、常见端口与协议速查

在配置安全组前,需要明确业务需要开放哪些端口:

端口 协议 用途 建议来源
22 TCP Linux SSH 远程登录 仅限办公 IP
3389 TCP Windows 远程桌面 仅限办公 IP
80 TCP HTTP Web 服务 0.0.0.0/0
443 TCP HTTPS Web 服务 0.0.0.0/0
3306 TCP MySQL 数据库 仅限应用服务器 IP
6379 TCP Redis 仅限应用服务器 IP
8080 TCP 应用服务/Tomcat 按需限制
ICMP ICMP Ping 探测 按需限制

四、安全组配置的核心原则

1. 最小权限原则

只开放业务必需的端口,其余一律关闭。例如:

  • ❌ 错误做法:开放 0.0.0.0/0 的 22 端口,导致服务器每天被暴力破解数万次
  • ✅ 正确做法:仅允许公司固定 IP 访问 22 端口

2. 分层隔离原则

典型的 Web 应用架构应分为三层,每层使用独立安全组:

text

[互联网] → [Web 层安全组] → [应用层安全组] → [数据层安全组]
  • Web 层:开放 80/443 给公网
  • 应用层:仅接受来自 Web 层安全组的流量
  • 数据层:仅接受来自应用层安全组的流量,绝不暴露公网

3. 精确指定来源

避免使用 0.0.0.0/0,尽量使用:

  • 具体 IP:203.0.113.10/32
  • IP 段:203.0.113.0/24
  • 安全组 ID:sg-xxxxxxxx(引用其他安全组,实现动态授权)

4. 出站规则同样重要

虽然很多云厂商默认允许所有出站流量,但高安全场景下应限制出站,防止服务器被入侵后向外发起恶意连接或数据外泄。

五、实战配置示例

场景:典型的 Web 应用服务器

Web 层安全组(sg-web)

text

入站规则:
- 协议:TCP,端口:80,来源:0.0.0.0/0
- 协议:TCP,端口:443,来源:0.0.0.0/0
- 协议:TCP,端口:22,来源:203.0.113.10/32(办公 IP)

出站规则:
- 协议:TCP,端口:3306,目标:sg-db(数据库安全组)
- 协议:TCP,端口:443,目标:0.0.0.0/0(用于更新补丁)

数据层安全组(sg-db)

text

入站规则:
- 协议:TCP,端口:3306,来源:sg-web(引用 Web 层安全组)

出站规则:
- 全部拒绝(或仅允许必要流量)

这样配置后,即使数据库密码泄露,攻击者也无法从公网直接连接数据库。

六、常见误区与风险

误区 1:图省事开放所有端口

text

入站:协议 ALL,端口 ALL,来源 0.0.0.0/0

这是最危险的做法,等同于把服务器直接暴露在互联网上,极易被扫描、入侵、植入挖矿程序。

误区 2:只配置入站,忽略出站

服务器被入侵后,攻击者可能利用服务器向外发起 DDoS 攻击或回传敏感数据。限制出站能有效降低损失。

误区 3:修改安全组后忘记验证

修改规则后应使用 telnet、nc 或在线端口扫描工具验证实际连通性,避免规则写错导致业务中断。

误区 4:长期不审计规则

随着业务变化,安全组会积累大量无用规则。建议每季度审计一次,清理僵尸规则。

七、进阶技巧

  1. 使用安全组引用替代 IP:在多实例架构中,直接引用其他安全组 ID,避免因 IP 变化频繁修改规则。
  2. 结合堡垒机:所有 SSH/RDP 访问统一经过堡垒机,安全组仅允许堡垒机 IP 访问。
  3. 启用流量日志:多数云平台支持安全组流量日志(如 AWS VPC Flow Logs),可用于安全审计和故障排查。
  4. 基础设施即代码(IaC):使用 Terraform、CloudFormation 等工具管理安全组,实现版本控制和自动化部署。
  5. 定期渗透测试:通过外部扫描验证安全组规则是否符合预期。

八、总结

安全组是云服务器安全的基础设施,配置质量直接决定了服务器的暴露面。核心要点可归纳为:

  • 默认拒绝,按需放行
  • 最小权限,精确到 IP 和端口
  • 分层隔离,数据层永不暴露公网
  • 入站出站双管齐下
  • 定期审计,持续优化

安全不是一次性的工作,而是持续的过程。一个配置得当的安全组,能挡掉 90% 以上的自动化攻击扫描,为服务器筑起坚实的第一道防线。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。