Мы планируем развернуть 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>