Я пытаюсь заблокировать диапазон IP-адресов, с которых в мой блог отправляются тонны спама. Я не могу использовать описанное решение Вот потому что это виртуальный хостинг, и я не могу ничего изменить в конфигурации сервера. У меня есть доступ только к нескольким параметрам в Remote IIS.
Я вижу, что модуль URL Rewrite имеет возможность блокировать запросы, поэтому я попытался использовать его. Мое правило таково в web.config
:
<rule name="BlockSpam" enabled="true" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REMOTE_ADDR}" pattern="10\.0\.146\.23[0-9]" ignoreCase="false" />
</conditions>
<action type="CustomResponse" statusCode="403" />
</rule>
К сожалению, если я помещаю его в конец правил перезаписи, он ничего не блокирует ... а если я помещаю его в начало списка, он блокирует все! Похоже, условие не учитывается.
В пользовательском интерфейсе stopProcessing
опция не видна и есть true
по умолчанию. Изменив его на false
в web.config
похоже, не имеет никакого эффекта.
Я не уверен, что теперь делать ... есть идеи?
Плагин №1 для WP
Wordpress, ознакомьтесь со следующим, вам может понадобиться плагин, а может и нет
Поскольку у вас есть контроль над веб-сервером, установка плагина не должна быть проблемой.
# 2 IIS Web.config
Базовую блокировку IP-адресов можно выполнить с помощью IIS Web.config, ниже приведен пример разрешения всех, кроме блокировки определенных IP-адресов.
<security>
<ipSecurity allowUnlisted="true"> <!-- this line allows everybody, except those listed below -->
<clear/> <!-- removes all upstream restrictions -->
<add ipAddress="83.116.19.53"/> <!-- blocks the specific IP of 83.116.19.53 -->
<add ipAddress="83.116.119.0" subnetMask="255.255.255.0"/> <!--blocks network 83.116.119.0 to 83.116.119.255-->
<add ipAddress="83.116.0.0" subnetMask="255.255.0.0"/> <!--blocks network 83.116.0.0 to 83.116.255.255-->
<add ipAddress="83.0.0.0" subnetMask="255.0.0.0"/> <!--blocks entire /8 network of 83.0.0.0 to 83.255.255.255-->
</ipSecurity>
</security>
Больше информации в этом ссылка на сайт.
# 3 Перезапись IIS Web.config
Найдено следующее Вот, может, ты сможешь попробовать.
<!-- Heading for the XML File -->
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<!-- This is where the rules start, this one will block EVERYTHING on your site with the <match url=".*" /> -->
<rules>
<rule name="Blocked Users" stopProcessing="true">
<match url=".*" />
<conditions>
<!-- This will just go to the 'Bad Ips' rewriteMap below and compare it to the REMOTE_ADDR which is the requesting IP -->
<add input="{Bad Ips:{REMOTE_ADDR}}" pattern="1" />
</conditions>
<!-- Actions can be Custom Rewrite, Redirect, or Just Abort Request, uncomment examples as needed -->
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
<!-- This one will rewrite url to specified file
<action type="Rewrite" url="error.html" appendQueryString="false" /> -->
<!-- This on will redirect to another site
<action type="Redirect" url="http://www.google.com" appendQueryString="false" /> -->
<!-- This one will just Abort
<action type="AbortRequest" /> -->
</rule>
</rules>
<!-- This rewrite Map is where you choose your blocked IP's, values with 1 are blocked, all others are ignored, simple add your keys -->
<rewriteMaps>
<rewriteMap name="Bad Ips">
<!-- This one will use wildcards -->
<add key="108.166.*.*" value="1" />
<!-- This one wil use static IP -->
<add key="12.13.15.16" value="1" />
</rewriteMap>
</rewriteMaps>
</rewrite>
</system.webServer>
</configuration>