달라진 기능 (IIS 6.0)
IIS 4.0, IIS 5.0, IIS 5.1 및 IIS 6.0의 기본 동작과 설정에는 몇 가지 중요한 차이점이 있습니다.
이 항목에서는 다음 정보를 설명합니다.
• |
핵심 기능 및 서비스 |
• |
메타베이스 구성 |
• |
관리 |
• |
프로그래밍을 이용한 관리 |
• |
ASP(Active Server Pages) |
• |
ASP 정체 감지 |
• |
보안 |
• |
성능 |
• |
IIS 유틸리티 구성 요소 |
• |
64비트 버전의 Windows Server 2003 제품군에서의 IIS |
다음 표에는 IIS 버전 간의 중요한 차이점이 요약되어 있습니다.
플랫폼 |
Windows NT 4.0 |
Windows 2000 |
Windows XP Professional |
Windows Server 2003 제품군 |
아키텍처 |
32비트 |
32비트 |
32비트 및 64비트 |
32비트 및 64비트 |
응용 프로그램 프로세스 모델 |
TCP/IP 커널
MTX.exe |
TCP/IP 커널
DLLhost.exe(중급 또는 고급 응용 프로그램 격리에서의 다양한 DLL 호스트) |
TCP/IP 커널
DLLhost.exe(중급 또는 고급 응용 프로그램 격리에서의 다양한 DLL 호스트) |
HTTP.sys 커널
IIS 5.0 격리 모드에서 IIS를 실행할 경우: Inetinfo.exe(In-process 응용 프로그램의 경우) 또는 DLLhost.exe(Out-of-process 응용 프로그램의 경우)
Worker Process Isolation Mode에서 IIS를 실행할 경우: W3wp.exe(여러 개의 작업자 프로세스) |
메타베이스 구성 |
이진 |
이진 |
이진 |
XML |
보안 |
Windows 인증
SSL |
Windows 인증
SSL
Kerberos |
Windows 인증
SSL
Kerberos
보안 마법사 |
Windows 인증
SSL
Kerberos
보안 마법사
Passport 지원 |
원격 관리 |
HTMLA |
HTMLA |
HTMLA 없음
터미널 서비스 |
원격 관리 도구(HTML)
터미널 서비스 |
클러스터 지원 |
Windows NT 4.0 사용 |
IIS 클러스터링 |
Windows 지원 |
Windows 지원 |
WWW 서비스 |
Windows NT 4.0의 IIS |
Windows 9x의 개인 웹 관리자
Windows 2000의 IIS |
Windows XP Professional의 IIS(선택 사항) |
Windows Server 2003 제품군 구성원의 IIS |
핵심 기능 및 서비스
IIS 6.0은 기본 Windows 커널인 HTTP.sys를 사용할 수 있도록 재설계되었습니다. 이로 인해 기본 제공된 응답/요청 캐시와 큐를 사용할 수 있으며 응용 프로그램 프로세스 요청을 작업 프로세스들로 직접 전달하여 안정성과 성능을 개선했습니다.
IIS 6.0에는 응용 프로그램 환경 구성을 위한 두 가지 작업 모드인 작업자 프로세스 격리 모드와 IIS 5.0 격리 모드가 도입되었습니다. IIS 6.0을 설치할 때 기본으로 지정되는 격리 모드는 새로 설치할 것인지, 아니면 기존 설치된 것에서 업그레이드할 것인지에 따라 다릅니다.
• |
IIS 6.0을 새로 설치하면 IIS는 작업자 프로세스 격리 모드에서 실행됩니다. |
• |
이전 버전의 IIS 6.0에서 업그레이드하면 격리 모드는 이전에 설치한 IIS 6.0의 구성을 그대로 유지합니다. |
• |
IIS 5.0 또는 IIS 4.0에서 업그레이드하면 IIS 6.0은 기존 응용 프로그램과의 호환성을 유지하기 위해서 기본적으로 IIS 5.0 격리 모드에서 실행됩니다. |
격리 모드 간 전환에 대한 자세한 내용은 격리 모드 구성을 참조하십시오.
IIS 5.0 격리 모드
IIS 5.0 격리 모드에서는 IIS 5.0의 프로세스 관리 방식과 비슷하게 응용 프로그램 프로세스가 관리됩니다. 즉 모든 in-process 응용 프로그램이 Inetinfo.exe에서 실행되고 out-of-process 응용 프로그램은 별도의 DLL 호스트에서 실행됩니다. 기존의 몇몇 응용 프로그램들은 동시에 실행되거나 응용 프로그램과 별도로 세션 상태를 저장하는 것을 고려하지 않고 설계되었을 수 있습니다. 그러므로 IIS 5.0 격리 모드에서의 프로세스 실행은 대부분의 기존 응용 프로그램과의 호환성을 보증할 수 있습니다. 다음 그림은 IIS 5.0 격리 모드에서 응용 프로그램 프로세스가 처리되는 방법을 보여 줍니다.
작업자 프로세스 격리 모드
작업자 프로세스 격리 모드의 경우 모든 응용 프로그램 코드가 격리된 환경에서 실행됩니다. 따라서 기존에 발생하던 병목 현상이 일부 사라졌습니다. 작업자 프로세스 격리 모드를 사용하여 개개의 웹 응용 프로그램의 기능을 독립적인 작업자 프로세스를 사용하는 여러 개의 사이트에 격리할 수 있습니다. 이렇게 하면 한 응용 프로그램이나 사이트로 인해 다른 응용 프로그램이나 사이트가 중지되지 않습니다. 또한 응용 프로그램이나 사이트를 자체 프로세스 공간으로 분리하면 다시 시작(시스템에서 실행되는 다른 모든 사이트나 응용 프로그램과 관계없이), 응용 프로그램에 사용되는 구성 요소 변경, 디버깅, 카운터 모니터링, 리소스 조절 등의 관리 작업이 줄어듭니다. 다음 그림은 IIS 작업자 프로세스 격리 모드로 설정된 IIS가 응용 프로그램을 관리하는 방법을 보여 줍니다.
HTTP 요청은 올바른 응용 프로그램 풀의 큐로 전달되는데, 이는 응용 프로그램 풀 기능을 수행하는 사용자 모드 작업자 프로세스가 커널로부터 요청을 직접 가져오며 out-of-process DLL 호스트로 요청을 보낼 때 발생하는 필요 없는 프로세스 홉을 제거한다는 의미입니다. IIS 6.0에는 더 이상 in-process 응용 프로그램이라는 개념이 사용되지 않습니다. ISAPI 확장 지원과 같은 모든 필수 HTTP 응용 프로그램 런타임 서비스는 모두 응용 프로그램 풀에서 똑같이 사용할 수 있습니다. 이 설계는 컴퓨터의 다른 프로세스에서 처리되는 다른 HTTP 응용 프로그램 또는 다른 웹 사이트의 중단으로 인해 HTTP 응용 프로그램이나 웹 사이트가 중단되는 것을 방지해 줍니다. 격리된 응용 프로그램 프로세스를 사용하면 필요할 경우 다른 콘텐트나 다른 프로세스의 응용 프로그램에 영향을 주지 않고 프로세스를 종료하여 모든 리소스를 언로드할 수 있으므로 구성 요소를 언로드하는 것이 더 쉽습니다. 또한 응용 프로그램 풀마다 프로세스 수준에서 사용할 수 있는 다른 운영 체제 서비스(예: CPU 조절)를 활용할 수 있어 도움이 됩니다.
뿐만 아니라 World Wide Web 게시 서비스(WWW 서비스)의 전체적인 기능을 유지하는 작업자 프로세스 격리 모드의 중요한 부분은 완전히 작업자 프로세스의 외부에서 실행됩니다. Windows에 사용되는 범용 HTTP 프로세서인 IIS 6.0 커널 모드 드라이버 HTTP.sys와 WWW 서비스 관리 및 모니터링 구성 요소는 핵심 웹 서버의 핵심적인 부분을 격리합니다. 두 구성 요소 모두 보호되므로 이들 구성 요소에 타사 코드를 로드할 수 없습니다. 따라서 오류가 있는 HTTP 응용 프로그램이 서버의 WWW 서비스를 방해하지 않습니다.
격리 모드에 대한 자세한 내용은 Application Isolation Modes를 참조하십시오.
메타베이스 구성
IIS 6.0의 메타베이스는 이전 버전의 IIS와 달리 이진 형식이 아니라 XML 파일로 저장됩니다. 위치는 동일하지만 업데이트, 롤백, 복원, 확장 등의 조작 방법은 변경되었습니다. 하나가 아닌 두 개의 MetaBase.xml과 MBSchema.xml이 핵심입니다.
관리
• |
IIS 4.0에서는 응용 프로그램이 인터넷 서비스와 같은 프로세스나 별도의 프로세스에서 실행될 수 있습니다. IIS 5.0과 5.1에서는 성능 및 확장성 향상을 위해 응용 프로그램을 합동 프로세스로 그룹화할 수 있습니다. 자세한 내용은 응용 프로그램 구성를 참조하십시오. IIS 6.0 작업자 프로세스 격리 모드에서는 여러 개의 응용 프로그램 풀로 응용 프로그램을 그룹화할 수 있습니다. |
• |
응용 프로그램 매핑 속성 시트에는 특정 파일 형식에 매핑된 응용 프로그램에서 처리하는 HTTP(Hypertext Transport Protocol) verb 목록이 들어 있습니다. 이 verb 목록은 IIS 4.0에서 변경된 것입니다. IIS 4.0의 경우 제외되거나 처리되지 않는 verb가 목록에 포함되어 있습니다. 프로토콜에 새로 추가되는 HTTP verb를 수용하기 위해 이러한 변경이 이루어졌습니다. 응용 프로그램 매핑에 대한 자세한 내용은 IIS 6.0의 응용 프로그램 매핑 설정을 참조하십시오. |
• |
클러스터링은 IIS 6.0의 기능이 아닙니다. IISsynche.exe가 지원되지 않습니다. 클러스터링은 Windows Server 2003 제품군 기능입니다. Windows 클러스터링(MSCS)에 대한 자세한 내용은 Windows Server 2003 제품군 도움말을 참조하십시오. |
• |
IIS 5.0에서는 IIS 4.0의 사용자 지정 파일 위치가 변경되었습니다. |
• |
웹 기반 인터넷 서비스 관리자(HTML)가 원격 관리(HTML) 도구라고 하는 웹 응용 프로그램으로 대체되었습니다. 원격 관리(HTML) 도구를 사용하여 IIS를 원격으로 관리하려면 IIS 6.0에서 원격으로 서버 관리를 참조하십시오. |
프로그래밍을 이용한 관리
이전 버전의 IIS에서는 컴파일된 C++ 응용 프로그램에서 ABO(관리 기본 개체)를 사용하거나, C++ 또는 스크립트 파일에서 ADSI(Active Directory 서비스 인터페이스)를 사용하여 IIS를 프로그래밍 방식으로 관리할 수 있었습니다. IIS 6.0에는 관리자가 프로그래밍 방식으로 모든 서비스와 응용 프로그램을 제어할 수 있는 기술인 WMI(Windows Management Instrumentation) 공급자가 포함되어 있습니다. WMI에 대한 자세한 내용은 MSDN에서 IIS SDK(Software Development Kit)의 "IIS Administration Technologies"를 참조하십시오.
Active Server Pages
IIS 6.0에서는 Microsoft ASP(Active Server Pages)와 Microsoft ASP.NET을 함께 사용할 수 있습니다. ASP.NET 응용 프로그램을 실행하기 위한 IIS 구성에 대한 자세한 내용은 ASP.NET 정보를 참조하십시오. IIS 6.0에서 변경된 새로운 ASP 기능은 ASP의 중요 변경 사항을 참조하십시오.
작업자 프로세스(W3wp.exe)가 IIS 6.0 작업자 프로세스 격리 모드에서 네트워크 서비스 계정으로 실행되기 때문에 스크립트 디버거 및 Visual InterDev에 ASP 디버깅을 사용하려면 시작 권한 및 액세스 권한을 구성해야 합니다. 자세한 내용은 ASP 디버깅 사용을 참조하십시오.
ASP 정체 감지
IIS 웹 사이트의 사용량이 많을 경우 순간적으로 허용할 수 있는 최대 ASP 스레드 수에 도달하게 되면 몇몇 ASP 스레드가 정체되어 성능이 저하될 수 있습니다. IIS 6.0에는 ASP ISAPI 확장인 ASP.dll의 특정 인스턴스를 호스트하는 작업자 프로세스를 재생하여 스레드 중단 문제를 해결할 수 있는 기능이 있습니다. IIS 6.0에서 ASP 스레드가 중단되면 ASP.dll이 ISAPI 서버 지원 함수인 HSE_REQ_REPORT_UNHEALTHY를 호출하고 WWW 서비스는 ASP.dll을 호스트하는 작업자 프로세스를 재생하여 이벤트 로그에 항목을 만듭니다.
ISAPI 서버 지원 함수에 대한 자세한 내용은 MSDN® Online의 ISAPI 확장 참조에서 ServerSupportFunction을 참조하십시오.
보안
IIS 6.0의 중요한 변경 사항 중 하나로 웹 서버 보안을 들 수 있습니다. 악의적인 사용자의 침입을 예방하기 위해 Microsoft Windows Server 2003 제품군의 구성원에서는 IIS가 기본적으로 설치되지 않습니다.
중요:
공격 대상이 될 수 있는 서버의 취약점을 최소화하기 위해 IIS 6.0은 Windows Server 2003에 기본적으로 설치되지 않습니다. IIS 6.0을 처음 설치할 때 이 서비스는 잠겨 있습니다. 즉, 정적 웹 페이지에 대한 요청 처리만 사용 가능하며 World Wide Web 게시 서비스(WWW 서비스)만 설치됩니다. ASP, ASP.NET, CGI 스크립팅, Microsoft의 FrontPage® 2002 Server Extensions 및 WebDAV 게시 등 IIS를 기반으로 하는 기능은 아무것도 설정되지 않습니다. 이러한 기능을 사용하지 않으면 IIS에서 404 오류가 반환됩니다. IIS 관리자에서 웹 서비스 확장 노드를 통해 이러한 기능을 사용하도록 설정할 수 있습니다. 404 오류와 그 밖의 문제를 해결하는 방법에 대한 자세한 내용은 IIS 6.0에서 문제 해결을 참조하십시오.
웹 서버 인증서 마법사와 CTL 마법사를 사용하여 웹 및 NTFS 보안 설정을 동기화하고, 서버 인증서를 받아 설치하며, 인증서 신뢰 목록을 만들고 수정할 수 있습니다. 또한 CSP(암호화 서비스 공급자)를 선택하여 인증서로 데이터를 암호화할 수도 있습니다.
IIS 6.0의 기타 보안 변경 내용은 다음과 같습니다.
• |
업그레이드 시 사용 안 함: 다음 중 하나의 조건이 만족하지 않을 경우 World Wide Web 게시 서비스(WWW 서비스)는 Windows Server 2003 제품군 업그레이드 시에 사용 안 함으로 설정됩니다.
• |
업그레이드를 실행하기 전에 Windows 2000 Server에 IIS 잠금 마법사가 이미 실행된 경우입니다. IIS 잠금 마법사는 불필요한 기능을 사용 중지하여 외부 공격을 줄이고 사이트에서 사용할 기능을 사용자가 결정할 수 있게 합니다. IIS 잠금 마법사는 IIS Lockdown Tool에서 사용할 수 있습니다. | |
중요:
WWW 서비스를 사용하는 경우 제품을 Windows Server 2003 제품군으로 업그레이드하기 전에 먼저 Windows 2000 Server에 IIS 잠금 마법사를 실행하는 것이 좋습니다. IIS 잠금 마법사는 Windows 2000 Server를 설치할 때 나타나는 기능 중 필요 없는 기능을 사용 중지하거나 제거하여 컴퓨터 보안 유지를 돕습니다. 이렇게 하지 않으면 이런 기능은 업그레이드 후 시스템에 남아 서버가 공격에 취약해집니다.
• |
그룹 정책을 통해 IIS 사용 안 함: Windows Server 2003 제품군에서는 사용자가 컴퓨터에 IIS를 설치하지 못하도록 도메인 관리자가 제한할 수 있습니다. |
• |
액세스 권한 수준이 낮은 계정으로 실행: IIS 작업자 프로세스가 액세스 권한이 적은 사용자 컨텍스트에서 실행되도록 합니다. 그러면 공격 받을 가능성이 대폭 줄어듭니다. |
• |
ASP 보안: 기본으로 제공된 모든 ASP 함수가 항상 액세스 권한이 매우 낮은 IUSR_computername 계정으로 실행되도록 합니다. |
• |
실행 파일 실행 제한: 일반적으로 시스템 폴더에 있는 cmd.exe와 같은 실행 파일을 실행하려면 Administrators 그룹, LocalSystem, Interactive 또는 Service 계정의 구성원이어야 합니다. 이 제한을 사용하면 Administrators에 대한 원격 액세스가 제한되어 익명 사용자는 실행 파일을 실행할 수 없습니다. |
• |
패치 관리: 패치 관리를 사용하면 관리자가 서비스를 중단하지 않고도 최신 보안 패치를 설치할 수 있습니다. |
• |
알려진 확장명: IIS에서 알려진 확장명의 파일만 요청을 처리하도록 합니다. 파일 확장명이 알려지지 않은 파일 형식이나 서비스에서 해당 파일 형식을 요청하는 응용 프로그램에 매핑되는 경우 서버가 콘텐트 요청을 거부합니다. |
참고:
확장은 동적 콘텐트를 제공하는 페이지(예: .asp 또는 .aspx)를 사용하는 웹 서비스 확장을 의미하며 확장명은 .exe, .txt, .inc 등과 같은 파일 형식을 나타냅니다.
성능
ASP 페이지에 할당할 메모리 양을 제한하기 위해 AspScriptFileCacheSize 메타베이스 속성 기본값은 250개의 ASP 페이지로 설정되고, AspScriptEngineCacheMax 메타베이스 속성 기본값은 125개의 스크립트 엔진으로 설정되었습니다. 자주 요청되는 ASP 페이지 수가 많은 사이트에서는 ASPScriptFileCacheSize를 더 높게 설정할 수 있습니다. 그러면 캐시에서 페이지를 검색하는 것이 ASP 페이지를 컴파일하는 것보다 훨씬 빠르기 때문에 성능이 향상됩니다. 자주 요청되는 ASP 페이지 수가 적은 사이트의 경우 이 값을 낮게 설정하여 메모리를 절약할 수 있습니다.
IIS 유틸리티 구성 요소
• |
CDONTS: CDONTS(Collaboration Data Objects for Windows NT Server)가 Windows Server 2003 제품군에서 제거되었습니다. 웹 응용 프로그램에서 CDONTS를 사용할 경우 Microsoft CDO(Collaboration Data Objects)로 변환할 수 있습니다. 대부분의 CDONTS 메서드는 CDO의 메서드와 일치하지만 이름이 다를 수 있습니다. PSDK(Platform Software Developer Kit)에 있는 DCO 참고 자료를 보려면 MSDN Online의 Overview of CDO를 참조하십시오. |
• |
IIS 유틸리티 구성 요소 설치 안 함: Ad Rotator, Browser Capabilities, Content Linker, Content Rotator, Counters, Logging Utility, My Info, Page Counter, Status 도구는 IIS 6.0과 함께 설치되지 않습니다. 그러나 이전 버전의 IIS에서 웹 서버를 업그레이드할 경우 이들 유틸리티 구성 요소가 제거되지는 않습니다. |
64비트 Windows Server 2003 제품군에서의 IIS
64비트 버전 Windows Server 2003 제품군이 설치된 운영 체제에서는 IIS가 64비트 응용 프로그램으로 실행됩니다. 즉 64비트 버전 Windows Server 2003 제품군에서는 32비트 응용 프로그램을 호출할 수 없습니다. 예를 들어 Jet 데이터베이스 엔진이 64비트 응용 프로그램으로 변환되지 않으므로 ADO(ActiveX® Data Objects)를 사용하여 ASP 페이지의 Microsoft Access 데이터베이스를 열 수 없습니다. 그러나 ADO를 사용하여 SQL이나 Exchange 같은 다른 드라이버에 계속 액세스할 수 있습니다.