
Я знаю, что существуют возможности запретить доступ ко всему серверу, но я хочу сделать это для конкретного веб-сайта.
Я хочу убедиться, что для использования сайта доступно всего несколько IP-адресов.
решение1
Можно ли запретить диапазон IP-адресов для определенного веб-сайта в IIS 7.0?
Да, это можно сделать для всего сайта или даже для подкаталога.
Для включения этой функции может потребоваться установить службу роли сервера IP-безопасности Windows (или компонент Windows, если вы не используете Windows Server) — по умолчанию она не установлена.
Как включить эту функцию, смотрите по этой ссылке: https://www.iis.net/configreference/system.webserver/security/ipsecurity
Ссылка также объясняет, как сделать то, что вам нужно для конкретного веб-сайта, используя графический интерфейс.
Но я предпочитаю использовать web.config
файл. Поместите этот файл в корневой каталог соответствующего сайта или для ограничений подкаталогов поместите web.config
в этот подкаталог.
<security>
<ipSecurity allowUnlisted="false">
<clear/>
<!-- allow single IP - e.g. localhost -->
<add ipAddress="127.0.0.1" allowed="true"/>
<!-- allow range -->
<add ipAddress="10.10.10.0" subnetMask="255.255.255.0" allowed="true"/>
</ipSecurity>
</security>
Приведенный выше пример содержит allowUnlisted="false"
и, следовательно, запрещает доступ ко всем IP-адресам, кроме специально добавленных. Директива <clear/>
предотвращает наследование ipSecurity
настроек с более высокого уровня.