問題描述
總所周知,Azure App Service服務會預設提供一個 ***.chinacloudsites.cn為字尾的域名,但是該域名由上海藍雲網路科技有限公司備案,僅用於向其客戶提供 Azure 服務。
而如果不進行ICP備案,任何通過公網流量訪問預設域名都會被封堵。因為Azure後臺會根據對預設域名的請求次數和頻率自動掃描,如果被掃中,就會被封堵。所以為了避免這樣的情況,所以需要禁止任何人使用預設域名訪問!
問題分析
方式一:使用IIS的rewrite規則,發現訪問的時預設域名,返回403
修改App Service wwwroot根目錄中的web.config檔案(如沒有,可以直接複製下文內容,新建web.config檔案)
<system.webServer> <rewrite> <rules> <rule name="Disable Azure Domain" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{HTTP_HOST}" pattern="*.chinacloudsites.cn" /> </conditions> <action type="CustomResponse" statusCode="403" /> </rule> </rules> </rewrite> </system.webServer>
修改後效果:
方式二:使用應用程式閘道器,保護後端App Service
1)建立應用程式閘道器,按照教程把閘道器的後端池設定為App Service (又名 Web App)
教程:將應用服務新增為後端池:https://docs.azure.cn/zh-cn/application-gateway/configure-web-app-portal#add-app-service-as-backend-pool
2)回到App Service頁面,進入Network網路設定頁面,在限制訪問中,配置只允許應用程式閘道器的IP地址進行訪問。
注意:此時,自定義域名就不是繫結在App Service上,而是通過A記錄的方式,在DNS伺服器配置上指向應用程式閘道器的IP地址。
驗證效果:
參考資料
將應用服務新增為後端池:https://docs.azure.cn/zh-cn/application-gateway/configure-web-app-portal#add-app-service-as-backend-pool
設定 Azure 應用服務訪問限制:https://docs.azure.cn/zh-cn/app-service/app-service-ip-restrictions