Você pode usar o Módulo de reconfiguração do IIS .
Use uma regra para corresponder a todos os URLs e use uma condição para verificar o cabeçalho HTTP injetado pelo CloudFlare, verificar o valor do país e rejeitar todas as solicitações que não sejam dos EUA ou do Canadá.
Uma regra de amostra seria algo assim:
<rewrite>
<rules>
<rule name="RequestBlockingRule1" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_CF_IPCOUNTRY}" pattern="^CA|US$" negate="true" />
</conditions>
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="Using this site from your location is not supported." />
</rule>
</rules>
</rewrite>
CF-IPCountry
seria o nome de o cabeçalho injetado pela CloudFlare.