EC2 VPC实例 - 端口已过滤

时间:2015-09-16 13:07:30

标签: networking tcp amazon-ec2 ports amazon-vpc

我已使用默认安全组配置我的服务器,该安全组具有以下入站规则:

| Type | Protocol | Port Range | Source |
| All TCP | TCP | 0-65535 | 0.0.0.0/0 |
| All UDP | UDP | 0-65535 | 0.0.0.0/0|

根据这些规则,netstat显示以下输出:

netstat -atn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:1113            0.0.0.0:*               LISTEN     
tcp        0      0 10.0.1.31:2113          0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:2113          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:11300           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:11211           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 :::5432                 :::*                    LISTEN     
tcp6       0      0 :::3306                 :::*                    LISTEN     
tcp6       0      0 :::6379                 :::*                    LISTEN  

因此,从理论上讲,我应该可以从任何IP地址使用TCP连接到端口1113。但这不起作用,IP地址显示为已过滤,您可以在以下输出中看到:

唯一似乎正常(打开且未过滤)的端口是22& 80.这是我用nmap测试它时得到的输出:

PORT     STATE    SERVICE
22/tcp   open     ssh
80/tcp   open     http
1113/tcp filtered ltp-deepspace
2113/tcp filtered unknown
3306/tcp filtered mysql
6379/tcp filtered unknown

我甚至尝试为我的IP和端口1113添加自定义入站规则,但结果是一样的。

我怀疑某些防火墙在我的实例中阻止了这些PORTS上的流量,但我不确定如何检查。

需要注意的一点是,此实例位于Amazon VPC中。但是,此实例的网络ACL具有以下入站规则,该规则应允许来自所有端口的收入通信:

|Rule # | Type | Protocol | Port Range | Source | Allow / Deny |
| 100 | ALL Traffic | ALL | ALL | 0.0.0.0/0 |ALLOW |

关于这可能是什么问题的任何想法?

非常感谢你的帮助!

3 个答案:

答案 0 :(得分:0)

对于那些寻求答案的人。这是因为Linux系统中还有一个额外的防火墙。例如,如果您使用的是Ubuntu:sudo ufw disable,则可能需要这样做。

有关更多信息,请参见此link

答案 1 :(得分:0)

[我知道这是一篇旧文章,但直到今天我也被同一件事咬住,并遇到了这个问题。]

当您从新的AMI启动新的EC2实例时,似乎存在将本地防火墙设置为过滤除SSH之外的所有内容的情况。现在,这可能是较新的AMI的默认值,或者诸如fail2ban之类的工作之类的东西。症状就如您所描述的那样-您具有面向公众的IP地址(直接连接或通过弹性IP),具有允许的安全组,否则一切都很好。来自另一台正在运行的服务器的nmap(请注意,AWS不希望人们从EC2实例甚至在您自己的服务器上运行nmap)都将显示端口22已打开,但其他所有内容均已过滤。

TLDR;快速刷新可能很容易,以便刷新规则:

iptables -F

理想情况下,请首先运行此命令以列出违规规则:

iptables -L

但是您应该对为什么以这种方式进行设置有所了解。可能有诸如firewalld正在运行之类的东西,这些规则将与规则混为一谈,您可以选择配置或禁用它。这些将告诉您它是否正在运行:

firewall-cmd --status
firewall-cmd --get-services

当然还有其他防火墙服务。

一旦您认为正确,请确保重新启动服务器以确保一切正常,而不是恢复到Catatonic状态(服务在说话)。

答案 2 :(得分:0)

我知道这是旧帖子,但我认为这也可能对其他人有所帮助。我在运行RHEL 7.6时遇到此问题。我必须重新启用防火墙,并在防火墙规则中添加端口。然后它像魅力一样工作。