Можно ли сделать часть сайта на IIS видимой только с localhost? - PullRequest
20 голосов
/ 07 ноября 2008

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

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

Ответы [ 9 ]

23 голосов
/ 22 марта 2014

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

1) В Server Manager перейдите к Manage, Add Roles and Features, Далее, Далее (перейдите к 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 s. Введите конкретный IP-адрес вашего сервера.

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

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

5 голосов
/ 07 ноября 2008

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

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

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

  • Josh
3 голосов
/ 05 октября 2016

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

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

3 голосов
/ 17 июня 2015

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

0 голосов
/ 07 ноября 2008

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

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

0 голосов
/ 07 ноября 2008

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

(1) Перейдите на вкладку «Безопасность Diectory»

(2) Нажмите «Изменить» под рамкой «IP-адрес и ограничение доменного имени».

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

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

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

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

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

0 голосов
/ 07 ноября 2008

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

0 голосов
/ 07 ноября 2008

Вы можете просто добавить этот .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
}
0 голосов
/ 07 ноября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...