You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置仅允许通过bastion堡垒机访问AWS EC2实例

配置Linux EC2实例仅允许堡垒机SSH访问的操作步骤

第一步:修改EC2实例关联的安全组规则(优先级最高,必选配置)

安全组是AWS EC2的实例级网络防火墙,通过调整规则即可从网络层面拦截非堡垒机的SSH访问请求:

  • 登录AWS控制台,进入目标EC2实例详情页,切换到「安全」选项卡,点击关联的安全组ID进入配置页
  • 选择「入站规则」标签页,点击「编辑入站规则」,删除所有源地址为0.0.0.0/0、::/0或其他非堡垒机IP的22端口(SSH)允许规则
  • 新增一条入站规则:
    • 类型:SSH
    • 端口范围:22
    • 源:填写堡垒机的公网IP(跨VPC/堡垒机通过公网访问EC2场景)或私有IP(同VPC内网互通场景),格式为x.x.x.x/32
    • 描述可填写「仅允许堡垒机SSH访问」
  • 保存规则后立即生效,此时本地直接SSH访问EC2会被拦截,仅堡垒机可发起SSH连接。

第二步:(可选)EC2实例内部SSH服务加固

如需在系统层面再加一层校验,避免安全组误配置导致的访问泄露,可修改SSH服务配置:

  • 登录EC2实例,编辑SSH配置文件:sudo vi /etc/ssh/sshd_config
  • 在文件末尾添加如下规则(替换为实际的EC2登录用户名、堡垒机IP):
AllowUsers ec2-user@1.2.3.4

上述配置表示仅允许ec2-user用户从1.2.3.4(堡垒机IP)发起SSH登录,其他所有用户和来源IP的请求都会被SSH服务直接拒绝。

  • 验证配置合法性:sudo sshd -t,无报错则表示配置正确
  • 重启SSH服务生效:
    • CentOS/RHEL 系列:sudo systemctl restart sshd
    • Debian/Ubuntu 系列:sudo systemctl restart ssh

第三步:(可选)iptables规则第三层防护

对安全要求极高的场景,可在实例内部配置iptables规则做第三层访问限制:

  • 清空原有22端口的允许规则:sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
  • 新增仅允许堡垒机IP访问22端口的规则:sudo iptables -A INPUT -p tcp -s 1.2.3.4/32 --dport 22 -j ACCEPT
  • 拒绝其他所有IP访问22端口:sudo iptables -A INPUT -p tcp --dport 22 -j DROP
  • 保存规则避免实例重启后失效:
    • CentOS/RHEL 系列:sudo service iptables save
    • Debian/Ubuntu 系列:先安装iptables-persistent包,再执行sudo netfilter-persistent save

注意:修改SSH配置或iptables规则时,请保持至少一个已登录EC2的SSH会话不关闭,新开终端测试登录是否符合预期,确认配置无误后再关闭原有会话,避免配置错误导致无法连接实例。

内容的提问来源于stack exchange,提问作者Luca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:54:04