관리istration Pack
작성자: 월터 올리버
소개
관리istration Pack은 호스트와 고객에게 다음을 수행하는 데 도움이 되는 IIS 관리자 모듈 집합을 제공합니다.
- 서버 구성 설정을 편집합니다(관리자만 해당).
- FastCGI 설정을 관리합니다.
- ASP.NET 권한 부여를 관리합니다.
- 사용자 지정 오류를 관리합니다.
- HTTP 요청 필터링 규칙을 편집합니다.
이 문서의 목적은 호스팅 환경에서 관리istration Pack을 배포하는 방법을 알아보는 데 필요한 정보를 호스트에게 제공하는 것입니다. 다음 이미지는 관리istration Pack을 설치한 후 IIS 관리자에 있는 새 모듈 아이콘을 강조 표시합니다.
관리istration Pack 배포
공유 호스팅 환경 <링크에서 관리istration Pack을 배포하는 경우: 공유 호스팅 구성 문서에> 대해 팜의 각 웹 서버에 설치해야 합니다. 미리 빌드된 이미지를 사용하는 경우 관리istration Pack은 팜 서버를 빌드하는 데 사용되는 이미지의 일부여야 합니다. 이 문서에 설명된 지침에 따라 관리istration Pack을 다운로드하고 설치합니다.
관리istration Pack에 대해 알아보기
Configuration Editor
구성 편집기 모듈은 구성 파일을 관리하는 데 도움이 됩니다. 이 도구는 서버 관리자만 사용할 수 있습니다. system.webServer와 같은 IIS 구성 설정 또는 system.web과 같은 ASP.NET 설정을 포함하여 구성 파일의 섹션, 특성, 요소 또는 컬렉션을 편집할 수 있습니다. 이러한 값을 편집하는 것 외에도 잠금을 해제하고 잠금을 해제할 수 있습니다. 또한 구성 편집기를 사용하면 수행하는 작업에 따라 스크립트를 생성하고 파일을 검색하여 값이 사용되는 위치를 확인할 수 있습니다.
설정 값을 입력하면 구성 편집기에서 데이터 형식의 유효성을 검사하여 호환되는지 확인합니다. 부울(True/False) 또는 열거형과 같은 특정 값 옵션의 경우 콤보 상자는 사용 가능한 옵션만 표시하는 데 사용됩니다. 또한 구성 편집기를 사용하면 수행하는 작업에 따라 스크립트를 생성하고 파일을 검색하여 값이 사용되는 위치를 확인할 수 있습니다. 다음 비디오 <링크: https://blogs.msdn.com/carlosag/archive/2008/03/31/IISAdminPackConfigurationEditor.aspx> 구성 편집기의 다양한 기능에 대한 데모를 제공합니다.
- 스키마 기반 — 구성 편집기는 \windows\system32\inetsrv\config\schema에 있는 구성 스키마에 의해 전적으로 구동됩니다. 즉, 섹션을 만드는 구성 시스템을 확장하면 구성 편집기 내에서 관리할 수 있습니다. 이러한 섹션에 대한 추가 UI를 빌드할 필요가 없습니다.
- 추가 정보 — 구성 편집기는 섹션이 사용되는 위치, 컬렉션의 특정 요소가 상속되는 위치 등과 같은 정보를 노출합니다.
- 스크립트 생성 - 구성 편집기를 사용하면 변경할 수 있으며 작업을 자동화하는 코드를 생성합니다. 구성 편집기에서 Microsoft.Web을 사용하여 관리 코드를 생성합니다. 관리istration, AHADMIN을 사용한 JavaScript 또는 AppCmd.exe 도구를 사용한 명령줄
- 검색 — 구성 편집기를 사용하면 모든 섹션과 해당 섹션이 사용되는 위치에 대해 구성 시스템의 범위가 지정된 검색을 신속하게 수행할 수 있습니다. 이렇게 하면 서버의 더 큰 그림을 표시하고, 구성 잠금 위반을 방지하고, 다른 많은 검색 함수에 유용합니다.
- 잠금 — 구성 편집기를 사용하면 더 깊은 위치에서 사용할 수 없도록 특정 특성을 잠그거나 컬렉션의 개별 항목을 잠그거나 전체 섹션을 잠그는 등의 사전 잠금을 수행할 수 있습니다.
Configuration Editor 사용
스크립트 생성
이 문서 <링크: https://www.iis.net/learn/manage/managing-your-configuration-settings/using-configuration-editor-generate-scripts> 구성 편집기를 활용하여 구성 작업을 자동화하는 데 도움이 되는 스크립트를 생성하는 방법을 설명합니다. C#, Jscript 및 AppCmd.exe 도구의 세 가지 스크립트 유형이 지원됩니다.
구성 컬렉션
일부 IIS 구성 설정은 컬렉션 형식으로 제공됩니다. 이 문서 <링크: https://www.iis.net/learn/manage/managing-your-configuration-settings/editing-collections-with-configuration-editor> 출력 캐싱 프로필 컬렉션을 편집하는 방법을 설명합니다. 이 문서 <링크: https://www.iis.net/learn/manage/managing-your-configuration-settings/editing-collections-using-configuration-editor-complex-sections> 401의 상태 코드를 반환하거나 응답하는 데 1분 이상 걸리거나 이 상태 코드를 반환하고 1분 후에 응답하는 .aspx 요청에 대해 실패한 새 요청 추적 규칙을 추가하는 방법을 보여 줍니다.
FastCGI 설정
FastCGI 모듈을 사용하면 서버의 웹 사이트에서 사용하는 FastCGI 설정을 구성할 수 있습니다. 사용자가 FastCGI 애플리케이션을 추가 및 제거하고 이러한 설정을 변경할 수 있습니다. 다음 이미지는 FastCGI 애플리케이션 추가 대화 상자를 보여 줍니다.
.NET 권한 부여 규칙 모듈
.NET 권한 부여 규칙 모듈은 관리istration Pack의 두 ASP.NET 모듈 중 하나입니다. 사이트 관리자는 이 모듈을 사용하여 사용자가 웹 사이트 및 애플리케이션에 액세스할 수 있도록 권한을 부여하는 규칙을 지정할 수 있습니다. 특히 .NET 권한 부여 규칙 모듈은 웹 콘텐츠에 대한 사용자 액세스를 관리하는 허용 및 거부 규칙을 만들기 위한 그래픽 사용자 인터페이스를 제공합니다. 다음 이미지는 권한 부여 규칙 추가 대화 상자를 보여 줍니다.
ASP.NET 권한 부여 규칙을 잠그는 방법에 대한 지침은 다음 가이드 <링크를 https://msdn.microsoft.com/library/ms178693.aspx>참조하세요.
이 문서 <링크: https://learn.iis.net/page.aspx/142/understanding-iis-7-url-authorization/#Differences> ASP.NET URL 권한 부여와 IIS URL 권한 부여 간의 차이점을 설명합니다.
.NET 오류 페이지
.NET 오류 페이지는 HTTP 오류 응답을 구성하기 위한 그래픽 사용자 인터페이스를 제공합니다. 사용자 지정 오류 페이지 및 기본 설정의 구성을 사용하도록 설정합니다. 아래 이미지는 사용자 지정 오류 페이지 추가 대화 상자를 보여 줍니다.
HTTP 요청 필터링
HTTP 요청 필터링 모듈은 악의적인 요청으로부터 웹 서버를 보호하는 게이트키퍼 구성 요소입니다. 필터링 규칙은 다음과 같습니다.
- 특정 파일 이름 확장명을 가진 파일에 대한 요청을 차단하거나 차단 해제합니다.
- "숨겨진 세그먼트" 목록에 구성 세그먼트를 추가하거나 제거합니다.
- "URL 시퀀스 거부" 목록에 특정 URL 시퀀스를 추가하거나 제거합니다.
- HTTP 동사를 차단하거나 차단 해제합니다.
- 특정 크기 제한이 있는 헤더를 추가합니다.
IIS 7.0이 Windows Server 2008의 일부로 릴리스되었을 때 이 기능이 포함되어 있지만 이 기능을 관리하는 데 사용할 수 있는 IIS 관리자 모듈은 포함되지 않았습니다. 따라서 요청 필터링 구성을 용이하게 하기 위해 그래픽 사용자 인터페이스를 사용할 수 없었습니다. Web.config 파일에 새 구성을 추가하기만 하면 요청 필터링을 사용하는 예제는 다음 문서 <링크를 https://learn.iis.net/page.aspx/143/how-to-use-request-filtering/>참조하세요.
이 블로그 게시물 <링크: https://blogs.iis.net/bills/archive/2008/03/23/how-to-un-block-directories-with-iis7-web-config.aspx> 요청 필터링을 사용하여 사이트 섹션에 대한 액세스를 차단하거나 차단 해제하는 방법을 보여줍니다. 이 블로그 게시물 <링크: https://blogs.msdn.com/carlosag/archive/2008/03/24/IISAdminPackRequestFiltering.aspx> 관리istration Pack에 포함된 IIS 관리자 모듈을 사용하여 동일한 작업을 수행합니다.
다음 섹션에서는 HTTP 요청 필터링의 최신 기능을 설명합니다.
요청의 일부에서 문자열 패턴을 허용하지 않는 규칙 만들기
이 새로운 기능을 사용하면 규칙 목록을 만들 수 있습니다. HTTP 요청의 특정 부분과 일치하는 패턴에 따라 요청을 거부하는 규칙을 지정할 수 있습니다. 이 기능에 대한 기본 구성은 ApplicationHost.config 파일 또는 Web.config 파일의 system.webServer/security/requestFiltering 섹션 아래에 있는 filteringRules 섹션입니다. 이 규칙 때문에 요청이 거부되면 HTTP 상태 404.19가 IIS 로그에 기록됩니다.
URL 또는 쿼리 문자열에 대한 안전한 목록 만들기
이 새로운 기능을 사용하면 정의된 모든 거부 규칙을 무시할 수 있는 안전한 URL 또는 쿼리 문자열을 지정할 수 있습니다. 예를 들어 이 URL이 정의된 거부 규칙을 트리거할 수 있더라도 URL "/my.login.page.asp"을 항상 허용할 수 있습니다. 이 기능에 대한 기본 구성에는 alwaysAllowedUrls 특성 및 alwaysAllowedQueryStrings 특성이 포함됩니다. 이러한 특성은 ApplicationHost.config 파일 또는 Web.config 파일의 system.webServer/security/requestFiltering 섹션 아래에 있습니다.
쿼리 문자열의 거부 목록 만들기
가장 일반적인 SQL 삽입 공격은 쿼리 문자열을 조작하여 수행됩니다. 이 새로운 기능을 사용하면 쿼리 문자열을 검사하여 악의적인 요청을 필터링할 수 있습니다.
모든 요청에 대한 URL 시퀀스 목록을 거부하려면 ApplicationHost.config 파일 또는 Web.config 파일에서 denyQueryStringSequences 섹션을 만든 다음 요청의 URL에서 허용하지 않으려는 문자열 목록을 추가합니다. 이 규칙 때문에 요청이 거부되면 HTTP 상태 404.18이 IIS 로그에 기록됩니다.
이스케이프된 쿼리 문자열과 이스케이프되지 않은 쿼리 문자열 모두 확인
이 새로운 기능을 사용하면 ApplicationHost.config 파일 또는 Web.config 파일의 system.webServer/security/requestFiltering 섹션에서 unescapeQueryString 특성을 사용하여 이스케이프된 쿼리 문자열과 이스케이프되지 않은 쿼리 문자열을 모두 검색할 수 있습니다. 이 규칙 때문에 요청이 거부되면 HTTP 상태 404.18이 IIS 로그에 기록됩니다.
다음 이미지는 차단된 파일 이름 확장명 목록을 보여 줍니다.
HTTP 요청 필터링은 보안 시나리오에 대해서만 설계되고 최적화된 반면 URL 다시 쓰기 <링크는 https://learn.iis.net/page.aspx/531/url-rewrite-for-hosters/> 광범위한 시나리오 집합에 적용할 수 있습니다. 보안 시나리오는 이러한 하위 집합입니다. 이러한 두 모듈 간의 차이점에 대한 자세한 내용은 다음 문서 <링크를 https://learn.iis.net/page.aspx/501/iis-70-request-filtering-and-url-rewriting/>참조하세요.
결론
이 문서에서는 관리istration Pack에 대한 개요와 호스트가 공유 호스팅 환경에서 배포하고 구성하는 데 사용할 수 있는 리소스에 대한 맵을 제공했습니다.