VWD를 사용하여 FTP 배포 및 게시 가이드
IIS용 FTP 서비스는 Windows 웹 플랫폼의 핵심 구성 요소입니다. Windows 환경에서 FTP를 위한 강력하고 안전한 솔루션을 제공합니다. 공유 호스팅 환경 관리자는 FTP를 사용하여 고객이 콘텐츠를 업로드하고 동기화할 수 있도록 할 수 있습니다. 문서Microsoft 및 FTP의 새로운 기능 는 새로운 FTP 기능을 소개합니다. 다음은 주요 사항입니다.
IIS와 통합:
- .NET XML 기반 *.config 형식을 기반으로 하는 새 구성 저장소
- 새 관리 도구
새 인터넷 표준에 대한 보안 및 지원:
- SSL을 통한 FTP
- 인증을 위한 비 Windows 계정
- UTF8 및 IPv6
공유 호스팅 개선 사항:
- 기존 웹 사이트에 FTP 바인딩을 추가하여 동일한 사이트에서 FTP 및 웹 콘텐츠 호스트
- 동일한 IP 주소에서 여러 FTP 사이트를 호스트할 수 있도록 가상 호스트 이름 지원
- 사용자별 가상 디렉터리를 통해 사용자 격리 개선
향상된 로깅 및 지원 기능:
- 향상된 FTP 로깅에는 모든 FTP 관련 트래픽, FTP 세션에 대한 고유 추적, FTP 하위 상태 및 FTP 로그의 추가 세부 정보 필드가 포함됩니다.
- FTP 서버에 로컬로 로그온할 때의 자세한 오류 응답
- 문제 해결을 위한 추가 정보를 제공하는 ETW(Windows용 이벤트 추적)를 사용하는 경우의 자세한 정보
다음 비디오에서는 FTP 7.0의 여러 기능에 대한 개요 및 데모를 제공합니다.
FTP 배포
이 이미지는 공유 호스팅 환경에서 FTP 배포의 몇 가지 중요한 특성을 강조 표시합니다.
- FTP 서비스는 원격 관리(웹 관리 - WMSVC) 및 MS 배포 서비스에 사용되는 동일한 컴퓨터를 공유할 수 있습니다.
- FTP 컴퓨터는 웹 팜 서버에서 사용하는 구성 의 일부이므로 이 컴퓨터에 설치된 구성 요소도 웹 팜 서버에 있어야 합니다. 그러나 웹 팜은 FTP 요청을 처리하는 데 사용되지 않으므로 FTP, WMSVC(웹 관리) 및 MS 배포 서비스를 중지할 수 있습니다.
- FTP 컴퓨터는 웹 애플리케이션을 호스트하기 위한 것이 아닙니다.
- 인터넷 연결 방화벽 라우터는 FTP 서버로 FTP 트래픽의 포트 전달을 수행합니다.
배포 구성
IIS용 FTP 서버에는 공유 호스팅 시나리오에 이상적인 몇 가지 기능이 있습니다. 아래 지침은 새로운 FTP 사용자 격리 기능을 활용합니다. 이 기능을 사용하면 다음을 수행할 수 있습니다.
- 관리자가 사용자에 대해 정의된 물리적 또는 가상 디렉터리로만 사용자 액세스를 제한합니다. 즉, 단일 FTP 사이트를 구현합니다. 이 사이트에는 각 사용자 이름에 대한 특정 물리적 또는 가상 디렉터리가 포함됩니다.
- 관리자는 사용자가 명시적으로 요구하는 경우 SSL을 사용하도록 설정하고 모든 연결에 단일 인증서를 사용합니다.
- 사용자는 FTP 사이트를 자신의 사이트인 것처럼 볼 수 있습니다. FTP 서버에 로그온하면 특정 디렉터리로 제한되며 디렉터리 트리를 탐색할 수 없습니다.
단계
FTP 컴퓨터를 선택하고 IIS 서비스에 대한 새 FTP를 설치합니다. 설치 및 문제 해결에 있는 지침을 따릅니다.
FTP 사이트에 사용할 루트 폴더를 만듭니다(예:
%*SystemDrive*%\inetpub\ftproot
).필요에 따라 FTP 고가용성 및/또는 부하 분산 요구 사항이 있는 경우 Microsoft는 분산 또는 와 같은 솔루션을 제공합니다. DNS 라운드 로빈으로 충분할 수 있습니다.
SSL 연결 및 기본 인증을 허용하는 사이트를 만듭니다. SSL 사용 사이트 만들기 섹션의 단계를 따릅니다.
사용자 격리 기능을 사용하도록 설정합니다. 모든 디렉터리에 대한 사용자 격리 구성 섹션의 단계를 따릅니다.
아래 해당 섹션에 설명된 대로 FTP 방화벽 설정을 구성합니다.
WAS(Windows Process Activation Service)를 중지합니다.
- 명령 프롬프트에서 services.msc를 입력합니다. 그러면 서비스 콘솔이 표시됩니다.
- Windows 프로세스 정품 인증 서비스를 두 번 클릭합니다.
- Windows 프로세스 정품 인증 서비스 속성 대화 상자에서 이 서비스의 시작 유형이 사용 안 함으로 설정되어 있는지 확인합니다. 중지를 클릭한 다음 확인을 클릭합니다.
- 명령 프롬프트에서 services.msc를 입력합니다. 그러면 서비스 콘솔이 표시됩니다.
SSL 사용 사이트 만들기
이 섹션에서는 사용자 계정을 사용하여 열 수 있는 새 FTP 사이트를 만듭니다.
IIS 관리자로 이동합니다. 연결 창의 트리에서 사이트 노드를 클릭합니다.
트리에서 사이트 노드를 마우스 오른쪽 단추로 클릭하고 FTP 사이트 추가를 클릭하거나 작업 창에서 FTP 사이트 추가 를 클릭합니다.
FTP 사이트 추가 마법사가 나타나면 다음을 수행합니다.
FTP 사이트 이름 텍스트 상자에 "내 새 FTP 사이트"를 입력한 다음 FTP 사이트에 대해 만든 루트 폴더(예:
%*SystemDrive*%\inetpub\ftproot
)로 이동합니다.참고
콘텐츠 폴더의 경로를 입력하도록 선택하는 경우 경로에서 환경 변수를 사용할 수 있습니다.
다음을 클릭합니다.
마법사의 다음 페이지에서 다음을 수행합니다.
- IP 주소 텍스트 상자에서 FTP 사이트의 IP 주소를 선택하거나 기본 선택 항목인 "할당되지 않은 모든 항목"을 적용하도록 선택합니다. 이 예제에서는 로컬 루프백 IP "127.0.0.1"을 사용합니다.
- 포트 텍스트 상자에 FTP 사이트의 TCP/IP 포트 를 입력합니다. 이 예제에서는 기본 포트 "21"을 사용합니다.
- 가상 호스트 텍스트 상자가 비어 있는지 확인합니다. 호스트 이름을 사용하지 마세요.
- 인증서 드롭다운 목록이 사용하려는 적절한 인증서로 설정되어 있는지 확인합니다. 이 예제에서는 "내 FTP 인증서"라는 자체 서명된 인증서를 사용합니다. 자세한 내용은 인증서 만들기를 참조하세요.
- SSL 허용 옵션이 선택되어 있는지 확인합니다.
- 다음을 클릭합니다.
마법사의 다음 페이지에서 다음을 수행합니다.
인증 설정에 대해 기본을 선택합니다.
권한 부여 설정의 경우:
- 액세스 허용 드롭다운 목록에서 "모든 사용자"를 선택합니다.
- 권한 옵션에 대해 읽기 및 쓰기를 선택합니다.
이러한 항목을 완료했으면 마침을 클릭합니다.
요약
이제 새 FTP 서비스를 사용하여 새 SSL 기반 FTP 사이트를 만들었습니다. 이 절차에서 완료한 항목을 검토합니다.
- 사이트의 콘텐츠 루트를 에
%*SystemDrive*%\inetpub\ftproot
배치하는 "내 새 FTP 사이트"라는 새 FTP 사이트를 만들었습니다. - 포트 21에서 컴퓨터의 IP 주소에 FTP 사이트를 바인딩했습니다.
- FTP 사이트에 대해 SSL(Secure Sockets Layer)을 허용하도록 선택하고 인증서를 선택했습니다.
- 기본 인증을 사용하도록 설정하고 읽기 및 쓰기 액세스에 대한 모든 사용자 계정에 대한 권한 부여 규칙을 만들었습니다.
XML 구성 파일을 직접 편집하려면 IIS 구성 파일을 하여 SSL 기반 FTP 게시 추가를 참조하세요.
모든 디렉터리에 대한 사용자 격리 구성
모든 디렉터리에 대해 사용자를 격리하는 경우 모든 FTP 사용자 세션은 FTP 사용자 계정의 이름이 같은 실제 또는 가상 디렉터리로 제한됩니다. 또한 생성된 모든 전역 가상 디렉터리도 무시됩니다. 이 단계에서는 모든 디렉터리에 대한 사용자 격리를 구성합니다.
- 에서 폴더를 만듭니다
%*SystemDrive*%\inetpub\ftproot\LocalUser\
. 이 폴더에는 모든 로컬 사용자 계정 디렉터리를 포함합니다. NAS(파일 공유 서버)에 이 폴더를 만들 수 있습니다. 사용자 계정을 프로비전할 때 사용자의 콘텐츠 폴더에 대한 읽기 및 쓰기 액세스 권한도 할당해야 합니다. - IIS 관리자에서 방금 만든 FTP 사이트의 노드를 클릭합니다. 그러면 모든 FTP 기능에 대한 아이콘이 표시됩니다.
- FTP 사용자 격리 아이콘을 두 번 클릭하여 FTP 사용자 격리 기능을 엽니다.
- FTP 사용자 격리 기능 페이지가 표시되면 사용자 이름 디렉터리(전역 가상 디렉터리 사용 안 함)를 선택한 다음 작업 창에서 적용 을 클릭합니다.
요약
이 절차에서 완료한 항목 검토: 사용자 이름 디렉터리(전역 가상 디렉터리 사용 안 함) 옵션을 사용하여 FTP 사용자 격리를 구성했습니다. 이 사용자 격리 모드를 사용하는 경우 모든 FTP 사용자 세션은 FTP 사용자 계정의 이름이 같은 가상 또는 물리적 디렉터리로 제한되며 생성된 모든 전역 가상 디렉터리가 무시됩니다.
각 사용자에 대한 홈 디렉터리를 만들려면 먼저 도메인 이름을 따서 명명되거나 로컬 사용자 계정에 대해 LocalUser라는 FTP 서버의 루트 폴더 아래에 가상 또는 물리적 디렉터리를 만들어야 합니다. 다음으로 FTP 사이트에 액세스할 각 사용자 계정에 대한 가상 또는 물리적 디렉터리를 만들어야 합니다. 다음 표에서는 FTP 서비스와 함께 제공되는 인증 공급자에 대한 홈 디렉터리 구문을 나열합니다.
사용자 계정 유형 | 물리적 홈 디렉터리 구문 |
---|---|
익명 사용자 | %FtpRoot%\LocalUser\Public |
로컬 Windows 사용자 계정(기본 인증 필요) | %FtpRoot%\LocalUser\%UserName% |
Windows 도메인 계정(기본 인증 필요) | %FtpRoot%\%UserDomain%\%UserName% |
IIS 관리자 또는 사용자 지정 인증 사용자 계정 ASP.NET | %FtpRoot%\LocalUser\%UserName% |
참고
위의 표에서 %FtpRoot%는 FTP 사이트의 루트 디렉터리입니다. 예를 들면 입니다 C:\Inetpub\Ftproot
.
전역 가상 디렉터리를 무시합니다. FTP 사이트의 루트 수준에서 구성된 가상 디렉터리에는 FTP 사용자가 액세스할 수 없습니다. 모든 가상 디렉터리가 사용자의 물리적 또는 가상 홈 디렉터리 경로 아래에 명시적으로 정의되어야 합니다.
FTP 방화벽 설정 구성
FTP 서비스에 대한 수동 포트 범위 구성
이 섹션에서는 FTP 서비스에 대한 수동 연결을 위해 서버 수준 포트 범위를 구성합니다. 다음 단계를 사용합니다.
IIS 관리자로 이동합니다. 연결 창에서 트리의 서버 수준 노드를 클릭합니다.
기능 목록에서 FTP 방화벽 지원 아이콘을 두 번 클릭합니다.
데이터 채널 포트 범위의 값 범위를 입력합니다.
FTP 서비스의 포트 범위를 입력한 후 작업 창에서 적용 을 클릭하여 구성 설정을 저장합니다.
참고
포트의 유효한 범위는 1025-65535입니다. (포트 1-1024는 시스템 서비스에서 사용하도록 예약되어 있습니다.)
특수 포트 범위 "0-0"을 입력하여 WINDOWS TCP/IP 동적 포트 범위를 사용하도록 FTP 서버를 구성할 수 있습니다.
자세한 내용은 다음 Microsoft 기술 자료 문서를 참조하세요.
- 174904 - TCP/IP 포트 할당에 대한 정보(
https://support.microsoft.com/kb/174904/ "Information about TCP/IP port assignments"
) - 929851 - 되었습니다. TCP/IP의 기본 동적 포트 범위는 Windows Vista 및 Windows Server 2008에서 변경되었습니다.
- 174904 - TCP/IP 포트 할당에 대한 정보(
이 포트 범위는 방화벽 서버에 허용되는 설정에 추가해야 합니다.
방화벽의 외부 IP 주소 설정에 대해 방화벽 서버에 대한 외부 연결 주소의 IPv4 주소를 입력합니다.
방화벽 서버의 외부 IPv4 주소를 입력한 후 작업 창에서 적용 을 클릭하여 구성 설정을 저장합니다.
요약
이 절차에서 완료한 항목을 검토합니다.
- FTP 서비스에 대한 수동 포트 범위를 구성했습니다.
- 특정 FTP 사이트에 대한 외부 IPv4 주소를 구성했습니다.
Windows Server 2008 방화벽을 구성하는 방법에 대한 자세한 내용은 (선택 사항) 3단계: "Windows 방화벽 설정 구성을 참조하세요. 방화 작업에 대한 자세한 정보를 참조하세요.
FTP 서버 이름 예제
FTP는 호스트가 고객을 위해 계정을 프로비전할 때 일반적으로 포함된 서비스입니다. 위에 제공된 지침은 고객을 위해 IIS 서비스에 대한 FTP를 사용하도록 설정하지만, 호스팅 회사 이름을 기반으로 하는 경우 FTP 서버 이름은 다음과 같이 표시될 수 있습니다.
ftp.hostingcompany.com모든 사용자에 대해 이름이 충분히 명확할 수 있습니다. 고객이 FTP 디렉터리에 연결하는 데 사용하는 경우 해당 디렉터리에 배치되고 해당 폴더만 볼 수 있습니다. 그러나 FTP 서버 이름은 다음과 같이 예약된 도메인을 기반으로 하는 FTP 서버 이름으로 고객에게 매력적이지 않을 수 있습니다.
- ftp.customerdomain.com
- customerdomain.com
고객이 예약된 도메인 이름과 연결된 FTP 서버 이름이 있는 경우 FTP 서비스 환경이 더욱 개인화되고 매력적입니다. 기능적으로 이전 예제와 동일하지만 이 옵션은 고객의 도메인 이름을 간소화합니다. 각 고객에 대한 사용자 지정 FTP 서버 이름을 설정하려면 고객 도메인에 대한 적절한 DNS 레코드를 만들어야 합니다. 이를 위해서는 추가 프로비저닝 단계가 필요합니다. 각 고객에 대해 사용자 지정 FTP 서버 이름을 제공하는 경우 도메인 이름이 업데이트될 때 FTP 서비스 중단을 방지하기 위해 대체 서버 이름을 제공할 수도 있습니다. 사용자 지정 이름과 함께 제공할 대체 이름의 예는 다음과 같을 수 있습니다.ftp.username.hostingcompany.com 이러한 경우 고객은 두 개의 서버 이름을 받고 두 이름 중 하나를 사용하여 동일한 디렉터리에 연결할 수 있습니다. 예를 들어:
- ftp.customerdomain.com(또는 customerdomain.com)
- ftp.username.hostingcompany.com
Visual Web Developer에서 연결
이 문서에서는 지금까지 공유 호스팅 환경에서 FTP를 배포하는 방법을 중시했습니다. 이 섹션에서는 고객이 VWD(Visual Web Developer 2008)를 활용하여 호스트에서 제공하는 FTP 서비스를 사용하여 웹 애플리케이션을 게시하는 방법을 설명합니다. 다음 예제에서는 다음을 가정합니다.
- 호스팅 회사에서 "ftpuser1"이라는 사용자에게 계정을 프로비전했습니다.
- 호스팅 회사에서 해당 가상 폴더 "ftproot\LocalUser*ftpuser1*"을 만들었습니다.
VWD를 사용하여 웹 애플리케이션 콘텐츠를 게시하기 위해 ftpuser1은 다음 단계를 수행합니다.
Ftpuser1은 VWD(Visual Web Developer 2008)에서 "WebSite1"이라는 웹 사이트를 엽니다.
Ftpuser1은 웹 사이트 메뉴에서 웹 사이트 복사를 선택합니다.
Ftpuser1에서 연결을 클릭합니다.
Ftpuser1은 다음 값을 입력합니다.
- 호스팅 회사에서 제공하는 FTP 서버 이름입니다. 아래 예제에서 루프백 IP 주소는 127.0.0.1입니다.
- 포트. 아래 예제에서 기본값은 포트 21입니다.
- 수동 모드 옵션입니다.
- 기본 인증 옵션. Ftpuser1은 익명 로그인을 선택 취소합니다.
- 사용자 이름: ftpuser1.
- Password.
그런 다음 Ftpuser1에서 열기를 클릭합니다.
Ftpuser1의 폴더가 원격 웹 사이트 창에 나타납니다. 다음 예제에서는 ftpuser1이 처음으로 웹 사이트를 게시하기 때문에 창이 비어 있습니다.
Ftpuser1은 모든 파일 및 폴더를 선택한 다음 동기화를 클릭하여 원본 웹 사이트 창에 모든 콘텐츠 항목을 게시합니다.
- Ftpuser1이 왼쪽 창을 클릭합니다.
- Ftpuser1은 Ctrl+A를 입력하여 모든 파일을 선택합니다.
- Ftpuser1은 동기화 를 클릭합니다(두 창 사이에 있음, 위쪽의 세 번째 단추).
파일 및 폴더는 FTP 서버에 업로드되고 사용자의 가상 디렉터리 ftpuser1에 저장됩니다. (사용자는 사용자 격리 제한으로 인해 동일한 서버에서 다른 사용자의 콘텐츠를 인식하지 못합니다.)
결론
이 가이드에서는 공유 호스팅 환경에서 IIS 서비스용 FTP를 설치하고 구성하는 데 필요한 정보를 제공합니다. 또한 고객이 Visual Web Developer를 활용하여 FTP 사이트 디렉터리에 콘텐츠를 게시하는 방법도 보여줍니다.