2026阿里云国际版ECS安全加固实战教程:SSH加固、防火墙配置与入侵检测全攻略
Meta Description: 阿里云国际版ECS服务器怎么加固安全?
- 一句话结论
- 安全现状:你的ECS到底有多"裸"?
- 第一步:SSH密钥认证——最该先做的一件事
- 第二步:安全组最小化——只开必要的端口
- 第三步:系统自动安全更新——别让已知漏洞过夜
- 第四步:fail2ban——暴力破解的最后一道防线
- 第五步:firewalld基础防火墙——内层防护
- 第六步:日志监控——事后追溯的眼睛
Meta Description: 阿里云国际版ECS服务器怎么加固安全?本文从SSH密钥认证、安全组规则、firewalld/iptables配置、fail2ban防暴力破解、系统更新策略到日志监控,手把手教你把一台裸机ECS变成生产级安全堡垒。附价格参考与常见问题FAQ。
关键词:阿里云国际版ECS安全、ECS安全加固、SSH密钥认证、安全组配置、fail2ban、服务器防火墙、云安全
一、一句话结论
ECS安全加固的核心逻辑是"纵深防御"——从云平台层(安全组)到操作系统层(firewalld/iptables)再到应用层(fail2ban+日志监控),每一层都要独立设防,任何一层被突破都不应导致整台服务器沦陷。 很多用户买了ECS就直接跑服务,SSH密码登录开着、安全组全开、系统从不更新——这等于在互联网上裸奔。本文从"最该先做什么"开始,按优先级走一遍:改SSH密钥 → 关密码登录 → 配安全组 → 开防火墙 → 装fail2ban → 定期更新 → 监控告警,7步完成基础安全加固。如果你还没注册阿里云国际版账号,先看本站 注册教程,注册前请确认当地法规合规性。
⚠️ 注意:本文所有价格均为参考价,价格可能变动,请以阿里云国际版官网(alibabacloud.com)实时定价为准。
二、安全现状:你的ECS到底有多"裸"?
在开始加固之前,先看看一台默认配置的ECS有多脆弱:
2.1 默认状态下的三大风险
| 风险项 | 默认状态 | 危险程度 | 后果 |
|---|---|---|---|
| SSH登录方式 | 密码+密钥双开 | 🔴 高 | 暴力破解成功率极高 |
| 安全组规则 | 常放行22/80/443全开 | 🟡 中 | 服务端口暴露,攻击面大 |
| 系统更新 | 新装系统可能未更新 | 🔴 高 | 已知漏洞未修补,可被远程利用 |
2.2 安全加固优先级排序
不是所有安全措施都同等重要,按照"投入产出比"排序:
- SSH密钥认证 + 禁用密码(10分钟搞定,防90%暴力破解)
- 安全组最小化开放(5分钟,缩小攻击面)
- 系统自动安全更新(15分钟,防已知漏洞)
- fail2ban防暴力破解(10分钟,兜底措施)
- firewalld基础防火墙(10分钟,内层防护)
- 日志监控与告警(20分钟,事后追溯)
📝 小提示:前3步做完,你的ECS安全性已经超越80%的公网上ECS实例。后面的步骤是锦上添花。
三、第一步:SSH密钥认证——最该先做的一件事
SSH暴力破解是ECS被入侵的第一大原因。阿里云国际版默认允许密码登录,必须改成密钥登录。
3.1 生成SSH密钥对(本地电脑操作)
// 在你的本地电脑(Mac/Linux/Windows WSL)执行
ssh-keygen -t ed25519 -C "[email protected]"
// 生成两个文件:
// ~/.ssh/id_ed25519(私钥,绝对不能泄露)
// ~/.ssh/id_ed25519.pub(公钥,上传到服务器)
如果需要兼容旧设备,可以用RSA 4096位:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
3.2 上传公钥到ECS(三种方式任选)
方式一:控制台粘贴(最简单)
- 登录阿里云国际版控制台 → ECS → 实例
- 点击实例名称 → 安全性 → 密钥对
- 点击"导入公钥",粘贴
id_ed25519.pub的内容 - 重启实例使密钥生效
方式二:ssh-copy-id(命令行)
// 用现有密码登录执行
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@YOUR_ECS_IP
方式三:手动追加(最底层)
// 密码登录ECS后执行
mkdir -p ~/.ssh && chmod 700 ~/.ssh
cat >> ~/.ssh/authorized_keys << 'EOF'
// 粘贴你的公钥内容(一整行)
EOF
chmod 600 ~/.ssh/authorized_keys
3.3 禁用密码登录(关键步骤)
验证密钥登录成功后,立即禁用密码登录:
// 编辑SSH配置文件
sudo vi /etc/ssh/sshd_config
修改以下配置项:
// 找到并修改以下行
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
重启SSH服务:
sudo systemctl restart sshd
⚠️ 重要:禁用密码登录前,务必确认密钥登录正常!否则你会被锁在服务器外面。建议先开两个终端窗口测试——一个用密钥登录,一个用密码登录,确认密钥能登再禁密码。
四、第二步:安全组最小化——只开必要的端口
安全组是阿里云国际版的第一道防线,相当于云端防火墙。
4.1 安全组规则设计原则
默认策略:全部拒绝,按需开放。 不要图方便把所有端口都放行。
4.2 常见服务的安全组配置模板
| 服务类型 | 协议 | 端口 | 授权对象 | 说明 |
|---|---|---|---|---|
| SSH | TCP | 22 | 你的IP/32 | 限制为固定IP,不要开0.0.0.0/0 |
| HTTP | TCP | 80 | 0.0.0.0/0 | Web服务必需 |
| HTTPS | TCP | 443 | 0.0.0.0/0 | Web服务必需 |
| MySQL | TCP | 3306 | 内网IP段/16 | 绝不对外开 |
| Redis | TCP | 6379 | 内网IP段/16 | 绝不对外开 |
| Node.js | TCP | 3000 | 内网IP段/16 | 通过Nginx代理,不直接对外 |
4.3 实操:在控制台配置安全组
- 进入ECS控制台 → 安全组 → 配置规则
- 入方向规则:
- 删除所有"允许全部"的规则
- 添加规则:协议TCP,端口22,源IP填你当前IP(百度"我的IP"获取)
- 添加规则:协议TCP,端口80/443,源IP填0.0.0.0/0
- 出方向:默认允许全部(服务器需要主动出去访问外网)
📝 小提示:如果你的IP是动态的(家用宽带),可以把SSH端口授权给一个较宽的IP段(如你的运营商IP段),但不要开0.0.0.0/0。更好的方案是用VPN或跳板机。
4.4 用aliyun CLI批量配置安全组(进阶)
如果你管理多台ECS,可以用阿里云CLI批量操作:
// 安装aliyun CLI
curl -O https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz
tar -xzf aliyun-cli-linux-latest-amd64.tgz
sudo mv aliyun /usr/local/bin/
// 配置认证
aliyun configure
// 查看安全组规则
aliyun ecs DescribeSecurityGroupAttribute --SecurityGroupId sg-xxxxx --RegionId ap-southeast-1
// 添加入方向规则(示例:只允许特定IP访问SSH)
aliyun ecs AuthorizeSecurityGroup \
--SecurityGroupId sg-xxxxx \
--RegionId ap-southeast-1 \
--IpProtocol tcp \
--PortRange 22/22 \
--SourceCidrIp 203.0.113.50/32 \
--Policy accept
五、第三步:系统自动安全更新——别让已知漏洞过夜
操作系统和软件的已知漏洞是攻击者最喜欢利用的入口。自动安全更新是最省心的防护。
5.1 Alibaba Cloud Linux / CentOS / RHEL
// 安装并启用自动安全更新
sudo yum install -y yum-cron
sudo vi /etc/yum/yum-cron.conf
// 修改以下配置
apply_updates = yes // 自动应用安全更新
upgrade_type = security // 只更新安全补丁
5.2 Ubuntu / Debian
// 安装无人值守升级
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
// 选择Yes启用自动更新
5.3 手动检查更新(建议每周执行一次)
// CentOS/RHEL
sudo yum check-update --security
sudo yum update -y --security
// Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
六、第四步:fail2ban——暴力破解的最后一道防线
即使你已经改了SSH端口和禁用密码,fail2ban仍然值得安装——它能自动封禁反复尝试登录的IP。
6.1 安装fail2ban
// CentOS/RHEL
sudo yum install -y epel-release
sudo yum install -y fail2ban
// Ubuntu/Debian
sudo apt install -y fail2ban
6.2 配置SSH防护
// 创建本地配置(不修改默认文件,方便升级)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vi /etc/fail2ban/jail.local
添加以下配置:
// SSH暴力破解防护
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
// CentOS日志路径
maxretry = 5
// 5次失败后封禁
bantime = 3600
// 封禁1小时
findtime = 600
// 10分钟内累计5次才触发
6.3 启动并验证
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
// 查看封禁状态
sudo fail2ban-client status sshd
// 手动解封IP(如果误封)
sudo fail2ban-client set sshd unbanip 203.0.113.50
七、第五步:firewalld基础防火墙——内层防护
安全组是云端防护,firewalld是操作系统层防护。两层独立设防,即使安全组被误改,firewalld仍然保护你的服务器。
7.1 启用firewalld
sudo systemctl enable firewalld
sudo systemctl start firewalld
// 查看当前规则
sudo firewall-cmd --list-all
7.2 配置基本规则
// 允许SSH(限制来源IP,按需修改)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.0/24" service name="ssh" accept'
// 允许HTTP/HTTPS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
// 拒绝其他所有入站
sudo firewall-cmd --permanent --set-default-zone=drop
// 应用规则
sudo firewall-cmd --reload
// 查看已开放服务
sudo firewall-cmd --list-services
7.3 关闭不需要的服务
// 查看正在监听的端口
sudo ss -tlnp
// 关闭不需要的服务(示例)
sudo systemctl stop cups
sudo systemctl disable cups
sudo systemctl stop postfix
sudo systemctl disable postfix
八、第六步:日志监控——事后追溯的眼睛
安全事件发生后,日志是唯一能告诉你"发生了什么"的证据。
8.1 关键日志文件
| 日志文件 | 内容 | 命令 |
|---|---|---|
| /var/log/secure (CentOS) | SSH登录记录 | tail -f /var/log/secure |
| /var/log/auth.log (Ubuntu) | SSH登录记录 | tail -f /var/log/auth.log |
| /var/log/messages | 系统日志 | tail -f /var/log/messages |
| /var/log/firewalld | 防火墙日志 | tail -f /var/log/firewalld |
8.2 快速排查SSH暴力破解
// 统计失败登录次数(按IP排序)
sudo grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -rn | head -20
// 查看当前登录用户
who
// 查看最近登录记录
last -20
// 查看失败登录详情
sudo grep "Failed password" /var/log/secure | tail -20
8.3 阿里云国际版CloudMonitor告警
在阿里云控制台配置云监控告警,让异常事件主动通知你:
- 进入控制台 → 云监控 → 告警管理
- 创建告警规则:
- 指标:
CPU使用率> 90% 持续5分钟 - 指标:
内存使用率> 85% 持续5分钟 - 指标:
公网出流量> 阈值
- 配置通知方式:邮件/短信/Webhook
九、第七步:进阶加固——按需启用
以下措施不是必须的,但对高安全要求的场景值得考虑:
9.1 更改SSH默认端口
sudo vi /etc/ssh/sshd_config
// 修改端口(不要用常见端口如2222/8022)
Port 49152
// 选择1024-65535之间的非标准端口
sudo systemctl restart sshd
// 别忘了在安全组和firewalld中开放新端口!
9.2 SELinux(CentOS/RHEL)
// 查看SELinux状态
getenforce
// 如果是Disabled,建议改为Enforcing
sudo vi /etc/selinux/config
SELINUX=enforcing
// 需要重启生效
9.3 审计日志(auditd)
sudo yum install -y audit
sudo systemctl enable auditd
sudo systemctl start auditd
// 监控关键文件变更
sudo auditctl -w /etc/passwd -p wa -k passwd_changes
sudo auditctl -w /etc/shadow -p wa -k shadow_changes
sudo auditctl -w /etc/ssh/sshd_config -p wa -k sshd_config
十、安全加固检查清单
完成加固后,用这个清单逐项确认:
| 检查项 | 命令/方法 | 预期结果 |
|---|---|---|
| SSH密钥登录 | ssh -i ~/.ssh/id_ed25519 root@IP | 能登录 |
| SSH密码登录 | 尝试 ssh root@IP(不带-i) | 被拒绝 |
| 安全组规则 | 控制台查看 | 只开放22(限IP)/80/443 |
| 自动更新 | systemctl status yum-cron | active(running) |
| fail2ban | fail2ban-client status | active |
| firewalld | systemctl status firewalld | active(running) |
| 不必要服务 | ss -tlnp | 只有必需服务在监听 |
十一、常见问题 FAQ
- Q: 改了SSH端口后连不上服务器怎么办?
A: 阿里云国际版控制台有"远程连接"功能(VNC),可以通过网页终端登录修改配置。如果VNC也不行,可以通过"实例救援模式"挂载系统盘修复。建议改端口前先在安全组同时开放新旧两个端口,确认新端口可用再删除旧端口规则。
- Q: fail2ban把我的IP封了怎么办?
A: 通过阿里云控制台的VNC远程连接登录服务器,执行 sudo fail2ban-client set sshd unbanip YOUR_IP。然后检查你的IP是否因为网络切换(如从公司到家里)导致频繁变化,考虑用VPN固定IP。
- Q: 安全组和firewalld都开了,会不会冲突?
A: 不会冲突。安全组是云端防护(数据包还没到服务器),firewalld是操作系统层防护(数据包已到服务器)。两层独立判断,安全组放行的包才会到达firewalld。建议两层都配置,纵深防御。
- Q: 我的ECS需要开放3306端口给远程MySQL连接,安全吗?
A: 不安全。MySQL端口绝对不要对外开放。正确做法:通过SSH隧道连接(ssh -L 3306:localhost:3306 root@ECS_IP),或者使用阿里云国际版的DMS数据管理服务进行网页端管理。如果必须远程连接,安全组限制为你的固定IP,且MySQL用户设置强密码。
- Q: 阿里云国际版免费提供DDoS基础防护吗?
A: 是的。阿里云国际版所有ECS实例默认提供5Gbps的DDoS基础防护(Anti-DDoS Basic),免费,无需额外配置。如果业务面临更大流量攻击,可以升级到DDoS高防IP(Anti-DDoS Pro),按带宽计费。具体价格可能变动,请以官方为准。
- Q: 安全加固后性能会有影响吗?
A: 几乎没有。SSH密钥认证比密码认证还快(省去了密码验证过程)。fail2ban的CPU占用可以忽略不计。firewalld的iptables/nftables规则对网络吞吐量的影响在微秒级别,对正常业务无感知。自动更新只下载安全补丁,不会导致重启(除非内核更新)。
- Q: 我有多台ECS,怎么批量管理安全配置?
A: 推荐使用阿里云国际版的运维编排服务(OOS)或通过aliyun CLI + Ansible批量执行。安全组可以创建模板后关联到多台ECS,统一管理规则。详情可以参考 阿里云国际版SLB负载均衡实战教程 中关于CLI批量配置的部分。
十二、总结
ECS安全加固的核心就三句话:改密钥、关端口、勤更新。做完前3步(SSH密钥+安全组最小化+自动更新),你的ECS安全性已经远超平均水平。后续的fail2ban、firewalld和日志监控是锦上添花。安全不是一次性工作——建议每月检查一次安全组规则、每周查看一次日志、每季度做一次全量安全审计。如果需要选购ECS实例,可以参考 ECS选购教程;新用户注册可以看 注册教程,先领优惠再下单。
⚠️ 免责声明:本文中提到的配置、价格和优惠信息可能随时间变化,请以阿里云国际版官网(alibabacloud.com)的实时信息为准。本文不构成任何投资或购买建议。注册前请确认当地法规合规性。
本文由 2.chengzicloud.cloud 提供,点击访问首页了解更多