【问题标题】:Why is it a Bad Idea To Allow Any IP Address to Access My EC2 Instance?为什么允许任何 IP 地址访问我的 EC2 实例是个坏主意?
【发布时间】:2018-04-02 21:43:51
【问题描述】:

为什么允许任何 IP 地址在组证券中访问我的 EC2 实例是一个坏主意,我会做些什么来避免这种情况,如果用户在 EC2 服务器上运行 nodejs webapp 时将如何访问它?

【问题讨论】:

  • 减少你的attack surface就好了。
  • 还有成本。这将有助于减少您需要支付的流量。
  • 大声笑,我因为提出一个简单的问题而被否决了。

标签: amazon-web-services web service amazon


【解决方案1】:

显然,对于很多用例,您将不得不允许任何 IP 地址连接到它 - 例如,如果您正在运行一个公共网站,您将允许来自任何 IP 地址的流量到端口 80(和 443如果是 SSL)。

您不想做的是允许来自任何 IP 的流量到其他人没有业务使用的端口 - 例如,如果您在其上运行 SQL Server,您不希望允许全球访问端口1433.

如果您这样做,我向您保证,在很短的时间内,您会在日志中看到成千上万次尝试登录到您的服务器 - 他们将 24x7x365 运行 24x7x365 尝试输入密码 - 这适用于任何服务在任何端口上,这就是为什么您要完全阻止根本不使用的端口,并且只允许需要连接的用户使用来自已知 IP 地址的流量。

【讨论】:

    【解决方案2】:

    我只允许通过 iptables 连接 HTTP(端口 80)和 HTTPS(端口 443)。

    您只能为自己的 IP 添加 SSH(端口 22)访问。

    我使用初始化脚本,但可能还有一种方法可以通过安全组的 Amazon Web 表单来实现。

    #! /bin/sh
    
    iptables -P INPUT DROP
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
    iptables -A INPUT -s 1.2.3.4/32 -p tcp -m tcp --dport 22 -j ACCEPT
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      • 2015-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-16
      相关资源
      最近更新 更多