阿里云账号安全保护 阿里云服务器防火墙策略设置

阿里云国际 / 2026-04-17 13:30:16

下载.png

你有没有过这种经历:刚买完阿里云ECS,兴冲冲配好网站,结果发现打不开;一查日志,是403或连接超时;再翻文档,发现安全组没开80端口——于是赶紧加一条,结果第二天收到阿里云安全中心的红色告警:“检测到SSH暴力破解尝试,IP已自动封禁”。

别慌,这不是你技术差,是阿里云的防火墙策略,压根就不是传统Linux iptables那套“写完规则就生效”的直觉逻辑。它是一套云原生双层防御体系:外层是安全组(实例级网络ACL),内层是操作系统自带防火墙(如firewalld或ufw),中间还可能插着一个云防火墙(企业版专属)。三者不联动、不继承、不自动同步——就像你家小区大门(安全组)、单元门禁(云防火墙)、自家防盗门(系统防火墙)各管各的,钥匙还不通用。

所以,今天这篇,不讲官方文档里那种“点击+添加+保存”的流水账操作,咱们来点实在的:怎么设才不翻车?怎么开才不裸奔?怎么查才不抓瞎?

一、先搞清“谁在拦你”:三层防火墙,职责分明

1. 安全组(Security Group)——你的云服务器第一道岗哨
它工作在虚拟交换机层面,属于网络层过滤,只认IP+协议+端口,不看应用层内容。关键特性:
• 规则默认全部拒绝(包括ICMP ping!别再问“为什么ping不通”了);
• 入方向(Inbound)和出方向(Outbound)独立控制;
• 支持CIDR段(比如192.168.1.0/24),也支持“0.0.0.0/0”这种万能但危险的写法;
修改后立即生效,无需重启实例——这点比系统防火墙友好一万倍。

2. 系统防火墙(firewalld / ufw / iptables)——藏在系统肚子里的守门人
它运行在OS内核,能做更细粒度控制(比如按服务名、按源端口、甚至按conntrack状态)。但注意:
• 阿里云官方镜像(CentOS 7+/Ubuntu 20.04+)默认启用firewalld或ufw,且规则优先级高于安全组!也就是说:安全组放行了80端口,但firewalld把80堵死了,照样打不开;
• 修改后需执行systemctl reload firewalldufw reload才生效;
• 很多新手装完宝塔或LNMP,面板自动关掉firewalld——这等于拆掉了第二道门,只剩安全组孤军奋战。

3. 云防火墙(Cloud Firewall)——企业用户的“高级安保中心”
这是收费模块(按带宽或规则数计费),部署在VPC入口,可做URL过滤、威胁情报联动、南北向+东西向流量审计。普通用户基本用不到,但如果你公司上了等保三级,它就是标配。一句话记住:安全组管“能不能通”,云防火墙管“通了之后干啥”

二、实操指南:从“连不上”到“连得稳”的五步法

Step 1:先做减法,不是加法
别一上来就“开放所有端口”。打开阿里云控制台→云服务器ECS→安全组→入方向规则,删掉所有“0.0.0.0/0”的临时规则。记住:最小权限原则不是口号,是血泪教训。你只需要开放真正需要的端口,比如:Web服务开80/443,远程管理开22(Linux)或3389(Windows),数据库开3306(但仅限内网IP)。

Step 2:给SSH上把“动态锁”
22端口是黑客扫描头号目标。与其死守密码登录,不如:
• 关闭密码认证:sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config && systemctl restart sshd
• 换用密钥登录,并把私钥存本地,公钥传服务器;
• 再进安全组,把22端口源IP限制为你的办公IP(比如“218.108.56.123/32”),出差党可以加个家庭宽带IP段(如“114.247.0.0/16”);
• 进阶玩法:改SSH端口(比如2222),再配合fail2ban自动封IP——但注意!改端口后,安全组也要同步更新,否则你将亲手把自己锁在外面。

Step 3:数据库绝不裸奔
MySQL默认绑定127.0.0.1,很安全。但很多人为了远程管理,改成bind-address = 0.0.0.0,再在安全组放开3306——这就等于把保险柜钥匙挂在门口。正确姿势:
• 应用服务器和DB服务器同属一个VPC?那就用内网IP通信,安全组只允许该ECS内网IP访问3306;
• 必须外网连?先建个跳板机(堡垒机),本机SSH连跳板,再从跳板连DB,全程走22端口隧道;
• 绝对不用root远程登录,单独建账号并限定host为具体IP:CREATE USER 'app'@'172.16.10.25' IDENTIFIED BY 'StrongP@ss2024';

Step 4:验证顺序,别跳步
每次改完规则,按这个顺序排查:
telnet your-server-ip 22(测安全组是否放行);
② 登录成功后,sudo firewall-cmd --list-all(看firewalld是否拦路);
ss -tuln | grep :80(确认服务真在监听);
curl -I http://localhost(排除Nginx/Apache自身故障);
⑤ 最后用手机4G网络访问公网IP——别只在公司内网测,很多攻击就来自移动网络。

Step 5:留好退路,防手抖
写脚本一键回滚:
#!/bin/bash
# 保存当前安全组规则
aliyun ecs DescribeSecurityGroupAttribute --SecurityGroupId sg-xxxxxx > /tmp/sg-backup.json
# 重置为仅允许22端口(保守模式)
aliyun ecs RevokeSecurityGroup --SecurityGroupId sg-xxxxxx --IpPermissions '[{"IpProtocol":"tcp","PortRange":"22/22","SourceCidrIp":"0.0.0.0/0"}]'
echo "已降级为SSH-only模式,请检查后再调整"

把这个脚本存在/root/rollback.sh,chmod +x,关键时刻救你一命。

三、那些年我们填过的坑

坑1:HTTPS打不开,查半天是安全组开了443,但Nginx没配SSL证书,浏览器直接报ERR_CONNECTION_REFUSED——防火墙不背锅,它只管“通不通”,不管“通了有没有货”。
坑2:WordPress后台上传附件失败,以为是80端口问题,其实是安全组没开被动FTP端口(20/21+高端口段)——FTP主动模式早淘汰了,现在都用SFTP(走22端口),别再开FTP了!
坑3:用了SLB负载均衡,却还在后端ECS安全组里开80端口给0.0.0.0/0——SLB健康检查IP段是阿里云内网(如100.64.0.0/10),应该只放行这个段,否则等于把后端机器直接暴露公网。

阿里云账号安全保护 最后送你一句大实话:没有最安全的配置,只有最适合你业务的平衡点。电商大促前收紧规则,运维排障时临时放开,日常保持最小集——这才是云时代防火墙的正确打开方式。下次再看到“防火墙设置”四个字,别怕,拿出这张清单,一条条对,你就是自己服务器的首席安全官。

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系