如何在Azure Front Door中永久阻止80端口的外部访问?
如何阻止Azure Front Door的80端口外部访问?
我创建了带有默认配置Azure WAF的Standard层Azure Front Door。执行以下测试命令:
Test-NetConnection -ComputerName "<frontdoorurl>-dev-xxxxxx.z01.azurefd.net" -Port 80
测试结果如下:
ComputerName : <frontdoorurl>-dev-xxxxxx.z01.azurefd.net RemoteAddress : xxxx:xxx:xx:x::xx RemotePort : 80 InterfaceAlias : Ethernet 7 SourceAddress : xxxx:xxxx:xx:xxx:xxxx:xxxx:xxx:xxxx TcpTestSucceeded : True
测试结果显示80端口访问成功,但我无法永久阻止该访问——尝试设置服务器端口等于80的规则集,却找不到能全局阻止80端口访问的合适动作。请问如何永久阻止该访问,使Test-NetConnection的结果为False?或者是否无法阻止外部对80端口的访问?
附:曾询问ChatGPT,它建议使用Network Security Group(NSG)阻止80端口,但在最新版Azure Portal的Front Door设置中并无此选项。
解决方案
1. 通过路由规则禁用HTTP协议(80端口)
Azure Front Door Standard层支持直接在路由规则中限制接受的协议:
- 登录Azure Portal,进入目标Front Door资源
- 导航至路由规则页面,找到所有关联80端口的路由规则
- 编辑目标规则,在接受的协议选项中仅保留
HTTPS,移除HTTP - 保存规则后,Front Door将不再监听80端口的请求,外部连接测试会直接失败
2. 配置Azure WAF自定义规则阻止80端口流量
如果需要通过WAF实现精准拦截,可创建自定义规则:
- 进入Front Door关联的WAF策略页面
- 选择自定义规则,点击添加自定义规则
- 设置规则名称,规则类型选择匹配规则
- 在匹配条件中,选择
RequestProtocol,运算符设为Equals,值输入HTTP - 动作选择阻止,设置合适的优先级(确保该规则优先于其他允许类规则)
- 保存规则后,所有80端口的HTTP请求会被WAF直接拦截
关于NSG的说明
Azure Front Door是边缘分布式PaaS服务,不隶属于虚拟网络,因此无法直接关联NSG。NSG仅适用于虚拟网络内的资源(如VM、App Service环境),ChatGPT的建议并不适用于Front Door场景。
验证修改
完成配置后,重新执行测试命令:
Test-NetConnection -ComputerName "<frontdoorurl>-dev-xxxxxx.z01.azurefd.net" -Port 80
此时TcpTestSucceeded字段应返回False。
内容的提问来源于stack exchange,提问作者ArnabSaha
相关产品推荐
相关产品推荐

