腾讯云安全组详细配置解说:如何正确开放端口并拒绝恶意扫描
很多刚接触腾讯云的朋友,高高兴兴把环境配好了,结果网站打不开,查了半天原因,最后发现卡在“安全组”没开端口。或者反过来,为了图省事,直接在安全组里开了 0.0.0.0/0(全放通),结果服务器跑了没三天,就被黑客当成挖矿肉鸡,甚至遭遇勒索软件。
安全组,说白了就是腾讯云免费送给你的一道虚拟防火墙。它在服务器外面架起了一道关卡,决定了哪些流量能进来,哪些流量能出去。
今天不扯复杂的网络理论。我们就从实战出发,聊聊怎么既能正确开放业务端口,又能把那些天天扫描你服务器的恶意脚本死死挡在门外。
第一阶段:安全组的核心底层逻辑
在动手配置之前,必须搞懂两个最核心的死理,否则你一定会配错:
1. “入站”与“出站”
- 入站规则(Inbound):外面的人访问你。比如用户访问你的网站(80/443端口),或者你用 SSH 连接服务器(22端口)。安全组的配置,99%都是在配入站规则。
- 出站规则(Outbound):服务器访问外面。比如你的服务器要下载系统更新、调用微信支付的 API。腾讯云安全组的默认出站规则是全放通,保持默认即可,千万别动它,否则服务器自己就成“断网”状态了。
2. 规则是“从上到下”匹配的
安全组的规则是有优先级的(行数越靠前,优先级越高)。流量进来时,会从第一条规则开始对,一旦对上了,立刻执行(允许或拒绝),不再往下看。
敲黑板:如果你的第一条规则是“拒绝所有流量”,第二条是“允许80端口”,那么 80 端口永远也进不来。永远记住,精确的、允许的规则放上面,宽泛的、拒绝的规则放下面。
第二阶段:手把手配置一个“铜墙铁壁”的安全组
现在登录你的腾讯云控制台,搜索进入“安全组”。点击“新建”,模版选择“自定义”,名字起叫 Web服务器高安全规范。
点击“入站规则” -> “添加规则”,我们来一条一条建立防线:
1. 必开的公共业务端口(全人类可见)
如果你的服务器是用来跑网站的,这两个端口必须无条件对全世界开放:
- HTTP(80 端口):来源:0.0.0.0/0(代表全球任何 IP)协议端口:TCP:80策略:允许
- HTTPS(443 端口):来源:0.0.0.0/0协议端口:TCP:443策略:允许
2. 命门端口:远程管理端口(拒绝裸奔)
Linux 的 22 端口(SSH)和 Windows 的 3389 端口(远程桌面),是黑客恶意扫描的重灾区。 绝对、绝对不要对 0.0.0.0/0 开放这两个端口。
- 高安全配法(固定 IP):如果你家里的宽带或者公司有固定公网 IP,在“来源”里直接填你的固定 IP(例如 220.181.111.85)。这样,全世界除了你,谁也别想连接这台服务器。
- 折中配法(IP 段):如果是动态 IP,每次重启路由器都变,可以填你所在城市的运营商 IP 段(比如 220.181.0.0/16),缩小被扫描的概率。
- 懒人但安全的配法(改默认端口):如果实在必须全网开放,千万别用默认的 22。去服务器系统里把 SSH 端口改成类似 59222 这种高位随机端口,然后在安全组里开放 TCP:59222。黑客的盲扫脚本通常只扫 22 端口,改个端口能帮你挡掉 99% 的无脑扫描。
3. 数据库与中间件端口(必须内网隔离)
像 MySQL(3306)、Redis(6379)、MongoDB(27017),这些是你的核心资产。
- 铁律:永远不要在安全组里对全网(0.0.0.0/0)开放数据库端口!
- 怎么访问?:如果你的前端服务器和数据库服务器都在同一个腾讯云账号同一个地域下,来源请填写前端服务器的内网 IP(例如 10.0.0.5)。如果只是你自己偶尔要连一下看数据,请用 SSH 隧道(Tunnel)转发,或者用完立刻关闭安全组规则,即开即用,用完即关。
第三阶段:主动出击,拒绝恶意扫描与御敌于国门之外
黑客是怎么盯上你的?他们用的是全网自动化扫描工具(比如 ZMap、Masscan)。如果你的服务器对任何探测都给出回应,你就会被列入他们的“待破解名单”。
1. 终极防守:兜底拒绝规则
当你把需要开的端口(80, 443, 改后的SSH端口)全部在上方允许之后,在规则列表的最末尾,加上一条:
- 来源:0.0.0.0/0
- 协议端口:ALL
- 策略:拒绝
这就形成了著名的“默认拒绝”安全策略:不在我白名单上的,一律乱棍打死。
2. 禁用 ICMP(禁止 Ping)
很多黑客找目标的第一步是 ping 你的 IP,看看机器是不是开着的。
- 你可以添加一条规则:协议选择 ICMP,来源 0.0.0.0/0,策略选择 拒绝。
- 这样别人再 ping 你的服务器就会显示超时,假装你的服务器不存在,直接劝退一部分初级扫描器。
第四阶段:配置之后的验证与关联
安全组规则配好了,别忘了最重要的一步:绑定实例。
在安全组详情页,切换到“关联实例”标签页,点击“关联”,勾选你的云服务器。如果不关联,你刚才配的规则就是一纸空文。
怎么验证自己配得对不对?
- 测试业务:用手机 4G/5G 网络(模拟外部环境)访问你的网站,能打开说明 80/443 没问题。
- 测试拦截:在你没有放通数据库端口的情况下,尝试用本地的数据库工具(如 Navicat)直接连服务器公网 IP 的 3306 端口。如果显示连接超时(而不是拒绝连接),说明安全组已经成功把请求默默丢弃(Drop)了,防盗防扫描效果达到预期。
总结
安全组的本质就是“断舍离”。能不开的端口坚决不开,能限定 IP 访问的坚决不全网开放,最后用一条全拒绝规则兜底。 只要守住这个原则,那些在公网上游荡的恶意扫描脚本和自动化木马,就拿你的服务器一点办法都没有。
