IIS에서 사이트의 일부를 LocalHost에서만 볼 수 있습니까?
문제
IIS를 실행하는 웹 서버가 있습니다. 공유 블로그 나 정보를 추적 할 수있는 무언가를 실행하고 싶습니다. 보안 문제로 인해 해당 부분이 LocalHost에서만 볼 수 있으므로 사람들이 사용하기 위해 리모컨을 사용해야합니다.
따라서 내 질문을 반복하기 위해 웹 사이트의 일부를 LocalHost에서만 볼 수 있습니까?
해결책
IIS6에서는 웹의 속성을 제기하고 디렉토리 보안 탭을 클릭 할 수 있습니다. IP 및 도메인 제한을 편집하려면 탭 중간의 버튼을 클릭하십시오. 이 탭에서 모든 컴퓨터를 거부 한 다음이 사이트에 액세스 할 IP에 대한 예외를 추가하십시오.
IIS7에서이를 구성하는 방법을 잘 모르겠습니다. 나는 보았지만 그것을 찾을 수 없었습니다. 그것을 발견하면이 답변을 편집 할 것입니다.
편집하다: IIS7 구성
- 조롱
다른 팁
어떤 사람에게는 IIS 8
/ Windows 2012
1) in Server Manager
, 이동 Manage, Add Roles and Features
, 다음으로 다음 (가십시오) Server Roles
), 아래로 스크롤하십시오 Web Server (IIS)
, 그 행을 확장 한 다음 확장하십시오 Web Server
, 그리고 마지막으로 확장 Security
. 그것을 확인하십시오 IP 및 도메인 제한 설치됩니다.
2) in IIS Manager
, 보호하려는 폴더로 드릴 다운하고 왼쪽 클릭하면 선택하십시오. 에서 Features View
해당 폴더의 선택 IP 및 도메인 제한 ~ 안에 Actions
선택하다 Edit Feature Settings
. 변화 'Access for unspecified clients:'
에게 'Deny'
그럼 괜찮아.
3) 마침내 간다 'Add Allow Entry'
에서 Action
S 메뉴. 서버의 특정 IP 주소를 입력하십시오.
이제 서버에서 오는 요청 만 액세스 할 수 있습니다. 또는 해당 IP 주소를 공유하는 서버. 따라서 소규모 네트워크에서 사무실은 해당 사무실의 모든 PC간에 IP 주소를 공유 할 수 있으므로 모든 PC가 해당 폴더에 액세스 할 수 있습니다.
마지막으로 네트워크에 동적 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>
그러나 Central IIS 구성에서 기능을 잠금 해제해야하므로 첫 번째 명령을 사용하여 직접 변경하는 것보다 이점이 없었습니다.
IP 제한 대신 바인딩을 사용할 수도 있습니다. 액세스를 제한하려는 웹 사이트의 바인딩을 편집하면 사이트에서 사용할 수있는 IP 주소를 선택할 수 있습니다. IP 주소를 127.0.0.1로 설정하면 사이트 가이 IP 주소에서만 응답하고 있으며이 IP 주소는 물론 시스템에서 로컬로만 작동합니다.
IIS 8.5를 사용하여 이것을 테스트했습니다.
무단 사용자가 방문하려고 할 경우 정확히 원하는 일에 따라.
특정 섹션을 가상 디렉토리로 설정 한 다음 익명 사용자에 대한 견해를 거부 할 수 있습니다. 그러나 로그인하라는 메시지가 표시되며 로그인 할 수 있다면 볼 수 있습니다.
IIS MMC에있는 옵션을 판단하면 특정 IP 범위에서만 가상 디렉토리에 액세스 할 수 있습니다. 127.0.0.1 이외의 모든 사람을 차단할 수 있습니다. 그러나 나는 이것을 시도하지 않았다.
특정 IP에서 사이트 또는 폴더로 사이트 또는 폴더에 대한 액세스를 부여하거나 거부 할 수 있습니다. IIS에서는 해당 사이트 또는 폴더의 속성으로 이동하십시오.
(1) "Diectory Security"탭을 클릭하십시오.
(2) "IP 주소 및 도메인 이름 제한"프레임에서 편집을 클릭하십시오.
(3) "거부 된 액세스"를 클릭하십시오 (이것은 IIS에 목록을 제외한 모든 IP를 차단하라고 지시합니다)
(4) "추가 ..."를 클릭하십시오.
(5) "단일 컴퓨터"를 클릭하십시오.
(6) 127.0.0.1 입력 (LocalHost의 IP)
호스트 파일을 사용하여 도메인을 쉽게 위조 할 수 있기 때문에 도메인 이름보다는 IP를 여기에 사용하는 것이 가장 좋습니다.
127.0.0.1 (LocalHost)을 제외한 모든 IP 주소를 차단하기 위해 IIS "디렉토리 보안"을 사용하는 권장 사항에 동의합니다.
즉, 사용자가 원격으로 요구하는이 전략이 아마도 더 안전한. 서버 시스템에서 Windows 역할 및 권한을 관리하는 대신 표준 IIS 인증 메커니즘을 사용하는 것이 더 안전하지 않으며 (훨씬 간단한) 표준 IIS 인증 메커니즘을 사용하는 것이 더 안전하지 않습니까?
이 .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
}