繁体   English   中英

AWS VPC - 无法从私有子网中的堡垒主机通过 SSH 连接到不同子网中同一 VPC 中的 EC2 实例

[英]AWS VPC - Cannot SSH from Bastion Host in private subnet to EC2 instance in the same VPC in a different subnet

我希望有人可以帮助我解决以下问题。 我试过四处寻找,但找不到解决我问题的好方法。

我有 VPC 10.0.0.0/16

在 VPC 中,我将其划分为私​​有子网和公共子网。 我每个可用区有 1 个私有子网和 1 个公共子网。

所以我的子网如下: AZ us-east-2a 10.0.1.0/24 - private 10.0.2.0/24 - public

AZ us-east-2b 10.0.3.0/24 - 私人 10.0.4.0/24 - 公共

AZ us-east-2c 10.0.5.0/24 - 私人 10.0.6.0/24 - 公共

所有这些都是为了冗余。 但是现在我正在做一个测试,只在 us-east-2a 中有一个堡垒,我希望它应该能够通过 ssh 进入该 VPC 中的所有其他 ec2 实例,但是这并没有发生,这就是我面临的问题。

我的堡垒主机位于我创建的公共子网中的 us-east-2a 中。 我能够从我的本地机器成功地通过 ssh 进入。

如果我尝试通过 ssh 进入与我的堡垒主机位于同一子网中的 ec2 实例,那么它可以工作,但对于不同子网中的任何其他主机,它不起作用,即使这都在一个 VPC 中。

出于测试目的,我试图从堡垒 ssh 进入的 ec2-instances 的安全组是完全开放的(一旦我发现问题,我将锁定它):

基本上,我允许来自世界上任何端口的所有 tcp 流量。

就我的 NACL 而言 - 我有一个用于我的公共网络的 NACL(并将我的公共子网与它相关联)和一个用于我的私有网络的 NACL(并将我的私有子网与它相关联)。

来自我的公共 nacl 的传出流量允许所有 tcp 流量 0 - 65535

此时入站专用 NACL 允许所有流量和相同的出站流量。 再一次,我会加强这一点,但是当我解决这个问题时,我放宽了这些规则以确保那里没有问题。

我有一个公共和私有路由表分别连接到我的公共和私有子网。

公共路由表有一个目标路由 0.0.0.0/0 到我的 IG,它还有一个 10.0.0.0/16 本地路由,它应该允许访问子网中的任何主机。

私有路由表有一条到本地接口的 10.0.0.0/16 路由和到 NAT 网关的所有其他流量 (0.0.0.0/0)。

It just hangs here and eventually there is a timeout.
[root@ip-10-0-2-177 ec2-user]# ssh ec2-user@10.0.1.242
ssh: connect to host 10.0.1.242 port 22: Connection timed out
[root@ip-10-0-2-177 ec2-user]# ssh -vvvv ec2-user@10.0.1.242
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug2: resolving "10.0.1.242" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to 10.0.1.242 [10.0.1.242] port 22.
debug1: connect to address 10.0.1.242 port 22: Connection timed out
ssh: connect to host 10.0.1.242 port 22: Connection timed out

I can ping this server though:
[root@ip-10-0-2-177 ec2-user]# ping 10.0.1.242
PING 10.0.1.242 (10.0.1.242) 56(84) bytes of data.
64 bytes from 10.0.1.242: icmp_seq=1 ttl=255 time=0.403 ms
64 bytes from 10.0.1.242: icmp_seq=2 ttl=255 time=0.461 ms
64 bytes from 10.0.1.242: icmp_seq=3 ttl=255 time=0.479 ms
64 bytes from 10.0.1.242: icmp_seq=4 ttl=255 time=0.439 ms
^C
--- 10.0.1.242 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3061ms
rtt min/avg/max/mdev = 0.403/0.445/0.479/0.035 ms

任何帮助将不胜感激,因为我已经查看了我能想到的所有内容,但我不确定问题出在哪里。

您可以 ping 实例但不能 SSH 到它的事实意味着您的路由表和一般网络设置正确。

那留下:

  • 安全组
  • 国家知识产权局

由于您的安全组是“完全开放的”,因此不会区分流量类型(例如 SSH 与 Ping)。 因此,这不太可能是问题。

通常,除非您有非常特殊的需要(例如,创建 DMZ),否则您应该将 NACL 保留为其默认值“全部允许”。

此外,NACL 仅适用于进入/退出子网的流量。 鉴于同一子网中的目标实例正在工作,但其他子网中的实例不工作,它再次指出您的 NACL 是问题的原因。

建议:将 NACL 恢复为正常的默认设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM