三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

如何配置阿里云 ECS 安全组限制特定 IP 访问 SSH 端口

如何配置阿里云 ECS 安全组限制特定 IP 访问 SSH 端口

最稳妥的方式是通过阿里云控制台或 CLI 修改 ECS 安全组入方向规则,将 SSH 端口(默认 22)的授权对象设置为特定 IP 地址或 CIDR 块。

先说结论:安全组是 ECS 实例层面的虚拟防火墙,限制特定 IP 访问 SSH 能有效降低暴力破解风险。

  • 先判断:确认当前管理电脑的公网 IP 地址,注意家庭宽带 IP 通常为动态,变更会导致无法连接
  • 优先做:在保留原有规则基础上添加新规则,确认无误后再删除默认放开规则。
  • 再验证:使用 SSH 客户端从允许和禁止的 IP 分别测试连接状态。

控制台配置步骤

此操作主要在阿里云控制台完成,无需登录实例内部。

  1. 查询当前出口 IP:在浏览器访问 ipinfo.io 或类似网站,记录当前管理电脑的公网 IP。若是家庭宽带,建议记录 IP 段或做好 IP 变更准备。
  2. 进入安全组配置:登录阿里云 ECS 控制台,点击实例 ID,进入安全组标签页,点击配置规则。
  3. 添加白名单规则:点击入方向添加规则,协议类型选择 TCP,端口范围输入 22/22,授权对象输入上一步记录的 IP(单个 IP 可加/32 后缀)。注意优先级:默认优先级为 1(最高),若存在同优先级的拒绝规则可能导致配置无效,建议检查现有规则。
  4. 调整默认规则:测试新规则生效后,找到原本允许 0.0.0.0/0 访问 22 端口的规则,将其删除或修改为拒绝。

使用阿里云 CLI 自动化配置

对于需要批量管理或自动化场景,可使用阿里云 CLI 工具配置。需先安装并配置阿里云 CLI。

aliyun ecs AuthorizeSecurityGroup `--SecurityGroupId` sg-bp1xxxxxxxxx `--IpProtocol` tcp `--PortRange` 22/22 `--SourceCidrIp` x.x.x.x/32 `--Priority` 1

请将 sg-bp1xxxxxxxxx 替换为实际安全组 ID,x.x.x.x/32 替换为允许的 IP 地址。

动态 IP 环境注意事项

家庭宽带或移动网络通常使用动态公网 IP,重启路由器后 IP 可能变更,导致无法 SSH 连接。

  • 临时方案:放宽 CIDR 范围,例如将/32 改为/24,但会降低安全性。
  • 长期方案:申请固定公网 IP,或使用 DDNS 配合脚本定期更新安全组规则(需具备 RAM 权限)。
  • 应急恢复:若被锁在门外,需通过控制台 VNC 登录实例修复安全组规则。

怎么验证是否生效

在允许 IP 的机器上执行 ssh user@ip,应能正常发起连接。在未被允许的 IP 机器上执行相同命令,连接会超时或直接被拒绝。也可使用 telnet ip 22 测试端口连通性。

常见坑

1. 把自己锁在门外:添加规则前未确认当前 IP,保存后导致无法远程连接。如遇此情况,需通过控制台 VNC 登录修复。

2. CIDR 格式错误:单个 IP 地址建议写成 x.x.x.x/32,否则可能被识别为无效网段。

3. 多安全组冲突:如果实例关联多个安全组,规则是累加的,需确保所有生效的安全组都进行了相应配置,且无高优先级拒绝规则拦截。

参考来源

阿里云官方文档 - 添加安全组规则 https://help.aliyun.com/document_detail/25477.html

原文链接:https://www.zjcp.cc/ask/11470.html

← 返回列表