IIS Express에서 사용중인 모든 포트를 허용하도록 Windows 방화벽을 구성하는 방법


9

나의 이해 이 TechNet 문서 당, 저이 가져온 페이지 *는, 내가 어떤 포트에서 모든 인바운드 트래픽이 지정된 실행 파일에 의해 사용되는 허용하도록 Windows 방화벽을 구성 할 수 있다는 것입니다.

나는 사실상의 대답이 "하지 마라"라는 것을 알고 있습니다 . 가상 컴퓨터 내에서 Visual Studio 및 IIS Express를 실행하고 있으며 테스트 목적으로 호스트 OS에서 연결할 수 있기를 원하므로 IIS Express에서 사용중인 모든 포트를 여는 보안에 대한 영향은 거의 없습니다.

프로그램이로 설정된 인바운드 규칙을 만들었습니다 %ProgramFiles% (x86)\IIS Express\iisexpress.exe. 작업 관리자에 따라 실행 파일이 실행됩니다. 다른 모든 규칙 사양은 비어 있습니다 (로컬 주소, 원격 주소 및 로컬 포트, 원격 포트, "모든"허용 사용자, "모든"허용 컴퓨터). 그러나 IIS Express에서 제공하는 특정 포트에 대한 규칙이있는 경우에만 연결이 작동합니다.

그것은 내 인생을 더 쉽게 만들 것이므로 (그리고 technet이 작동해야한다고 원칙적으로 원칙적으로), 내가 만드는 각 앱마다 방화벽 규칙을 추가 할 필요가 없습니다.

* 작업 "프로그램이 필요한 모든 포트에서 인바운드 네트워크 트래픽을 수신하고 수락 할 수있는 규칙을 만듭니다."


1
보안이 중요하지 않다고 언급 했으므로 모든 포트를 여는 데 문제가 있습니까?
Abraxas

게스트 운영 체제에서 방화벽을 끄십시오 .. :-) 게스트 OS에서 가능한 모든 기능을 항상 비활성화합니다.
Kody Brown

답변:


1

여기에 몇 가지 문제가 있습니다. 하나는 iisexpress.exe실제로 HTTP 트래픽을 수신하는 프로세스가 아닙니다. 이 기능은 http.sys Windows 네트워킹 스택의 커널 모드 부분으로 구현됩니다 . (성능상의 이유로 수행되었습니다. 자세한 내용은 IIS 아키텍처 소개를 참조하십시오 .) 따라서 규칙을 만들면 iisexpress.exe아무 작업도 수행되지 않습니다.

둘째, http.sys기본적으로 관리자가 아닌 사용자로 실행되는 프로그램은 다른 컴퓨터를 청취 할 수 없습니다. WebMatrix를 통한 외부 트래픽 제공 에 따르면 모든 사용자가 다음을 통해 다른 시스템을 청취 할 수 있도록 관리 명령 프롬프트에서이 명령을 실행해야합니다 http.sys.

netsh http add urlacl url=http://MACHNAME:PORT/ user=everyone

교체 MACHNAME사이트와 연락하는 데 사용되는 호스트 이름으로 PORT트래픽의 포트를. 내가 사용하는 것을 읽고 *대신 특정 호스트 이름의 것은 그것이 모든 이름 / 인터페이스를들을 수 있습니다,하지만 난 개인적 것을 테스트하지 않았습니다, 일부 문서 사용 +대신에. 어느 쪽이든 ACL을 설정 한 후에는 포트에 대한 인바운드 방화벽 규칙을 만들 수 있습니다 .

추가 정보 : HTTP 및 HTTPS 구성 .

측면 설명 : 32 비트 버전의 Program Files를 가리키는 실제 환경 변수가 %PROGRAMFILES(X86)%있습니다. (그러나 경로는 문제가되지 않았습니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.