安全组'显示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'”。
答案 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工作,即使没有入站安全组规则允许它,这是也预期的行为,并不意味着安全组没有做到这一点。