IIS 7에서 SSL을 통한 FTP 사용
호환성
버전 | 참고 |
---|---|
IIS 7.5 | FTP 7.5 서비스는 Windows 7 및 Windows Server 2008 R2에서 IIS 7.5의 기능으로 제공됩니다. |
IIS 7.0 | FTP 7.0 및 FTP 7.5 서비스는 IIS 7.0용 대역 외로 제공되었으며, URL https://www.iis.net/download/FTP에서 서비스를 다운로드하고 설치해야 했습니다. |
소개
Microsoft는 Windows Server® 2008용으로 완전히 다시 작성된 새 FTP 서비스를 만들었습니다. 이 FTP 서비스는 웹 작성자가 이전보다 더 나은 콘텐츠를 게시할 수 있도록 하는 많은 새로운 기능을 통합하고 웹 관리자에게 더 많은 보안 및 배포 옵션을 제공합니다.
기능 중 하나는 FTP 클라이언트와 서버 간에 세션을 암호화할 수 있는 SSL(Secure Sockets Layer)을 통한 FTP입니다. 이 문서에서는 FTP 사이트 설정을 안내합니다. 그리고 새 FTP 사용자 인터페이스와 함께 SSL을 사용하도록 해당 사이트를 구성하면 IIS 7.0 구성 파일을 직접 편집할 수 있습니다. 다음과 같이 구성됩니다.
- 필수 구성 요소
- 선택 사항: 자체 서명된 SSL 인증서 만들기
- IIS 7.0 관리자를 사용하여 SSL 사용 FTP 사이트 만들기
- IIS 7.0 구성 파일을 편집하여 SSL 기반 FTP 게시 추가
참고
이 연습에는 로컬 관리자 계정을 사용하여 FTP 사이트에 로그인하는 일련의 단계가 포함되어 있습니다. 이러한 단계는 루프백 주소를 사용하거나 원격 서버의 SSL을 통해서만 서버 자체에서 수행해야 합니다. 관리자 계정 대신 별도의 사용자 계정을 사용하려면 적절한 폴더를 만들고 필요한 경우 해당 사용자 계정에 대한 올바른 권한을 설정해야 합니다.
사전 요구 사항
이 문서의 절차를 완료하려면 다음 항목을 설치해야 합니다.
IIS 7.0은 Windows 2008 서버에 설치해야 하며 인터넷 정보 서비스 관리자를 설치해야 합니다.
새 FTP 서비스입니다. 다음 링크 중 하나를 사용하여 웹 사이트에서 FTP 서비스를 https://www.iis.net/ 다운로드하고 설치할 수 있습니다.
- IIS 7.0용 FTP 7.5(x64)
- IIS 7.0용 FTP 7.5(x86)
FTP 게시를 위한 루트 폴더를 만들어야 합니다.
에서 폴더 만들기
%SystemDrive%\inetpub\ftproot
관리자 그룹에 대한 액세스를 허용하도록 권한을 설정합니다.
- 명령 프롬프트를 엽니다.
- 다음 명령을 입력합니다.
ICACLS "%SystemDrive%\inetpub\ftproot" /Grant administrators:F /T
- 명령 프롬프트를 닫습니다.
참고
이 연습에 나열된 설정은 FTP 사이트의 경로로 지정합니다 %SystemDrive%\inetpub\ftproot
. 이 경로를 사용할 필요는 없습니다. 그러나 사이트의 위치를 변경하는 경우 이 연습 전체에서 사용되는 사이트 관련 경로를 변경해야 합니다.
선택 사항: 자체 서명된 SSL 인증서 만들기
이 선택적 작업에서는 FTP 사이트를 테스트하는 데 사용할 자체 서명된 SSL 인증서를 만듭니다.
참고
인터넷 기반 작업을 위해 FTP 사이트를 설정하는 경우 VeriSign, Thawte, DigiCert 등과 같은 여러 인증 기관 중 하나에서 SSL 인증서를 가져옵니다. 자세한 내용은 인증 기관을 참조하세요.
- 인터넷 정보 서비스(IIS 7.0) 관리자를 엽니다.
- 연결 트리의 위쪽 노드에서 컴퓨터를 클릭한 다음 서버 인증서 기능을 두 번 클릭합니다.
- 작업 창에서 Self-Signed 인증서 만들기를 클릭합니다.
- 새 인증서의 이름으로 "내 FTP 인증서"를 입력한 다음 확인을 클릭합니다.
IIS 7.0 관리자를 사용하여 SSL 사용 FTP 사이트 만들기
1단계: FTP 사이트 마법사를 사용하여 SSL 기반 FTP 사이트 만들기
이 첫 번째 단계에서는 관리자 계정으로만 열 수 있는 새 FTP 사이트를 만듭니다.
IIS 7.0 관리자로 이동합니다. 연결 창에서 트리의 사이트 노드를 클릭합니다.
트리에서 사이트 노드를 마우스 오른쪽 단추로 클릭하고 FTP 사이트 추가를 클릭하거나 작업 창에서 FTP 사이트 추가를 클릭합니다.
FTP 사이트 추가 마법사가 표시되는 경우:
FTP 사이트 이름 상자에 "내 새 FTP 사이트"를 입력한 다음 필수 구성 요소 섹션에서 만든 폴더로 이동합니다
%SystemDrive%\inetpub\ftproot
.참고
콘텐츠 폴더의 경로를 입력하도록 선택하는 경우 경로에서 환경 변수를 사용할 수 있습니다.
다음을 클릭합니다.
마법사의 다음 페이지에서 다음을 수행합니다.
IP 주소 드롭다운에서 FTP 사이트의 IP 주소를 선택하거나 기본 선택 항목인 "할당되지 않은 모든 항목"을 적용하도록 선택합니다. 이 연습의 뒷부분에서 관리자 계정을 사용하므로 서버에 대한 액세스를 제한하고 IP 주소 상자에 "127.0.0.1"을 입력하여 컴퓨터의 로컬 루프백 IP 주소를 입력해야 합니다.
일반적으로 포트 상자에 FTP 사이트의 TCP/IP 포트 를 입력합니다. 이 연습에서는 기본 포트 21을 적용하도록 선택합니다.
이 연습에서는 호스트 이름을 사용하지 않으므로 가상 호스트 상자가 비어 있는지 확인합니다.
인증서 드롭다운이 SSL 인증서로 설정되어 있는지 확인합니다. 예를 들어 선택적 단계에 따라 자체 서명된 인증서를 만든 경우 드롭다운 상자에 "내 FTP 인증서"가 표시됩니다.
SSL 허용 옵션이 선택되어 있는지 확인합니다.
다음을 클릭합니다.
마법사의 다음 페이지에서 다음을 수행합니다.
인증 설정에 대해 기본을 선택합니다.
권한 부여 설정의 경우:
- 액세스 허용 드롭다운에서 "지정된 사용자"를 선택합니다.
- 사용자 이름에 "administrator"를 입력합니다.
- 권한 옵션에 대해 읽기 및 쓰기를 선택합니다.
이러한 항목을 완료했으면 마침을 클릭합니다.
요약
새 FTP 서비스를 사용하여 새 SSL 기반 FTP 사이트를 성공적으로 만들었습니다.
이 단계에서 완료한 항목을 요약하려면 다음을 수행합니다.
- 사이트의 콘텐츠 루트
%SystemDrive%\inetpub\ftproot
가 인 "내 새 FTP 사이트"라는 새 FTP 사이트를 만들었습니다. - 포트 21에서 컴퓨터에 대한 로컬 루프백 주소에 FTP 사이트를 바인딩했습니다.
- FTP 사이트에 SSL(Secure Sockets Layer)이 필요하도록 선택하고 SSL 인증서를 선택했습니다.
- 기본 인증을 사용하도록 설정하고 읽기 및 쓰기 액세스에 대한 로컬 관리자 계정에 대한 권한 부여 규칙을 만들었습니다.
2단계: 추가 FTP SSL 설정 구성
FTP에 대한 SSL 정책은 사이트별로 사용자 지정할 수 있습니다. 컨트롤 및 데이터 채널에 대해 다른 설정을 지정할 수 있습니다. 이 단계에서는 다른 모든 FTP 작업이 아닌 경우에도 모든 사용자 자격 증명이 암호화되도록 FTP 사이트에 대한 추가 SSL 설정을 구성합니다.
IIS 7.0 관리자로 이동합니다. 1단계에서 만든 FTP 사이트의 노드를 클릭합니다. 모든 FTP 기능에 대한 아이콘이 표시됩니다.
SSL 옵션을 구성하려면 FTP SSL 설정 아이콘을 두 번 클릭하여 SSL 설정 기능 페이지를 엽니다.
FTP SSL 설정 페이지가 표시되면 사용자 지정 옵션을 선택한 다음 고급 단추를 클릭합니다.
고급 SSL 정책 대화 상자가 표시되는 경우:
컨트롤 채널에 대한 자격 증명에만 필요 옵션을 선택합니다.
참고
이 설정을 사용하려면 모든 사용자 이름과 암호가 SSL을 통해 암호화되어야 하지만 클라이언트는 다른 모든 제어 채널 활동을 암호화할지 여부를 선택할 수 있습니다.
데이터 채널에 대한 허용 옵션을 선택합니다.
참고
이 설정을 사용하면 클라이언트가 데이터 채널 활동을 암호화할지 여부를 선택할 수 있습니다.
이러한 항목을 완료했으면 확인을 클릭합니다.
FTP SSL 설정 페이지의 작업 창에서 적용을 클릭하여 SSL 설정을 저장합니다.
요약
이 단계에서 완료한 항목을 요약하려면 다음을 수행합니다.
- 모든 사용자 자격 증명을 암호화하도록 제어 채널 SSL 정책을 구성하고 FTP 클라이언트가 다른 모든 제어 채널 활동을 암호화할지 여부를 결정할 수 있도록 했습니다.
- FTP 클라이언트가 데이터 채널 활동을 암호화할지 여부를 결정할 수 있도록 데이터 채널 SSL 정책을 구성했습니다.
FTP 사이트에 로그인
1단계에서는 관리자 계정으로 액세스할 수 있는 FTP 사이트를 만들었습니다. 2단계에서는 FTP 클라이언트가 다른 모든 제어 채널 및 데이터 채널 활동을 암호화할지 여부를 선택할 수 있도록 하면서 모든 사용자 자격 증명을 암호화하도록 제어 채널 SSL 정책을 구성했습니다.
SSL 지원 FTP 클라이언트를 사용하여 FTP 서버에 로그인할 때 FTP 서버는 다음과 같은 명시적 보안 옵션을 지원합니다.
- TLS-C/TLS - RFC2228 기본값과의 연결에 TLS를 사용합니다. 즉, 데이터 연결에 대한 암시적 보호가 없습니다.
- TLS-P/SSL - 연결에 TLS를 사용합니다. 즉, 데이터 연결이 암시적으로 보호됩니다.
이러한 설정은 대부분의 3부 FTP 클라이언트에서 SSL 연결 옵션을 지정할 때 구성할 수 있습니다.
IIS 7.0 구성 파일을 편집하여 SSL 기반 FTP 게시 추가
IIS 7.0 구성 파일을 편집하여 기존 웹 사이트에 SSL 기반 FTP 게시를 추가할 수도 있습니다.
참고
applicationHost.config 파일을 편집하려면 전체 관리 권한이 필요합니다. 다음 두 가지 방법 중 하나를 사용합니다.
- 로컬 "관리자" 계정을 사용하여 컴퓨터에 로그인합니다.
또는
- 로컬 "관리자" 계정이 아닌 관리 권한이 있는 계정을 사용하여 로그인한 경우 "관리자 권한으로 실행" 옵션을 사용하여 메모장을 엽니다.
참고
Windows Vista 및 Windows Server 2008 운영 체제의 UAC(사용자 계정 컨트롤) 보안 구성 요소가 applicationHost.config 파일에 액세스할 수 없으므로 위의 단계 중 하나가 필요합니다. UAC에 대한 자세한 내용은 사용자 계정 컨트롤을 참조하세요.
다음 단계에서는 기본 웹 사이트에 대한 FTP 게시를 추가하는 데 필요한 모든 설정을 안내합니다.
1단계: SSL 인증서에 대한 해시 검색:
- 서버 인증서 기능에서 SSL 인증서를 두 번 클릭합니다. 예를 들어 선택적 단계에 따라 자체 서명된 인증서를 만든 경우 "내 FTP 인증서"라는 인증서를 두 번 클릭합니다.
- 세부 정보 탭을 클릭합니다.
- 지문 값을 찾을 때까지 필드를 스크롤합니다.
- 지문 값을 강조 표시합니다. 데이터는 다음과 같이 표시됩니다.
"57 68 6F 61 20 44 75 64 65 2C 20 49 49 53 20 52 6F 63 6B 73" - 텍스트 상자에서 16진수 데이터를 복사하여 클립보드에 붙여넣습니다. 그런 다음 Windows 메모장을 열고 빈 문서에 데이터를 붙여넣습니다.
참고
나중에 이 정보를 사용합니다.
2단계: 기본 웹 사이트에 FTP 추가
Windows 메모장과 같은 텍스트 편집기를 사용하여 기본적으로 폴더에
%SystemRoot%\System32\inetsrv\config
있는 applicationHost.config 파일을 엽니다.기본 웹 사이트의 섹션을 찾습니다. 이는 다음 예와 유사합니다.
<site name="Default Web Site" id="1"> <application path="/"> <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" /> </application> <bindings> <binding protocol="http" bindingInformation="*:80:" /> </bindings> </site>
bindings 컬렉션에 새 바인딩 요소를 만듭니다. "ftp"를 포함하도록 새 바인딩 요소의 프로토콜 특성 값을 설정한 다음 bindingInformation 특성의 포트 값을 "21"을 포함하도록 변경합니다. 이제 기본 웹 사이트의 설정이 다음 예제와 유사합니다.
<site name="Default Web Site" id="1"> <application path="/"> <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" /> </application> <bindings> <binding protocol="http" bindingInformation="*:80:" /> <binding protocol="ftp" bindingInformation="*:21:" /> </bindings> </site>
<인증 및 SSL 설정을 포함하는 닫는 <> 바인딩 태그 아래에 ftpServer> 섹션을 추가합니다.
참고
FTP 사이트에 대한 인증 설정은 URL별로 구성할 수 있는 웹 사이트에 대한 인증과 달리 사이트 수준에서 구성됩니다.
<ftpServer> <security> <authentication> <anonymousAuthentication enabled="false" userName="IUSR" /> <basicAuthentication enabled="true" /> </authentication> <ssl serverCertHash="" controlChannelPolicy="SslRequire" dataChannelPolicy="SslRequire" /> </security> </ftpServer>
SSL 인증서의 지문 데이터를 복사하여 SSL 요소의 serverCertHash 특성에 붙여넣습니다. 지문 데이터에서 모든 공백을 제거합니다.
참고
16진수 데이터를 대문자로 변환하지 않으면 나중에 IIS 관리자에 표시되지 않습니다.
이제 기본 웹 사이트 설정에 다음 예제와 같은 항목이 포함되어야 합니다.
<site name="Default Web Site" id="1"> <application path="/"> <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" /> </application> <bindings> <binding protocol="http" bindingInformation="*:80:" /> <binding protocol="ftp" bindingInformation="*:21:" /> </bindings> <ftpServer> <security> <authentication> <anonymousAuthentication enabled="false" /> <basicAuthentication enabled="true" /> </authentication> </security> <ssl serverCertHash="57686F6120447564652C2049495320526F636B73" controlChannelPolicy="SslRequire" dataChannelPolicy="SslRequire" /> </ftpServer> </site>
applicationHost.config 파일의 아래쪽으로 스크롤하고 권한 부여 설정을 포함하는 기본 웹 사이트의 위치 섹션을 추가합니다.
참고
이 예제와 같이 FTP 사이트에 대한 권한 부여 설정은 URL별로 구성됩니다.
<location path="Default Web Site"> <system.ftpServer> <security> <authorization> <add accessType="Allow" users="administrator" permissions="Read, Write" /> </authorization> </security> </system.ftpServer> </location>
applicationHost.config 파일을 저장합니다.
이제 SSL 기반 FTP 클라이언트를 사용하여 기본 웹 사이트에 로그인할 수 있습니다.
요약
이 작업에서는 IIS 7.0 구성 파일을 편집하여 기본 웹 사이트에 SSL 기반 FTP 게시를 추가했습니다. 이 작업에서 완료한 항목을 요약하려면 다음을 수행합니다.
- 기본 웹 사이트에 FTP 바인딩을 추가했습니다.
- 기본 웹 사이트에 대해 FTP 기본 인증을 사용하도록 설정하고 FTP 익명 인증을 사용하지 않도록 설정했습니다.
- 모든 제어 채널 및 데이터 채널 작업에 대해 SSL을 요구하도록 사이트를 구성했습니다.
- 기본 웹 사이트에 대한 읽기/쓰기 권한에 대한 관리자 계정을 구성했습니다.