云服务器安全组规则怎么配最安全?一份照着抄的实操指南
你是不是也干过这事:买了云服务器,图省事把安全组入站改成“全部放行”,或者为了远程连数据库,直接把22、3306、6379开给0.0.0.0/0?我见过太多站点被扫端口、数据库被爆破、Redis被写公钥,别问我是怎么知道的。这篇就用大白话讲清安全组怎么配最稳,适合国内站长、开发者和中小企业运维,照着做能避开大多数低级风险。
先记住一句话:默认拒绝,按需放行
安全组本质是云上的虚拟防火墙。最安全的思路不是“我要开什么”,而是“我默认全关,只开业务必须的”。下面按5步走,基本能覆盖大多数业务。
第1步:先列端口清单,入站默认拒绝。
登录服务器跑 ss -tulnp,看看到底哪些端口在监听。网站通常只留80/443;SSH管理端口不要对全网开放;MySQL、Redis、MongoDB这类数据库,能不走公网就不走公网。安全组入站先加一条“拒绝所有”,再按需加允许规则。注意云厂商规则有优先级,拒绝规则要确认生效顺序。
第2步:按角色拆安全组,别一套规则打天下。
Web层安全组:只开放80/443给0.0.0.0/0,ICMP按需。
管理安全组:SSH/RDP只允许你自己的公网IP,或者公司固定IP、跳板机IP。查本机IP可以 curl ifconfig.me,但家里宽带IP会变,最好用云堡垒机或VPN。
数据库安全组:只允许应用服务器的安全组ID,不写公网IP。你可能不知道,安全组引用比IP白名单更稳,应用扩容换IP也不用改规则。
第3步:规则写法要“窄”,临时规则记得删。
简单示例:
| 方向 | 协议/端口 | 源 | 用途 |
|---|---|---|---|
| 入站 | TCP 80/443 | 0.0.0.0/0 | 网站访问 |
| 入站 | TCP 22 | 你的公网IP/32 | SSH管理 |
| 入站 | TCP 3306 | 应用服务器安全组ID | 内网数据库 |
| 入站 | 全部 | 0.0.0.0/0 | 默认拒绝 |
出站一般默认允许,但高安全场景可以只放行业务所需域名/IP。临时开的测试端口,用完立刻删,别留“以后可能用”。
第4步:管理入口加固,别只靠安全组。
SSH用密钥登录,禁用root密码登录;RDP限制源IP;系统防火墙别全关,和安全组形成双层;补丁及时打,fail2ban可以防暴力破解。改SSH端口只能减少噪音,限源IP才是关键。
第5步:从外网验证,定期审计。
用手机4G网络或在线端口扫描工具测一下,确认外网只看到80/443。别只在内网测,那不算数。每月复查安全组:有没有0.0.0.0/0开放22/3389/3306/6379,有没有过期临时规则,规则备注写清楚。开启云审计或VPC流日志,出问题能追溯。
避坑提醒:新手最容易犯的3个错
- 把22、3389、3306、6379直接开给
0.0.0.0/0,等于把门钥匙挂门口。 - 以为配了安全组就万事大吉,系统防火墙全关、补丁不打、密码弱成123456。
- 规则只加不删,测试端口忘了关;或者出站全放行,服务器被挖矿后还能愉快外联。别问我是怎么知道的。
解决方案推荐
安全组能挡住端口乱开,但挡不住大流量DDoS/CC。如果你业务常被扫、被攻击,或者需要免备案VPS,可以看看沐雨云服务器(https://www.myyvps.com)。它提供高防云服务器(单机50-200G DDoS/CC防御)、香港/美国/日本免备案VPS,采用BGP/CN2优质线路、纯SSD固态硬盘,2核2G轻量云12.8元/月起,支持支付宝/微信支付,适合个人博客、电商网站、游戏服务器、外贸独立站等场景。建议先把安全组配好,再按业务需要上高防,别反过来。
结尾总结
安全组最安全的配法就几句话:
- 入站默认拒绝,只开必要端口;
- 管理端口限源IP,数据库只走内网;
- 用安全组引用,临时规则及时删;
- 外网扫描验证,定期审计;
- 安全组+系统防火墙+补丁+高防一起上。
照着做,至少能躲开90%的低级风险。




这一切,似未曾拥有