在Amazon AWS中设置NAT / WAF

时间:2015-02-18 20:07:45

标签: amazon-web-services amazon-ec2 nat vpc web-application-firewall

我有以下问题:

我想在以下场景中设置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 example这是我当前的配置而没有结果。

正确设置可能缺少什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

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

(AWS VPC Internet Gateway) - >网络

AWS VPC CIDR范围包含:

a)公共/私有子网#1

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

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

1)IGW - 互联网网关

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

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

3a)自制的Ubuntu安装(我的fave发行版),转发iptables和ipv4数据包,或者你可以做到

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

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

4)创建安全组#1 - 为Bastion Server创建安全组。我通常把它叫做#34; 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)创建CIDR范围为VPC 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个路由表 - 一个名为 私有 ,一个名为 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& #34;安全组,然后启动它。启动后,您将选择它并选择网络 - >源/目标。检查并禁用它。这样就可以让所有流量进入漏斗状态。您只需要1个堡垒服务器,我并不是说要做所有流量服务器。

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

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

我经常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检查并确认DISABLE并保存。

这应该会让你的私人网络解决并打击世界,同时仍然受到互联网的保护。

我希望这会有所帮助。

理查德。