1

我有以下问题:

我想在以下场景中设置 NAT 或 WAF:

Internet->VPC->IGW->Rotuer->Subnet1->EB1
                          ->Subnet2->EB2
                          ->Subnet3->EB3

简而言之,我的场景是:VPC、Internet 网关、路由表(默认来自 VPC)和带有 EB 的子网。

我尝试了一些步骤,我必须创建另一个路由表,在第二个路由表中将 NAT instanc 作为目标设置为 0.0.0.0/0 并将 EB 子网附加到这个路由表;将 NAT 子网附加到主路由表,这似乎不起作用。

尝试了Amazon AWS scneario 1 示例,这是我当前的配置,但没有结果。

正确设置它可能缺少什么?

提前致谢。

4

1 回答 1

0

我并不完全清楚您想要实现什么,但我认为您希望您的子网访问 Internet,并阻止 Internet 直接访问驻留在您的私有子网中的实例。

很难以这种方式可视化您的工作流程。但我想我遵循:

(AWS VPC 互联网网关)--> 互联网

AWS VPC CIDR 范围包含:

a) 公有/私有子网#1

b) 私有子网#2。私有子网 #3.. 等

实现的典型设置需要以下亚马逊实体:

1) IGW - 互联网网关

2) VPC 的 CIDR 范围是你想要的大小。对于要保护的 VM,在仍然可以访问 Internet 的情况下,您需要为它们分配子网。子网必须在 VPC CIDR 范围内。但是不要使子网与 VPC 的 CIDR 相同,如果您这样做,那么它实质上会使您的私有子网成为公共可访问的子网,因为您已经使用了所有 IP 范围,在这种情况下,您必须将其分配给IGW 这不是你想要的。

3) 堡垒服务器 - 什么是堡垒服务器?这是您故意放置的服务器,用于接收 Internet 传入请求,从而保护您的私有子网。这可以是充当路由器或 NAT 的服务器的形式。这可以是

3a)Ubuntu(我最喜欢的发行版)的自制安装,转发了 iptables 和 ipv4 数据包,或者你可以这样做

3b) 亚马逊 VPC 中的 Nat 网关,或

3c) 可以在 AMI 社区中找到的 vpc-nat AMI。所以只要选择你想要的方法。

4) 创建安全组 #1 - 为堡垒服务器创建一个安全组。我通常将其称为“NAT SG”,并根据您正在运行的任何内容确定您的出站端口需求,有入站 0.0.0.0/0 和出站到 TCP 80、443、22 等。

5) 安全组#2 - 为私有子网创建一个安全组。这适用于允许子网内的所有流量并将所有出站非私有数据集中到 0.0.0.0/0 到堡垒服务器的流量。

要实现这一点,您需要做一个简化的概念操作顺序:

1)创建一个具有 CIDR 范围的 VPC(比如说 10.0.0.0/16)

1.5)创建一个互联网网关并将其分配给VPC(10.0.0.0/16)

2)创建具有在 VPC CIDR 中的 CIDR 范围(10.0.1.0/24、10.0.2.0/24、10.0.2.0/24 等)的私有子网。

3)创建一个公共子网,其中将包含堡垒服务器或您希望 Internet 看到的任何内容。(10.0.254.0/24(这是巨大的,允许子网中有 256 个服务器。您很可能只有堡垒服务器只消耗 1 个服务器,因此它可能会自动分配 10.0.254.2)

4)创建 2 个路由表- 一个称为private,一个称为public。对于私有路由表,编辑,然后为 0.0.0.0/0 添加一条新路由到堡垒服务器 ID。对于公共路由表,编辑 ,然后将 0.0.0.0/0 的新路由添加到 Internet 网关 ID(参见步骤 1.5)

5)启动您自己的服务器并将其设置为 NAT 路由器(如果您知道如何操作),或者启动 vpc-nat AMI (amzn-ami-vpc-nat-hvm-2016.03.0.x86_64 -ebs - ami-311a1a5b)是最新的,所以使用它。创建实例时,选择公有子网、VPC,并为其分配公有 IP(不要等待,给它一个弹性 IP,您将需要公有 IP),选择“NAT SG”安全组,然后然后启动它。启动后,您将选择它并选择 Network --> src/dest。检查并禁用它。这允许所有流量流入。您只需要 1 个堡垒服务器,我并不是说要全部 3 个。

6)启动您想要私有的 AMI 或自定义 VM,并位于私有子网(10.0.1.0/24、10.0.2.0/24、10.0.3.0/24...等)内。并为其分配一个私有安全组和相同的 VPC。如果是 linux 或 windows,您可能需要生成一个新的私钥 (pem) 以供将来登录。使用 puttygen 将 pem 转换为 ppk。

测试,以确保您有互联网连接: 堡垒服务器必须能够到达世界私有子网中的虚拟机实例(如果路由正确完成),应该通过将数据包流向 0.0.0.0/ 来到达互联网0 规则通过堡垒服务器,并且堡垒服务器将允许解析并流向互联网以进行出站请求。

我通常对 google 进行 ping 操作,因为它们不会阻止 ICMP 请求并且非常可靠。所以 ssh 进入堡垒服务器,ping google.com。如果您获得了 IP 但它无法获得回复,则意味着您的 Internet 网关或安全组没有所有出站流量 0.0.0.0/0,因此请仔细检查。

现在 SSH 进入私有服务器(假设是 linux)并 ping 堡垒服务器(10.0.254.X),你应该能够得到响应。这是一个好兆头。现在 ping google.com 看看你是否得到回复。我希望你会。如果您获得了 DNS 解析,但它在获取任何响应时卡住了,那么您忘记在堡垒服务器上禁用 Src/Dest 检查。然后转到您的 ec2 控制台,找到堡垒服务器并选择,然后选择操作、网络,然后选择 src/dest 检查并确认禁用并保存。

这应该使您的专用网络能够解决并影响世界,同时仍然受到互联网的保护。

我希望这有帮助。

理查德。

于 2016-05-27T22:02:35.713 回答