Можно ли сделать часть сайта в IIS доступной для просмотра только с localhost?

StackOverflow https://stackoverflow.com/questions/270284

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

Редактировать: Настройка IIS7

  • Джош

Другие советы

Для кого-то, кто делает это в IIS 8 / Windows 2012

1) В Диспетчер серверов перейдите в Управление, добавление ролей и компонентов , Далее, Далее (перейдите в Роли сервера ), выполните прокрутку вниз до Веб-сервер (IIS) , разверните эту строку, затем разверните Веб-сервер и, наконец, разверните Безопасность . Убедитесь, что установлены IP-адреса и ограничения домена .

2) В IIS Manager перейдите к папке, которую вы хотите защитить, и щелкните левой кнопкой мыши, чтобы выбрать ее. В Просмотр функций этой папки выберите IP-адреса и ограничения домена . В Действия выберите Изменить настройки функций . Измените 'Доступ для неуказанных клиентов:' на 'Deny' , затем OK.

3) Наконец, перейдите в «Добавить разрешенную запись» в меню Action . Введите конкретный IP-адрес вашего сервера.

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

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

Если кто-то захочет сделать это в командной строке, похоже, это работает на 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

Ссылка

Сначала я хотел сделать это в 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, не было никакого преимущества в том, чтобы вносить изменения напрямую с помощью первых команд.

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

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

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

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

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

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

(1) Нажмите на кнопку «Безопасность Diectory». Вкладка

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

(3) Нажмите «Отказано в доступе». (Это говорит IIS блокировать все IP, кроме тех, которые вы перечислили)

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

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

(6) Введите 127.0.0.1 (IP-адрес localhost)

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

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

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

Вы можете просто добавить этот .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
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top