Возможно ли сделать часть сайта на IIS доступной только с локального хоста?

У нас есть веб-сервер с IIS. Мы хотели бы запустить, возможно, общий блог или что-то, чтобы отслеживать информацию. Из-за проблем с безопасностью мы хотели бы, чтобы эта часть была доступна только для просмотра с локального хоста, чтобы люди могли удалять ее, чтобы использовать ее.

Итак, чтобы повторить мой вопрос, может ли часть веб-сайта быть видимой только с локального хоста?

Ответы

Ответ 1

В IIS6 вы можете открыть свойства для Интернета и щелкнуть вкладку безопасности каталога. Нажмите кнопку в середине вкладки для редактирования ограничений IP и домена. На этой вкладке установите все компьютеры как отрицаемые, затем добавьте исключение для IP-адресов, которые вы хотите разрешить для доступа к этому сайту.

Я не уверен, как настроить это на IIS7. Я посмотрел, но не смог найти его, если найду его, я отредактирую этот ответ.

Изменить: Настройка IIS7

  • Джош

Ответ 2

Для некоторых, кто делает это в IIS 8/Windows 2012

1) В Server Manager перейдите к Manage, Add Roles and Features, Next, Next (до Server Roles), прокрутите вниз до Web Server (IIS), разверните эту строку, затем разверните Web Server и, наконец, разверните Security, Убедитесь, что установлены Ограничения IP и домена.

2) В IIS Manager перейдите к папке, которую вы хотите защитить, и щелкните левой кнопкой мыши по ней. В Features View этой папки выберите Ограничения IP и домена В Actions выберите Edit Feature Settings. Измените 'Access for unspecified clients:' на 'Deny', затем OK.

3) Наконец перейдите к 'Add Allow Entry' В меню Action. Введите конкретный IP-адрес вашего сервера.

Теперь только запросы, поступающие с вашего сервера, будут иметь доступ. Или любой сервер, который использует этот IP-адрес. Таким образом, в небольшой сети офис может передавать IP-адрес между всеми ПК в этих офисах, поэтому все эти ПК могут получить доступ к этой папке.

И последнее, но не менее важно помнить, что если ваша сеть имеет динамический IP-адрес, то если этот IP-адрес изменится, вы откроете свою папку администратора блога тем, кто сейчас использует этот IP-адрес. Кроме того, каждый на этом новом IP-адресе потеряет доступ к вашей папке...

Ответ 3

Если кто-то захочет сделать это в командной строке, это, похоже, работает на IIS 7 +

%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /+"[ipAddress='0',allowed='False']" /commit:apphost
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /+"[ipAddress='127.0.0.1',allowed='True']" /commit:apphost

Reference

Я изначально хотел сделать это в web.config, чтобы облегчить распространение, и это выглядело следующим образом:

<security>
    <ipSecurity allowUnlisted="false">    <!-- this line blocks everybody, except those listed below -->                
        <clear/> <!-- removes all upstream restrictions -->
        <add ipAddress="127.0.0.1" allowed="true"/>    <!-- allow requests from the local machine -->
    </ipSecurity>
</security>

но поскольку вам нужно разблокировать функцию в центральной конфигурации IIS, в любом случае не было преимуществ перед тем, как сделать изменение напрямую, используя первые команды.

Ответ 4

В зависимости от того, что вы хотите, если неавторизованный пользователь пытается его посетить.

Вы можете попытаться настроить конкретный раздел как виртуальный каталог, а затем запретить просмотр анонимным пользователям. Однако им будет предложено ввести логин, и если они смогут войти в систему, они смогут увидеть его.

Ответ 5

Судя по параметрам, присутствующим в MMC IIS, вы также можете получить доступ к виртуальному каталогу определенными IP-диапазонами. Вы можете заблокировать всех, кроме 127.0.0.1. Однако я этого не пробовал.

Ответ 6

Вы можете предоставить или запретить доступ к сайту или папке с определенных IP-адресов на сайт или папку. В IIS перейдите в свойства для данного сайта или папки.

(1) Нажмите вкладку "Безопасность в диалоге"

(2) Нажмите "Изменить" в рамке "Ограничение IP-адреса и доменного имени".

(3) Нажмите "Запрещенный доступ" (это сообщает IIS блокировать каждый IP-адрес, кроме тех, которые вы перечисляете)

(4) Нажмите "Добавить..."

(5) Нажмите "Одиночный компьютер"

(6) Введите 127.0.0.1 (IP-адрес локального хоста)

Обратите внимание, что лучше использовать IP здесь (как я описал), а не имя домена, потому что домены можно легко подделать с помощью файла hosts.

Ответ 7

Я согласен с рекомендациями использовать IIS "Безопасность каталогов" для блокировки всего IP-адреса, кроме 127.0.0.1 (localhost).

Тем не менее, мне интересно, как эта стратегия, требующая от пользователей удаленного доступа, может быть больше защищена. Не было бы более безопасным (а также намного проще) использовать стандартные механизмы аутентификации IIS, а не управлять ролями Windows и разрешениями на серверной машине?

Ответ 8

Вы также можете использовать привязки вместо ограничений IP. Если вы редактируете привязки для веб-сайта, к которому вы хотите ограничить доступ, вы можете выбрать, какой IP-адрес доступен на сайте. Если вы установите IP-адрес на 127.0.0.1, тогда сайт будет отвечать только на этот IP-адрес, и этот IP-адрес, конечно, будет работать только локально на машине.

Я тестировал это с помощью IIS 8.5.

Ответ 9

Вы можете просто добавить этот .NET в начало страницы.

string MyWebServerName = currentContext.Request.ServerVariables["SERVER_NAME"];

if ( MyWebServerName == "127.0.0.1" || MyWebServerName == "localhost" )
{
  // the user is local 
}
else
{
  // the user is NOT local
}