AppCmd를 사용하여 WebDAV 설정을 구성하는 방법
소개
Microsoft는 Windows Server® 2008에서 인터넷 정보 서비스 7.0(IIS 7.0)을 위해 완전히 다시 작성된 새 WebDAV 확장 모듈을 출시했습니다. 이 새로운 WebDAV 확장 모듈에는 웹 작성자가 이전보다 더 나은 콘텐츠를 게시할 수 있는 많은 새로운 기능이 통합되었으며 웹 관리자에게 더 많은 보안 및 구성 옵션을 제공합니다. Microsoft는 덮어쓰기로 인한 업데이트 손실을 방지하기 위해 공유 및 배타적 잠금 지원을 제공하는 Windows Server® 2008용 WebDAV 확장 모듈에 대한 업데이트를 릴리스했습니다.
이 문서에서는 IIS 7.0의 새 AppCmd.exe 유틸리티를 사용하여 명령줄 또는 일괄 처리 스크립트에서 WebDAV 설정을 구성하는 방법을 안내합니다.
사전 요구 사항
이 문서의 절차를 완료하려면 다음 항목이 필요합니다.
IIS 7.0은 서버에 설치해야 하며 다음을 구성해야 합니다.
- IIS 7.0 설치에서 만든 기본 웹 사이트는 여전히 존재해야 합니다.
새 WebDAV 확장 모듈을 설치해야 합니다. 새 WebDAV 모듈의 설치에 대한 자세한 내용은 다음 문서를 참조하세요.
참고
전체 관리 권한을 사용하여 이 문서의 단계를 수행해야 합니다. 다음 두 가지 방법 중 하나를 사용하십시오.
- 로컬 "관리자" 계정을 사용하여 컴퓨터에 로그인합니다.
- 로컬 "관리자" 계정이 아닌 관리 권한이 있는 계정을 사용하여 로그인한 경우 "관리자 권한으로 실행" 옵션을 사용하여 IIS 관리자 및 모든 명령 프롬프트 세션을 엽니다.
Windows Server 2008의 UAC(사용자 계정 컨트롤) 보안 구성 요소가 IIS 7.0의 구성 설정에 대한 관리 액세스를 방지하므로 위의 조건이 필요합니다. UAC에 대한 자세한 내용은 다음 문서를 참조하십시오.
참고
요청 필터링 설정은 기본적으로 WebDAV 작성에서 여러 파일 형식을 차단할 수 있습니다. IIS 관리자 UI를 사용하여 WebDAV를 구성하면 WebDAV 작성의 차단을 해제하기 위해 요청 필터링 설정이 자동으로 업데이트됩니다. 그러나 IIS 관리자 UI를 사용하는 것 외에 다른 방식으로 WebDAV를 구성하도록 선택하는 경우 요청 필터링을 사용하여 WebDAV를 구성하는 방법 연습을 참조하세요.
기본 AppCmd 개념
AppCmd.exe IIS 7.0을 관리하기 위한 새로운 명령줄 도구입니다. 여러 가지 면에서 이전 IIS 버전의 adsutil.vbs 스크립트를 대체하는 것으로 간주합니다. AppCmd.exe 다양한 개체에 대해 다양한 명령 스위치를 지원하므로 일괄 처리 파일에서 쉽게 스크립팅하여 무수한 IIS 설정을 구성할 수 있습니다. (참고: AppCmd.exe 유틸리티는 에 %WinDir%\System32\InetSrv folder
있습니다.
AppCmd.exe 대한 일반적인 구문은 다음과 같습니다.
AppCmd (command) (object-type) <identifier> </parameter1:value1 ...>
AppCmd.exe 다음 방법 중 하나를 사용하여 액세스할 수 있는 광범위한 명령줄 도움말 지원도 제공합니다.
AppCmd /?
AppCmd (object) /?
AppCmd (command) (object) /?
명령 목록은 개체에 따라 달라지고 다음 개체가 지원됩니다.
개체 | Description |
---|---|
사이트 | 가상 사이트 관리 |
APP | 애플리케이션 관리 |
VDIR | 가상 디렉터리 관리 |
Apppool | 애플리케이션 풀 관리 |
CONFIG | 일반 구성 섹션 관리 |
WP | 작업자 프로세스 관리 |
REQUEST | HTTP 요청 관리 |
MODULE | 서버 모듈 관리 |
BACKUP | 서버 구성 백업 관리 |
TRACE | 실패한 요청 추적 로그 작업 |
예를 들어 다음 구문과 함께 SITE 개체를 사용하여 서버에 구성된 웹 사이트를 나열할 수 있습니다.
AppCmd list site
마찬가지로 다음 구문이 포함된 APPPOOL 개체를 사용하여 서버에 구성된 애플리케이션 풀을 나열할 수 있습니다.
AppCmd list apppool
AppCmd를 사용하여 SITE 개체를 사용하여 다양한 구성 설정에 대한 값을 설정할 수도 있으며, 다음 명령을 사용하여 다음 구문을 사용하여 기본 웹 사이트에 사용 가능한 설정을 나열할 수 있습니다.
AppCmd set site "Default Web Site" /?
특정 경로에 대한 구성 설정을 나열하려면 다음 예제와 같이 CONFIG 개체를 사용합니다.
AppCmd list config "Default Web Site/" /section:system.webServer/security/authentication/windowsAuthentication
다음 예제와 같이 CONFIG 개체를 사용하여 구성 설정을 설정할 수도 있습니다.
AppCmd set config "Default Web Site/" /section:system.webServer/security/authentication/windowsAuthentication /enabled:true
AppCmd가 "/commit:" 명령줄 매개 변수를 사용하여 지정한 설정을 쓸 위치를 제어할 수도 있습니다. 예를 들어 이 문서의 뒷부분에서는 기본 웹 사이트에서 WebDAV를 사용하도록 설정하는 다음 명령을 살펴보겠습니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:true /commit:apphost
참고
이 명령은 기본 웹 사이트에 WebDAV를 사용하도록 설정하고 해당 설정을 ApplicationHost.config 파일에 씁니다.
AppCmd는 매우 강력한 유틸리티이며 현실적으로 말하기에는 너무 많은 공간을 커버할 수 없으므로 AppCmd.exe 익숙해지는 방법에 대한 자세한 내용은 IIS.NET 웹 사이트에서 다음 문서를 참조하세요.
서버에서 WebDAV 구성으로 이동합니다.
WebDAV를 사용하여 시작
WebDAV는 IIS 설정에 대한 기본 스키마에 확장을 설치합니다. 따라서 AppCmd는 특별한 수정 없이 WebDAV에서 작동합니다. 새 WebDAV 모듈은 구성 가능한 모든 설정을 ApplicationHost.config 파일에 저장하고 다음 섹션을 사용합니다.
- system.webServer/webdav/authoring
- system.webServer/webdav/authoringRules
"작성" 설정은 웹 사이트의 루트에서만 구성할 수 있는 반면"authoringRules" 설정은 URL별로 구성할 수 있습니다. 지정된 경로에 대해 이러한 각 섹션에 대해 구성된 설정을 확인하려면 다음 예제와 같이 AppCmd를 사용할 수 있습니다.
AppCmd list config "Default Web Site/" /section:system.webServer/webdav/authoring
AppCmd list config "Default Web Site/" /section:system.webServer/webdav/authoringRules
웹 사이트에 대해 WebDAV 사용 또는 사용 안 함
당연히 WebDAV에 대한 가장 기본적이고 유용한 명령은 사이트에 대해 WebDAV를 사용하거나 사용하지 않도록 설정하는 것입니다. 웹 사이트에서 WebDAV를 사용하도록 설정하는 구문은 다음 예제를 따릅니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:true /commit:apphost
이 예제에서는 기본 웹 사이트의 WebDAV "작성" 섹션에 대해 "enabled" 특성을 "true"로 설정하고 변경 내용이 ApplicationHost.config 파일에 기록되도록 합니다. 반대로 다음 예제와 같이 동일한 값을 "false"로 설정하여 WebDAV를 사용하지 않도록 설정할 수 있습니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /enabled:false /commit:apphost
웹 사이트에 대한 WebDAV 작성에 SSL 필요
전송할 수 있는 정보를 보호하기 위해 WebDAV는 모든 작업에 SSL을 요구하도록 구성할 수 있습니다. 이 작업은 다음과 같은 구문을 사용하여 WebDAV "authoring" 섹션에 대해 "requireSsl " 특성을 "true"로 설정하여 수행됩니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /requireSsl:true /commit:apphost
이 기능은 다음과 같은 구문을 사용하여 "requireSsl" 특성을 "false"로 설정하여 사용하지 않도록 설정할 수 있습니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /requireSsl:false /commit:apphost
웹 사이트의 숨겨진 파일에 대한 액세스 허용
보안상의 이유로 서버에 숨겨진 것으로 표시된 파일이 파일 목록에 반환되는지 여부를 표시하지 않을 수 있습니다. 이렇게 하려면 다음과 같은 구문을 사용하여 "authoring" 섹션의 "fileSystem" 요소에서 "allowHiddenFiles" 특성을 "true"로 설정합니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /fileSystem.allowHiddenFiles:true /commit:apphost
숨겨진 파일 목록을 사용하지 않도록 설정하려면 다음과 같은 구문을 사용하여 "allowHiddenFiles" 특성을 "false"로 설정합니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /fileSystem.allowHiddenFiles:false /commit:apphost
웹 사이트에 대한 WebDAV 호환성 설정 구성
IIS용 WebDAV의 이전 버전과 호환되기 위해 일부 선택적 기능은 호환성 설정을 통해 노출됩니다. 현재 옵션 목록은 다음과 같습니다.
호환성 설정 | Description |
---|---|
없음 | 호환성 기능이 지원되지 않음을 지정합니다. |
MsAuthorVia | "MS-Author-Via" 헤더가 반환되도록 지정합니다. (참고: Microsoft의 여러 웹 제작 도구에서 이 헤더를 사용합니다.) |
MultiProp | 클라이언트 요청에서 여러 <prop> 문을 허용하도록 지정합니다. |
CompactXml | WebDAV 모듈에서 반환된 XML이 CRLF 시퀀스를 사용하여 각 줄을 종료할지 여부를 정의합니다. |
IsHidden | IsHidden 의사 라이브 속성이 지원되도록 지정합니다. |
IsCollection | IsCollection 의사 라이브 속성이 지원되도록 지정합니다. |
이러한 기능을 설정하려면 다음과 같은 구문을 사용하여 "authoring" 섹션에서 "compatFlags" 특성 값을 설정해야 합니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /compatFlags:"MsAuthorVia,CompactXml" /commit:apphost
호환성 설정은 쉼표로 구분된 플래그 집합으로 지정됩니다.
WebDAV 작성 규칙 작업
새 WebDAV 모듈은 WebDAV가 클라이언트의 제작 요청에 응답하는 방식을 구성할 수 있는 제작 규칙을 사용합니다. 예를 들어 인터넷 사용자에 대해 웹 사이트에 익명 액세스가 사용하도록 설정되어 있을 수 있지만 웹 작성 액세스는 특정 사용자 집합으로 제한해야 합니다. 작성 규칙을 사용하여 웹 사이트 콘텐츠의 다양한 부분에 액세스할 수 있는 사용자를 구성할 수 있습니다.
작성 규칙 기본값 구성
MIME 매핑되지 않은 파일이 허용되는지 여부 지정
보안상의 이유로 IIS는 기본적으로 MIME 맵에 나열되지 않은 파일에 대한 액세스를 허용하지 않습니다. 이를 염두에 두고 웹 작성자는 MIME 맵에 나열되지 않은 서버의 특정 파일 형식으로 작업해야 할 수 있습니다. (예: 파일, 데이터 파일 등 포함) MIME 매핑되지 않은 파일에 액세스할 수 있도록 하려면 "authoringRules" 섹션에서 "allowNonMimeMapFiles" 특성을 "true"로 설정해야 합니다. 다음 구문 예제에서는 이 작업을 수행하는 방법을 보여 줍니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /allowNonMimeMapFiles:true /commit:apphost
이 기능은 다음과 같은 구문을 사용하여 "allowNonMimeMapFiles" 특성을 "false"로 설정하여 사용하지 않도록 설정할 수 있습니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /allowNonMimeMapFiles:false /commit:apphost
기본 MIME 형식 지정
MIME 목록에 없는 파일 형식으로 작업하는 경우 IIS는 여전히 MIME 형식을 클라이언트에 반환해야 합니다. 기본적으로 이 파일은 "application/octet-stream"으로 설정됩니다. 즉, 파일은 콘텐츠 형식에 관계없이 원시 이진 파일로 처리되어야 합니다. MIME 매핑이 아닌 파일의 기본 MIME 형식을 텍스트 파일 형식으로 설정하려면 다음 구문을 사용할 수 있습니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /defaultMimeType:"text/plain" /commit:apphost
기본 MIME 형식을 다시 설정하려면 다음 구문을 사용합니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /defaultMimeType:"application/octet-stream" /commit:apphost
제작 규칙 관리
작성 규칙은 컬렉션에 유지되며 각 규칙에는 다음 특성이 포함될 수 있습니다.
attribute | Description |
---|---|
path | 규칙의 콘텐츠 형식을 지정합니다. (아래 참조) |
사용자 | 규칙의 사용자 이름을 지정합니다. (아래 참조) |
역할 | 규칙에 대한 그룹/역할을 지정합니다. |
access | 규칙의 액세스 유형을 지정합니다. (아래 참조) |
참고:
"path" 특성은 제작 규칙의 콘텐츠 형식을 지정하는 데 사용됩니다. 이는 "*.aspx", "*.htm" 등과 같은 특정 콘텐츠 형식에 대한 것이거나 "*"를 사용하여 제작 규칙이 모든 콘텐츠에 대한 것임을 나타낼 수 있습니다.
"역할" 및 "사용자" 특성은 서로 배타적인 것으로 선언되어야 합니다. 즉, 제작 규칙은 "사용자" 또는 "역할"에 대한 것이지만 둘 다에 대한 것이 아닙니다.
"users" 특성에 대한 다음과 같은 특수 값이 정의됩니다.
값 설명 * 모든 사용자가 액세스할 수 있습니다. ? 익명 사용자 참고
익명 사용자는 콘텐츠를 읽고 쓸 수 없습니다. 이 설정은 익명 속성 쿼리에 대한 파일 형식을 제한하는 데 사용됩니다.
액세스 형식에 대해 다음 값이 정의됩니다.
값 설명 없음 콘텐츠 형식에 대한 액세스가 허용되지 않도록 지정합니다. 읽기 콘텐츠 형식에 대한 읽기 권한을 지정합니다. 쓰기 콘텐츠 형식에 대한 쓰기 액세스를 지정합니다. 원본 콘텐츠 형식의 소스 코드에 대한 액세스를 지정합니다.
제작 규칙 추가
경로에 대한 제작 규칙을 추가하려면 다음 예제와 같은 구문을 사용할 수 있습니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /+[users='administrator',path='*',access='Read,Write,Source'] /commit:apphost
AppCmd set config "Default Web Site/mypath" /section:system.webServer/webdav/authoringRules /+[roles='Authors',path='*.aspx',access='Read,Write,Source'] /commit:apphost
제작 규칙 편집
제작 규칙이 추가되면 다음과 같은 구문을 사용하여 해당 규칙을 편집할 수 있습니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /[users='administrator',path='*'].access:"None" /commit:apphost
제작 규칙 제거
다음과 같은 구문을 사용하여 사용자 또는 역할 이름을 지정하기만 하면 작성 규칙을 제거할 수 있습니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /-[users='administrator'] /commit:apphost
참고
해당 사용자에 대해 둘 이상의 제작 규칙이 있는 경우 위의 명령은 목록의 첫 번째 제작 규칙만 제거하며 명령을 반복하여 해당 사용자에 대한 후속 규칙을 제거해야 합니다.
또는 다음 예제와 같이 사용자 또는 역할 이름과 콘텐츠 형식을 모두 지정할 수 있습니다.
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoringRules /-[users='administrator',path='*'] /commit:apphost
요약
이 문서에서는 다음을 수행하는 방법을 보여 했습니다.
추가 정보
WebDAV 사용에 대한 자세한 내용은 다음 문서를 참조하세요.
참고
앞에서 설명한 대로 기본 요청 필터링 설정은 WebDAV 작성에서 여러 파일 형식을 차단할 수 있습니다. 요청 필터링 설정을 수정하지 않으면 차단된 파일을 게시하려고 할 때 다양한 오류가 표시될 수 있습니다. 예를 들어 web.config 파일을 업로드하거나 다운로드하려고 하면 WebDAV 클라이언트에 오류가 표시됩니다. 요청 필터링 설정을 구성하는 방법에 대한 자세한 내용은 요청 필터링을 사용하여 WebDAV를 구성하는 방법 연습을 참조하세요.