Azure VM关闭防火墙仍拦截流量 无法RDP连接故障排查
已完成排查动作
- 串行控制台验证RDP服务正常运行,监听
3389端口符合预期 - 串行控制台使用本地管理员账号登录后,禁用域、公网、专用三类防火墙配置文件,故障未消除;问题虚拟机命名为
vm0,多次重启后问题依旧 - 同一子网创建测试虚拟机
vm1,可正常RDP连接vm1,但vm1无法RDP连通vm0,排除上层网络链路故障 - 同一子网创建测试虚拟机
vm2,可正常RDP连接vm2,vm2可正常RDP连通vm1但无法连通vm0;三台虚拟机绑定相同NSG,排除NSG配置异常 - 在
vm0串行控制台操作,关闭vm2防火墙后,vm0可正常ping通vm2,也可通过telnet连通vm2的RDP端口,确认vm0出站流量无异常 - 排查发现
logfiles/firewall/publicpw.log日志持续记录DROP拦截流量条目,但系统防火墙状态显示为已关闭 - 重启NLA服务后故障仍未解决
可能的入站流量拦截原因及排查方向
第三方安全组件拦截
系统防火墙显示关闭但持续生成DROP日志,首先排查第三方安全类程序:包括Azure Defender for Servers代理、第三方EDR、杀毒软件、主机入侵防护软件。这类软件自带独立的网络过滤驱动,不受Windows自带防火墙开关控制,长时间关机重启后容易出现规则更新异常、驱动加载错乱,直接在网络层拦截入站3389流量。
排查操作:
执行netsh winsock show catalog查看是否存在非微软来源的Winsock LSP过滤项
执行driverquery /v | findstr /i "sec filter av defend"枚举运行中的安全类驱动
临时停止所有第三方安全服务后测试RDP连通性。WFP底层残留规则拦截
注意禁用三类防火墙配置文件不会清空Windows过滤平台(WFP)的所有底层规则,之前配置的IPsec策略、RDP IP访问限制、组策略下发的防火墙规则、系统更新生成的临时拦截规则,都可能在防火墙关闭状态下继续生效。
排查操作:
执行netsh advfirewall show allprofiles二次确认所有防火墙配置文件状态确实为关闭
执行netsh wfp show filters导出全量WFP规则,打开生成的filters.xml搜索3389、DROP关键词,定位是否存在针对入站3389端口的拦截条目
打开本地组策略编辑器,检查计算机配置-Windows设置-安全设置下的IP安全策略、高级防火墙规则,确认是否有域级组策略在重启后重新应用,生成了RDP拦截规则。RDP服务自身配置异常
不要仅验证服务运行状态、端口监听状态,还要检查以下配置:
执行netstat -ano | findstr :3389确认3389端口绑定在0.0.0.0地址上,如果仅绑定127.0.0.1,外部流量根本无法触达RDP服务
检查RDP-Tcp连接的权限配置,确认不存在针对网络访问账号的全局拒绝权限
虽然之前重启过NLA服务,还是要在注册表路径HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp下,把UserAuthentication值改为0,彻底禁用NLA后测试,排除证书过期、域信任异常导致的握手阶段强制断连。系统TCP/IP栈配置损坏
长时间关机重启后可能出现TCP/IP栈配置错乱、静态路由残留、ARP表异常的问题:
执行arp -a检查同子网ARP条目,确认不存在IP、MAC地址冲突
执行route print检查路由表,确认没有异常静态路由把入站RDP流量指向空接口或错误下一跳
执行netsh int ip reset、netsh winsock reset重置TCP/IP栈和Winsock目录,重启后测试连通性。Azure平台侧宿主机规则异常
如果上述虚拟机内部排查全部无异常,直接在Azure门户操作:解绑vm0当前的网卡后重新绑定,或者执行虚拟机调整大小操作(会自动将VM迁移到其他健康的集群节点),排除所在宿主机的SDN流表残留、平台侧网络规则异常导致的单VM入站拦截,这类平台侧故障在同子网其他VM正常、单VM入站不通的场景中出现概率不低。
内容的提问来源于stack exchange,提问作者user3739312

