Мы планируем развернуть CloudFlare в качестве WAF для нашего сайта. Одно из требований - ограничить доступ к сайту из-за пределов Северной Америки. К счастью, CloudFlare поддерживает GeoLocation и маркирует запросы к исходному серверу заголовком местоположения.
Теперь, однако, мне нужно выяснить, как занести страны в белый список. В идеале я хотел бы указать CA
и US
или что-то еще в качестве допустимых значений и отклонить все остальное, но в IIS, похоже, он поддерживает только черный список.
Есть ли там способ сделать это только в IIS, или кто-нибудь знает о третьем модуле, который это делает?
Можно использовать Модуль перезаписи IIS.
Используйте правило для соответствия всем URL и используйте условие для проверки заголовка http, введенного CloudFlare, проверки значения страны и отклонения всех запросов не из США или Канады.
Пример правила будет выглядеть следующим образом:
<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-IPC country
- это название заголовка, введенного CloudFlare.