华为云安全组配置实战:从默认放行到最小权限原则
上一篇笔记记录了从创建 ECS 实例到远程登录的全过程。实例跑起来之后,下一个绕不开的问题就是:到底谁能访问这台服务器?答案就藏在“安全组”里。本文结合实操,聊聊华为云安全组的核心概念、新手常见误区,以及一套可以直接套用的最小权限配置。
一、安全组是什么
安全组是一种虚拟防火墙,作用在 ECS 实例的网卡层面,用来控制实例的出入流量。它有几个关键特性:
- 有状态:放行了出方向的请求,其返回流量会自动放行,不需要再配一条入方向规则。
- 实时生效:规则保存后立即生效,不需要重启实例。
- 白名单机制:默认拒绝,只有明确放行的流量才能通过(出方向默认放行全部,这是个例外)。
一条规则由五个要素组成:方向(入/出)、协议(TCP/UDP/ICMP)、端口范围、源地址/目的地址、优先级(数字越小优先级越高)。
二、新手最容易踩的三个坑
坑 1:入方向直接放行 0.0.0.0/0 所有端口
很多速成教程为了省事,一上来就加一条“全部 TCP、来源 0.0.0.0/0”的规则。这等于把服务器裸奔在公网上,自动化扫描器几分钟内就会找上门,SSH 爆破、挖矿木马都是这么来的。
坑 2:收紧出方向后忘了放行基础服务
默认出方向是全放行的,相对安全。但如果你出于合规要求收紧了出方向,记得放行 DNS(UDP 53)和 NTP(UDP 123),否则会出现“能 ping 通 IP 但域名解析失败”这类看似灵异的问题。
坑 3:改了规则却感觉“没生效”
安全组规则本身是实时生效的。如果改完不生效,先检查两件事:一是实例绑定的到底是哪个安全组(一台 ECS 可以绑定多个安全组,规则取并集);二是实例内部的 iptables/firewalld 有没有拦截,云上云下是两道门。
三、最小权限配置实操:以 Web 服务器为例
假设一台跑 Nginx 的 Web 服务器,需要对外提供 HTTP/HTTPS,同时管理员需要 SSH 登录。推荐规则如下:
| 方向 | 协议 | 端口 | 源地址 | 说明 |
|---|---|---|---|---|
| 入 | TCP | 80 | 0.0.0.0/0 | HTTP 公开访问 |
| 入 | TCP | 443 | 0.0.0.0/0 | HTTPS 公开访问 |
| 入 | TCP | 22 | 办公网出口 IP/32 | SSH 仅限管理地址 |
| 出 | 全部 | 全部 | 0.0.0.0/0 | 保持默认放行 |
操作路径:控制台 → 弹性云服务器 → 选中实例 → 安全组页签 → 配置规则 → 添加规则。
三条经验:
- SSH 不要对公网全开。没有固定办公 IP 的话,可以走 VPN 或跳板机,至少也要配合 fail2ban 做爆破防护。
- 用“安全组引用”代替写死 IP。比如数据库的安全组只放行“应用服务器所在的安全组”,后端 IP 扩缩容都不用改规则。
- 定期审计。每季度看一眼规则列表,把“临时调试”留下的全放行规则删掉——临时规则最容易变成永久后门。
四、连不通时的排查三板斧
按这个顺序查,基本能定位九成问题:
- 看安全组:从外网 telnet 对应端口,确认规则确实放行。
- 看实例内防火墙:
iptables -L或firewall-cmd --list-all,确认没有被本机防火墙拦掉。 - 看服务监听:
ss -tlnp确认服务监听在0.0.0.0而不是127.0.0.1——只监听回环地址的话,安全组放行了也连不上。
结语
安全组是云上安全的第一道门,配置原则其实就一句话:默认拒绝,按需放行。花十分钟把规则从“全放行”收紧到最小权限,能挡掉九成以上的自动化扫描攻击。这笔投入,性价比极高。
- 点赞
- 收藏
- 关注作者
评论(0)