2008-11-06 2 views
14

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

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

+0

Помог ли вам любой ответ? Если да, то можете ли вы отметить, какой из них. Я хотел бы знать, как вы на самом деле решили это ;-) – JoshBerke 2008-11-08 12:47:17

+0

Я был бы рад, мне все же нужно показать ответ моему другу, который собирается выполнить его на самом деле. Так что, может быть, несколько дней, но как только я узнаю, я приму ответ. – 2008-11-08 15:30:48

ответ

5

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

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

Edit: Configuring IIS7

  • Джош
+0

Можно ли это сделать в web.config? Похоже, что это из командной строки [здесь] (https://technet.microsoft.com/en-us/library/cc772061%28v=ws.10%29.aspx) что-то в разделе system.webServer/security/авторизация может работать. – Chris 2015-06-16 07:22:55

0

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

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

-1

Вы можете добавить это .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 
} 
+1

Это не масштабируемое решение, так как оно требует доступа к источнику, должно применяться к каждой странице и не допускает никакой гибкости после развертывания. – 2014-05-16 13:07:44

0

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

0

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

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

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

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

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

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

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

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

0

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

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

16

Для некоторых, кто делает это в 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', затем ОК.

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> 

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

0

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

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