.png)
云服务器刚搭好,安全组和防火墙怎么配才既安全又不锁死自己?
- 优惠教程
- 11热度
你是不是也经历过:辛辛苦苦买了云服务器,网站或应用部署好了,结果外部访问不了?或者更糟,连自己的SSH都连不上了?
别急,这八成是安全组和系统防火墙在“保护”你——只不过保护得有点过头了。今天咱们就来聊聊,怎么把这两道门管好,既不让坏人进来,也不把自己关在外面。
安全组 vs 系统防火堰:到底谁管谁?
很多新手容易混淆这两个概念,以为只要开了一个,另一个就不用管了。错!它们是两道独立的防线,必须都配置正确。
- 安全组(Security Group):这是云平台层面的虚拟防火墙,属于第一道关卡。它控制的是从互联网到你服务器网络接口的流量。比如腾讯云、阿里云、华为云里的“安全组”设置,就是在这里操作。
- 系统防火墙(如 firewalld、iptables):这是操作系统层面的防火墙,属于第二道关卡。即使流量通过了安全组,也得过它这一关才能到达你的应用。
你可以理解为:安全组是小区大门的门禁,系统防火墙是你家门的锁。门禁放行了,不代表你家门就自动开了。
第一步:搞定云平台安全组规则
以主流云厂商的操作逻辑为例,虽然界面略有不同,但核心思路一致。
- 登录控制台:进入你购买服务器的云平台,比如腾讯云控制台或阿里云控制台。
- 找到安全组设置:在云服务器(ECS/云主机)详情页,通常会有一个“安全组”标签,点击进入。
- 配置入站规则(Inbound):这是最关键的一步,决定谁能访问你的服务器。
服务类型 | 协议类型 | 端口范围 | 源地址 | 用途说明 |
---|---|---|---|---|
SSH | TCP | 22 | 0.0.0.0/0 或你的IP | 允许远程登录Linux服务器(建议限制为你的固定IP) |
HTTP | TCP | 80 | 0.0.0.0/0 | 允许公网访问Web服务 |
HTTPS | TCP | 443 | 0.0.0.0/0 | 允许公网访问加密Web服务 |
自定义Ping | ICMP | -1/-1 | 0.0.0.0/0 | 允许外部ping通服务器(可选,用于连通性测试) |
这里有个重要建议:SSH端口(22)的源地址,尽量不要写0.0.0.0/0
(代表所有IP),而是填写你自己的公网IP。这样即使密码泄露,黑客也很难暴力破解。如果你的IP不固定,可以考虑改SSH端口,但这只是增加一点隐蔽性,并非根本安全措施。
出站规则(Outbound)一般默认全放行,除非你有特殊合规要求,否则不必改动。
第二步:检查并配置系统防火墙
安全组放行了,不代表万事大吉。你还得确保系统防火墙也允许这些端口的流量。
以最常见的CentOS 7/8/Stream系统为例,使用的是firewalld服务。
- 查看防火墙状态:
sudo firewall-cmd --state
如果返回
running
,说明防火墙是开启的。 - 开放常用端口:
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --permanent --add-port=22/tcp sudo firewall-cmd --reload
--permanent
表示永久生效,--reload
重新加载配置。 - 验证规则是否生效:
sudo firewall-cmd --list-all
查看输出中是否包含了你刚添加的服务或端口。
如果你用的是Ubuntu系统,通常默认使用ufw,命令略有不同:
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
我的经验是:新服务器初始化后,先确认安全组放行了SSH,然后立刻登录,第一时间把系统防火墙打开并配置好规则。这样能避免中间窗口期被扫描攻击。
常见踩坑场景与避坑指南
下面这些情况,我几乎每周都能在社区看到有人问,其实都是安全组+防火墙的组合问题。
- 问题1:配了安全组,但网站打不开
你可能只开了安全组的80端口,但忘了系统防火墙没开。或者你的Web服务(如Nginx)根本没启动。用sudo netstat -tlnp | grep 80
确认服务是否监听了80端口。 - 问题2:改了SSH端口,结果连不上了
你改了/etc/ssh/sshd_config
里的端口,但安全组和系统防火墙没放行新端口。记住:改端口后,必须同步更新三处:SSH配置、安全组规则、系统防火墙规则。 - 问题3:数据库只给内网用,怎么配?
假设你有一个MySQL数据库服务器,只想让同VPC内的Web服务器访问。安全组入站规则的源地址填Web服务器的内网IP段,比如192.168.1.0/24
,并且系统防火墙也只绑定内网接口。
还有一个隐藏坑点:有些云厂商的默认安全组会禁止ICMP协议,导致你ping不通服务器。这不代表服务器宕机了,只是ICMP被拦截了。建议在安全组里单独加一条ICMP规则用于测试,上线后可关闭。
安全组的最佳实践:最小权限原则
别图省事把所有端口都打开。遵循最小权限原则:只开放业务必需的端口。
比如你只是搭个博客,那就只需要80、443、22(或你自定义的SSH端口)。数据库、Redis这些内部服务,一律不暴露在公网。
另外,多个服务器可以共用一个安全组。比如你有3台Web服务器,可以创建一个“Web-Servers-SG”的安全组,统一管理它们的出入规则,方便维护。
想省心省成本?现在腾讯云和阿里云都有针对新用户的专属轻量应用服务器套餐,自带基础安全组模板,一键部署网站、博客、Docker等,非常适合个人开发者和中小企业快速上线。具体优惠活动和配置,建议直接访问官网查看当前最新信息,通常性价比非常高。
常见问题解答(FAQ)
问题 | 解答 |
---|---|
安全组规则修改后需要重启服务器吗? | 不需要。安全组规则是实时生效的,修改后几秒内就会应用到关联的实例上。 |
一台服务器可以属于多个安全组吗? | 可以。不同安全组的规则是“取并集”的关系,只要任一安全组允许,流量就能通过。 |
安全组和VPC有什么关系? | 安全组是VPC(虚拟私有云)内的网络访问控制策略,必须在VPC环境下使用。 |
为什么我开了80端口还是访问不了网站? | 请依次检查:安全组是否放行80、系统防火墙是否放行80、Web服务是否已启动并监听80端口、域名是否正确解析到服务器IP。 |
如何防止SSH被暴力破解? | 建议:1)将SSH源IP限制为自己的固定IP;2)更改默认SSH端口;3)使用密钥登录替代密码登录。 |
本文由人工智能技术生成,基于公开技术资料和厂商官方信息整合撰写,以确保信息的时效性与客观性。我们建议您将所有信息作为决策参考,并最终以各云厂商官方页面的最新公告为准。
温馨提示:云服务商优惠信息实时变动,本文内容仅供参考,最终价格请以官方活动页面最新公示为准。