AWS ACLs Epheremral Ports释义及3000端口响应阻断配置问题咨询
解答
临时端口(Ephemeral Ports)概念
临时端口是终端设备发起网络连接时,操作系统动态分配的本地源端口,取值范围通常为1024~65535。每次新建连接时系统会随机分配一个未被占用的端口作为通信的源端口,连接释放后该端口可被回收复用。
比如你用浏览器访问服务器的3000端口时,浏览器侧的通信端口就是随机分配的临时端口(例如49215),报文结构为:
- 入站请求报文:源IP是浏览器IP、源端口49215,目标IP是服务器IP、目标端口3000
- 出站响应报文:源IP是服务器IP、源端口3000,目标IP是浏览器IP、目标端口49215
当前配置无效的原因
AWS NACL(网络访问控制列表)是无状态的访问控制组件,规则仅根据报文的五元组(源IP、源端口、目标IP、目标端口、协议)匹配,不会自动关联入站请求和对应的出站响应。
你配置的出站规则拒绝3000端口的流量,默认匹配的是目标端口为3000的出站报文,但实际服务器返回的响应报文的目标端口是客户端的临时端口,源端口才是3000,所以你的拒绝规则不会命中响应流量,响应报文会被后续的默认允许出站规则放行,因此浏览器能正常拿到响应。
实现需求的正确配置方法
要实现允许3000端口入站、同时阻断对应响应返回的效果,你只需要调整NACL的出站规则:
- 新增一条高优先级的出站拒绝规则,匹配条件设置为
协议TCP,源端口3000,目标地址0.0.0.0/0 - 确保这条拒绝规则的优先级高于允许所有出站流量的规则
调整后,服务器返回的、源端口为3000的响应报文会命中这条拒绝规则,直接被丢弃,就能达到你要的效果。
内容的提问来源于stack exchange,提问作者Kanna'n Hassouna
相关产品推荐
相关产品推荐

