AWS Security Group显示' UDP端口打开'虽然它应该否认?

时间:2016-04-18 16:08:17

标签: amazon-web-services udp port aws-security-group

安全组'显示UDP端口已打开'虽然它应该拒绝连接。

我有一个实例vpn2-a

vpn2-a i-xxxxxxxxx 11.11.11.11

我想限制对该实例的UDP端口1194的访问,以接受来自以下私有IP地址的连接:

    55.55.55.55/32, 66.66.66.66/32

我已经创建了SG并附加到实例vpn2-a

vpn_1_2-vpn12-security-group
1194    udp 55.55.55.55/32, 66.66.66.66/32

1。测试它是否正常工作:

我确实执行了一些打开的端口'从 允许 vpn1-a 55.55.55.55

进行测试
vpn1-a$ $ nc -vv 11.11.11.11 1194 -u
Connection to 11.11.11.11 1194 port [udp/openvpn] succeeded!

很好,现在让我们看看,端口是否被阻止随机IP

RANDOM_HOST$ nc -vv 11.11.11.11 1194 -u
Connection to 11.11.11.11 1194 port [udp/openvpn] succeeded!

^^如何????它假设是否认!!! 请解释一下

2。 Debbuging:

这让我很困惑,但我确实做了一些测试:

在vpn2-a实例:

vpn2-a#  /etc/init.d/openvpn stop

正如您所看到的 - 没有任何东西正在侦听端口1194

vpn2-a## netstat -unpa
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp        0      0 0.0.0.0:747             0.0.0.0:*                           7356/rpcbind
udp        0      0 0.0.0.0:31885           0.0.0.0:*                           587/dhclient
udp        0      0 0.0.0.0:68              0.0.0.0:*                           587/dhclient
udp        0      0 0.0.0.0:111             0.0.0.0:*                           7356/rpcbind
udp        0      0 10.118.0.152:123        0.0.0.0:*                           5434/ntpd
udp        0      0 127.0.0.1:123           0.0.0.0:*                           5434/ntpd
udp        0      0 0.0.0.0:123             0.0.0.0:*                           5434/ntpd
udp6       0      0 :::747                  :::*                                7356/rpcbind
udp6       0      0 :::1082                 :::*                                587/dhclient
udp6       0      0 :::111                  :::*                                7356/rpcbind
udp6       0      0 fe80::41:123        :::*                                5434/ntpd
udp6       0      0 ::1:123                 :::*                                5434/ntpd
udp6       0      0 :::123                  :::*                                5434/ntpd

现在没有,来自随机IP的测试

RANDOM_HOST$ nc -vv 11.11.11.11 1194 -u
Connection to 11.11.11.11 1194 port [udp/openvpn] succeeded!

来自vpn1-a 55.55.55.55

vpn1-a$ $ nc -vv 11.11.11.11 1194 -u
[nothing]

所以 - 我只能猜测,1194连接在AWS"防火墙代理"以某种方式打开,先打开端口,然后检查安全组? 请提供解释或修复SG的方法,使其在安全组中定义时显示“Port Closed'”。

1 个答案:

答案 0 :(得分:3)

原因很简单:UDP是无连接的。没有确认,所以“成功”和进入黑洞的数据包是无法区分的。

如果您将UDP数据包发送到目的地,并且主动被拒绝或无法发布,则显示即可成功。

这可能是一种错觉。 UDP没有指示实际成功的机制,因此succeeded!消息只是告诉您没有检测到活动失败。

AWS中的安全组不会主动拒绝未经授权的流量 - 他们默默地丢弃它。如果我尝试发送ping(ICMP回应请求)或与您的实例建立TCP连接,如果您的安全组不允许,我会收到“请求超时”或“连接超时”。但是使用UDP,发送方无法检测数据包是转发还是丢弃。

简而言之,您所看到的是正常行为,并不意味着实际上允许流量通过。您应该能够在您尝试访问的计算机上使用数据包嗅探器进行确认...流量被阻止然后您将看不到它,除非您通过安全组允许它。

但请注意,安全组是有状态的。如果已经允许出站流量,则实际上不必配置传入的UDP映射以在固定的点对点配置上运行openvpn,因为当服务器A将UDP数据包发送到目标服务器B上的端口1194时,网络基础结构将“记住”这几分钟(直到没有流量),如果服务器B使用与其联系的相同UDP端口响应服务器A,网络允许通过,假设A不会将流量发送到B,除非回复应该被授权... DNS查询响应是此类行为的常见示例...因此,如果UDP上的点对点openvpn工作,即使没有入站安全组规则允许它,这是也预期的行为,并不意味着安全组没有做到这一点。