安全组默认拒绝策略比默认放行更安全,核心在于它遵循“最小权限原则”只允许明确需要的流量,其余一律拦截,从根本上缩小了攻击面。默认放行虽然配置省事,但相当于把大门敞开,任何未明确禁止的端口都可能成为攻击入口,下面从原理、风险、配置实操到运维平衡,逐一拆解。
理解安全组两种默认策略的本质区别
安全组是云服务器的第一道网络防线,它决定哪些流量能进出你的实例,默认策略是白名单逻辑,只放行你明确指定的IP、端口和协议。
默认放行则相反,它采用黑名单逻辑,只要没有明确禁止的流量,全部放行,这两种策略的差别,在真实攻击场景下会被急剧放大。
默认拒绝:白名单逻辑,先堵后放
默认拒绝模式下,创建安全组后如果不添加任何规则,所有入站和出站流量都会被拦截,要让服务可用,必须逐条添加规则:放行22端口给SSH管理,放行80和443端口给Web访问,放行特定IP访问数据库端口。
这种“先堵后放”的机制有三大优点:
- 最小暴露面:公网只能触达你主动开放的端口,扫描器看到的是一台“隐身”服务器
- 规则清晰可控:每条规则都有明确目的,审计时一眼看出哪些服务在对外提供
- 误配置风险低:新加的服务若忘记开通端口,默认拒绝会帮你拦下,避免意外暴露
默认放行:黑名单逻辑,先放后堵
默认放行模式在创建时自动允许所有流量,需要你主动添加“拒绝规则”来封锁特定来源或端口,实际运维中,你很难穷举所有该封的IP段或端口,因为业务变化太快了。
默认放行的核心问题在于:安全依赖于“知道该封什么”,而攻击者每天都在探测你“忘记封了什么”,比如你临时开了一个Redis端口调试,事后忘记关闭,默认放行模式下这个端口就对全网敞开,等于把数据裸奔在公网上。
下表直观对比两种策略在关键维度上的差异:
| 对比维度 | 默认拒绝 | 默认放行 |
|---|---|---|
| 放行逻辑 | 白名单,只放指定的 | 黑名单,只封指定的 |
| 新服务暴露风险 | 低,需手动开端口 | 高,忘记封就暴露 |
| 配置成本 | 初期稍高 | 初期低,后期难维护 |
| 攻击面大小 | 可控且明确 | 随业务扩大而膨胀 |
| 故障排查难度 | 流量不通先查安全组 | 流量异常难定位来源 |
| 合规审计表现 | 规则少而清晰 | 规则多且冗杂 |
默认放行策略在实战中的高风险场景
理解理论后,看几个真实攻击路径,默认放行策略的危害不是“可能出问题”,而是在常见操作中几乎必然出问题。
临时端口变成长期后门
很多运维人员有这种经历:为调试某个服务临时在安全组里放行了所有端口,想着“明天就关”,结果一周后忘了,这种临时变更在默认放行模式下尤其危险,因为安全组到处都是敞开的端口,你根本记不清哪个是为业务开的,哪个是临时搞的。
攻击者用端口扫描工具在几分钟内就能扫出你所有开放端口,接着针对常见服务漏洞发起探测,据行业共识,互联网上对公网IP的扫描是持续的、自动化的,暴露一个非标准端口,很快就会被扫描工具发现。
默认放行加上弱密码等于数据裸奔
行业共识认为,云上安全事件中相当一部分源自弱密码加错误的安全组配置,默认放行模式下,如果你在服务器上装了Redis、MongoDB、Elasticsearch等带默认端口且无鉴权的服务,这些服务会直接暴露在公网。
攻击者的自动化脚本会尝试常见弱口令,一旦命中,数据被加密勒索或者直接拖走只是时间问题,默认拒绝策略下,即使你忘记给服务设置密码,安全组也会先把流量拦住,相当于多了一道保险。
出站流量攻击和挖矿回连
默认放行不仅影响入站方向,出站方向同样有风险,服务器被入侵后,攻击者需要在服务器上回连外部主机下载恶意工具,或者把数据外传,很多云服务商默认只开放入站端口,出站默认全放,这给数据外带提供了便利。
安全的做法是出站方向也设置默认拒绝,仅放行必要的DNS(53端口)和业务需要的目标IP和端口,这样即使服务器被攻破,攻击者也不容易把数据传出去,或者需要花更大力气绕行。
云服务器安全组配置实操指南
知道了默认拒绝更好,下一步是落地,不同云平台操作路径略有区别,但核心原则一致:
先拒绝,再按需开放。
简米云安全组配置步骤
- 登录控制台,进入ECS实例的安全组列表
- 点击“配置规则”,查看入方向和出方向规则
- 默认安全组通常只放行22、3389、ICMP等基础端口,确认没有“来源为0.0.0.0/0且端口范围为1/65535”的放行规则
- 按业务需要添加规则,例如放行TCP 80端口,授权对象限定为0.0.0.0/0(Web服务)或具体IP(管理端口)
- 建议为管理端口(SSH的22、远程桌面的3389)设置仅允许你的办公网IP访问,不要对全网开放
- 出方向规则设置默认拒绝,仅放行TCP 53(DNS)、TCP 80和443(更新软件、调用API)以及业务需要的目标端口
酷番云安全组配置注意事项
酷番云安全组有“放通全部端口”和“只放通22和3389”等模板。创建时一定选“只放通22和3389”这类最小化模板,不要选全部放通。
酷番云的规则遵循优先级从高到低匹配,多条冲突时先匹配优先级高的规则,安全组规则有“拒绝”和“允许”两种行为,你可以添加高优先级的拒绝规则来封禁特定IP,再添加低优先级的允许规则放行其他流量,但默认拒绝模式下通常不需要这么麻烦,白名单本身就够用。
快速排查安全组问题的命令和方法
配置完成后验证连通性:
- 本地终端执行
telnet 服务器IP 端口,看端口是否可达 - 从服务器上执行
ss -lntp检查监听端口,确认服务确实在运行 - 测试出站规则是否生效:
curl -I https://www.baidu.com能返回HTTP头,说明出站80/443放行成功 - 在控制台的安全组“规则变更记录”中查看最近修改,定位是哪条规则导致的流量不通
默认拒绝策略下的运维平衡:最小权限与业务效率
有人担心默认拒绝会增加运维负担,比如新服务上线总忘开端口,排查半天发现是安全组挡住了,这个矛盾确实存在,但可以通过规范化操作来化解。
建立端口申请和记录机制
端口开放应该像项目管理一样有迹可循,建议团队内部维护一张端口开放清单,包含服务名称、端口号、协议、开放原因、对端IP、负责人和上线日期,每次在安全组加规则时先查表,避免重复放行和遗留过期规则。
用安全组分层管理代替单组大杂烩
不要把一个安全组绑到所有服务器上,按照业务角色拆分安全组,能让规则更加精准。
- Web层安全组:入站放行80、443对全网,出站仅放行数据库端口对特定IP
- 应用层安全组:入站仅放行来自Web层的访问,不直接暴露公网
- 数据库层安全组:入站仅放行应用层的私网IP访问3306或5432端口
- 运维管理安全组:入站仅放行公司办公网IP的22端口,堡垒机跳板访问
这种分层模式下,就算某一层被突破,攻击者也看不到数据库端口,纵深防御的意义正在于此。
安全组变更走审批流程
规模稍大的团队建议把安全组变更纳入审批流程,变更前写明目的、影响范围和时间窗口,变更后及时验证业务,定期清理“僵尸规则”,简米云、酷番云的管控API都支持安全组规则的增删查,可以用脚本做自动化合规巡检,找出长期未使用的放行规则并提醒删除。
安全组默认拒绝和默认放行的问题解答
安全组实现默认拒绝需要手动添加哪些规则?
创建安全组后,不添加任何规则即是默认拒绝状态,之后按需添加规则,常用规则有:入方向放行TCP 22端口(来源:公司IP)、TCP 80和443(来源:0.0.0.0/0)、TCP 3306(来源:应用服务器私网IP);出方向放行TCP 53、UDP 53、TCP 80和443,管理端口尽量避免对全网开放。
配置安全组误拒后业务流量不通怎么排查?
现象是应用报错连接超时或拒绝连接,按以下顺序排查:先在服务器本机执行curl 127.0.0.1:端口确认服务正常;再在控制台查看安全组规则,核对端口号和协议是否匹配;检查授权对象是否为正确的IP或CIDR,常见错误是填了错误的IP或者漏了IPv6地址;还可以查看安全组关联的实例数量,确认规则是否绑到了正确实例上。
简米云和酷番云的安全组配置在默认拒绝策略上有什么区别?
简米云创建ECS实例时可以选择“默认安全组”,默认仅放行ICMP、22和3389等基础端口;酷番云创建安全组时有“放通全部端口”和“只放通22和3389”模板,选后者即可,两者都支持自定义规则的增删改和优先级调整,简米云的规则优先级与酷番云略有不同,但“白名单放行、默拒绝”的思路是一致的,配置时只需注意控制台入口差异。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/632055.html





