aws在aws安全组中打开了哪些端口?

我正在构build基于回合的游戏的后端。 我的经验主要是一盏灯; 我在一个节点端项目上涉足nginx

我刚刚阅读了Twit Pic的Stephen Corona Scaling PHP应用程序。 他build议在Apache上使用nginx服务器。 他说他的ubuntu机器已经打开了32768-61000个端口。

在AWS上,我是否需要修改我的安全性进行分组以允许访问这些端口? 我如何确保nginx充分利用这个configuration?

更新:

我预计我的大部分要求是在443港口,这就是为什么我对他build议开放更多港口的build议感到困惑。

这是他所做的build议

net.ipv4.ip_local_port_range

ip_local_port_range定义系统上可用端口的范围。 在我的股票Ubuntu安装,它被设置为32768-61000。 增加范围以允许更多的连接。 可用端口的数量限制了同时开放连接的数量。 请记住,即使在连接closures之后,它仍然在TIME_WAIT状态下吃一个端口(虽然我们用下面的一些设置来减轻这个影响)。

sysctl-wnet.ipv4.ip_local_port_range="10000 65535" vi /etc/sysctl.d/haproxy-tuning.conf net.ipv4.ip_local_port_range=10000 65535 

在AWS上,我是否需要修改我的安全性进行分组以允许访问这些端口?

对于传入的连接,是的。 对于由您的服务器启动的连接,

默认情况下,所有输出端口都打开,所有input端口(SSH除外)都closures。

传入连接是由位于盒子外部的软件启动的连接。 传出连接是由软件驻留在您的盒子中,例如您的实例上的Linux内核或NGINX。

我如何确保nginx充分利用这个configuration?

当您定义ip_local_port_range时,此设置将定义服务器的传出连接的端口。 您希望打开AWS安全组中的传入连接的这些端口(或者您不需要的任何其他端口)。 但是,您需要打开NGINX应该侦听传入请求的所有端口(通常是标准的HTTP / HTTPS端口,这是专门select的,但绝对不是端口范围)。

除此之外,您应该在VPC(“EC2 VPC”,而不是“EC2 classic”)中运行您的服务器。 如果在“EC2 classic”中运行服务器,则可以想象,内部AWSnetworking上的其他用户可能成功地在端口扫描您的盒子,如果它们碰巧在同一个子网中。 这在AWS上是非法的,并会closures用户帐户。 基于同样的原因,如果您需要在自己的AWS基础架构上运行端口扫描,任何渗透testing或任何远程类似漏洞扫描的任何testing,则必须要求Amazon获得许可,否则您将让自己陷入一些麻烦。 您可以在这里获得漏洞扫描的授权: https : //aws.amazon.com/security/penetration-testing/

如果您需要为应用程序打开端口,则可以在AWS安全组中指定端口(或端口范围)。

创build一个新的规则与所需的范围,即按照您的示例32768-61000。

至于是否需要打开所有这些端口的问题,可以归结为如何构build您的应用程序。 我怀疑如果你在Load Balancer(一个可扩展的解决scheme的常见设置)背后的许多小型EC2的路线,那么许多开放端口的build议可能不适用于此。

AWS负载平衡器可以处理大量stream量,并且不需要打开大量端口。