2026阿里云国际版ECS安全加固实战教程:SSH加固、防火墙配置与入侵检测全攻略

📅 · 阿里云国际版实战教程 - ChengziCloud

一句话结论

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 安全加固优先级排序

不是所有安全措施都同等重要,按照"投入产出比"排序:

  1. SSH密钥认证 + 禁用密码(10分钟搞定,防90%暴力破解)
  2. 安全组最小化开放(5分钟,缩小攻击面)
  3. 系统自动安全更新(15分钟,防已知漏洞)
  4. fail2ban防暴力破解(10分钟,兜底措施)
  5. firewalld基础防火墙(10分钟,内层防护)
  6. 日志监控与告警(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(三种方式任选)

方式一:控制台粘贴(最简单)

  1. 登录阿里云国际版控制台 → ECS → 实例
  2. 点击实例名称 → 安全性 → 密钥对
  3. 点击"导入公钥",粘贴 id_ed25519.pub 的内容
  4. 重启实例使密钥生效

方式二: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 常见服务的安全组配置模板

服务类型协议端口授权对象说明
SSHTCP22你的IP/32限制为固定IP,不要开0.0.0.0/0
HTTPTCP800.0.0.0/0Web服务必需
HTTPSTCP4430.0.0.0/0Web服务必需
MySQLTCP3306内网IP段/16绝不对外开
RedisTCP6379内网IP段/16绝不对外开
Node.jsTCP3000内网IP段/16通过Nginx代理,不直接对外

4.3 实操:在控制台配置安全组

  1. 进入ECS控制台 → 安全组 → 配置规则
  2. 入方向规则:
  • 删除所有"允许全部"的规则
  • 添加规则:协议TCP,端口22,源IP填你当前IP(百度"我的IP"获取)
  • 添加规则:协议TCP,端口80/443,源IP填0.0.0.0/0
  1. 出方向:默认允许全部(服务器需要主动出去访问外网)

📝 小提示:如果你的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告警

在阿里云控制台配置云监控告警,让异常事件主动通知你:

  1. 进入控制台 → 云监控 → 告警管理
  2. 创建告警规则:
  • 指标:CPU使用率 > 90% 持续5分钟
  • 指标:内存使用率 > 85% 持续5分钟
  • 指标:公网出流量 > 阈值
  1. 配置通知方式:邮件/短信/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-cronactive(running)
fail2banfail2ban-client statusactive
firewalldsystemctl status firewalldactive(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 提供,点击访问首页了解更多