以下是云服务器安全组(Security Group)的配置指南,涵盖主流云平台(AWS、Azure、GCP)的核心操作和最佳实践,帮助你构建安全的服务器环境!
云服务器安全组(Security Group)的配置指南
一、安全组基础概念
• 虚拟防火墙:云服务商提供的分布式防火墙,控制实例的入站/出站流量。
• 规则优先级:按顺序匹配规则(需合理排序,避免冲突)。
• CIDR 表示法:用于指定 IP 范围(如 0.0.0.0/0
表示所有 IP)。
• 安全组关联:可绑定到单个实例或多个实例(推荐绑定到 VPC)。
二、通用配置步骤
1. 创建安全组
# AWS CLI 示例
aws ec2 create-security-group \
--group-name my-web-sg \
--description "Allow HTTP/HTTPS and SSH" \
--vpc-id vpc-12345678
2. 添加入站规则
# 允许 HTTP (80) 和 HTTPS (443) 流量
aws ec2 authorize-security-group-ingress \
--group-name my-web-sg \
--protocol tcp \
--port-range 80/80 \
--cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress \
--group-name my-web-sg \
--protocol tcp \
--port-range 443/443 \
--cidr 0.0.0.0/0
3. 添加出站规则
# 允许所有出站流量(默认策略)
aws ec2 authorize-security-group-egress \
--group-name my-web-sg \
--protocol all \
--port-range -1/-1 \
--cidr 0.0.0.0/0
4. 关联实例
aws ec2 associate-security-groups \
--instance-ids i-12345678 \
--security-groups my-web-sg
三、主流平台操作对比
平台 | 创建安全组 | 允许 SSH 访问 | 查看规则 |
---|---|---|---|
AWS | AWS Console 或 CLI | aws ec2 authorize... --port 22 | AWS EC2 → Security Groups → 查看 inbound/outbound |
Azure | Azure Portal 或 CLI | az network security-group rule add | Azure Resources → Security Groups → Rules |
GCP | GCP Console 或 gcloud CLI | gcloud compute security-groups rules create | GCP Console → VPC Network → Security Groups |
四、高级配置技巧
1. 限制 IP 白名单
# 仅允许特定 IP 段访问 SSH(如 192.168.1.0/24)
aws ec2 authorize-security-group-ingress \
--group-name my-sg \
--protocol tcp \
--port-range 22/22 \
--cidr 192.168.1.0/24
2. 多端口开放与协议区分
# 允许 UDP 流量(如 DNS)
aws ec2 authorize-security-group-ingress \
--group-name my-sg \
--protocol udp \
--port-range 53/53 \
--cidr 0.0.0.0/0
3. 名称解析与 DNS
• DNS 查询:需允许出站 53 端口(UDP)。
• 内网 DNS:若使用私有 DNS,需配置安全组允许内网 IP 访问。
4. 负载均衡与 HTTPS
# 允许负载均衡器访问实例
aws ec2 authorize-security-group-ingress \
--group-name my-ec2-sg \
--protocol tcp \
--port-range 80/80 \
--source-arn arn:aws:elasticloadbalancing:...
五、最佳实践
- 最小化规则:仅开放必要端口(如避免开放 1723/RDP 到公网)。
- 分层安全组:
• Web 层:允许 HTTP/HTTPS + 白名单 IP。
• 数据库层:限制为应用服务器 IP。 - 启用日志记录:
# AWS 启用日志 aws ec2 modify-security-group-attributes \ --group-name my-sg \ --set-log-destination s3://my-bucket/security-logs/
- 定期审计规则:清理过期或不用的规则。
- 结合 IAM 策略:限制安全组修改权限(如仅管理员可调整)。
六、实战场景
场景 1:Web 服务器安全组
# 入站规则
- HTTP/HTTPS (80/443):允许所有 IP。
- SSH (22):仅允许运维 IP 段 10.0.0.0/8。
# 出站规则
- 允许所有出站流量(默认)。
场景 2:数据库服务器安全组
# 入站规则
- MySQL (3306):仅允许应用服务器 IP。
- SSH (22):仅允许运维 IP。
# 出站规则
- 限制为数据库连接响应 IP(如应用服务器)。
七、常见问题排查
- 流量被拒绝:
• 检查安全组规则顺序(是否被后续规则覆盖)。
• 确认实例网络接口(ENI)关联了正确安全组。 - SSH 无法连接:
• 检查本地 SSH 配置(如密钥对权限)。
• 确认安全组允许来源 IP 和端口。 - NAT 穿透问题:
• 需同时配置安全组 NAT 规则和路由表。
八、扩展工具
• AWS Security Groups Explorer:可视化分析安全组规则。
• Prowler:自动化审计云安全配置(包括安全组)。
• CloudCheckr:实时监控安全组风险。
通过合理配置安全组,你可以有效隔离风险并保障云服务器的安全性。