시나리오: IIS에서 FTP 사이트 빌드
키스 뉴먼과 로버트 맥머레이
FTP(파일 전송 프로토콜)는 단순히 컴퓨터 시스템 간에 파일을 전송하는 프로토콜입니다. IIS 8에는 구성하기 쉬운 FTP 서버가 포함되어 있습니다.
이 문서에서는 기존 IIS 8 웹 서버에 FTP 서버를 설치하고 구성하는 방법을 보여 줍니다. 처음 두 단계가 필요합니다. 다른 모든 단계는 선택 사항이지만 권장됩니다.
필수 조건
이 자습서를 최대한 활용하려면 다음 운영 체제 중 하나를 실행하는 컴퓨터에 액세스할 수 있어야 합니다.
- Windows Server® 2012
- Windows® 8
1단계: 기존 IIS 웹 서버에 FTP 설치
이 단계에서는 Windows Server 2012 또는 Windows 8에서 실행되는 기존 IIS 웹 서버에 FTP 서비스를 설치하는 방법을 보여 줍니다.
Windows Server 2012에 FTP를 설치하려면
- 시작 화면에서 서버 관리자 타일을 클릭한 다음 예를 클릭합니다.
- 서버 관리자 대시보드에서 역할 및 기능 추가를 클릭합니다.
- 역할 및 기능 추가 마법사 의 시작하기 전 페이지가 표시되면 다음을 클릭합니다.
- 설치 유형 선택 페이지에서 역할 기반 또는 기능 기반 설치를 선택한 후 다음을 클릭합니다.
- 대상 서버 선택 페이지에서 서버 풀에서 서버 선택을 선택하고 서버 풀 목록에서 서버를 선택한 후 다음을 클릭합니다.
- 서버 역할 선택 페이지에서 웹 서버(IIS) 노드, FTP 서버 노드를 차례로 확장합니다.
- FTP 서버 확인란 및 FTP 서비스 확인란을 차례로 선택한 후 다음을 클릭합니다.
- 기능 선택 페이지에서 다음을 클릭합니다.
- 설치 선택 확인 페이지에서 설치를 클릭합니다.
Windows 8에 FTP를 설치하려면
- 시작 화면에서 제어판 입력한 다음 검색 결과에서 제어판 아이콘을 클릭합니다.
- 프로그램을 클릭한 다음 Windows 기능 켜기 또는 끄기를 클릭합니다.
- Windows 기능 대화 상자에서 인터넷 정보 서비스 노드를 확장합니다.
- FTP 서버 노드를 확장합니다.
- FTP 서버 검사 상자와 FTP 서비스 검사 상자를 선택한 다음 확인을 클릭합니다.
2단계: FTP 사이트 추가
FTP 서비스가 IIS 웹 서버에 설치되면 하나 이상의 FTP 사이트를 추가할 수 있습니다. 클라이언트가 FTP(파일 전송 프로토콜)를 사용하여 사이트 간에 파일을 전송할 수 있도록 하려는 경우 FTP 사이트를 추가합니다.
참고 항목
FTP 설정은 사이트 섹션에 포함되어 있으므로 FTP 설정을 변경하면 웹 사이트 응용 프로그램 재활용도 강제로 수행됩니다. 이 부작용을 방지하려면 HTTP 및 FTP 대신 FTP 전용으로 구성된 사이트를 추가합니다.
FTP 사이트를 추가하려면
IIS 관리자를 엽니다.
연결 창에서 서버 노드를 확장하고 사이트 노드를 클릭합니다.
작업 창에서 FTP 사이트 추가 를 클릭하여 FTP 사이트 추가 마법사를 엽니다.
사이트 정보 페이지에서 FTP 사이트 이름 상자에 FTP 사이트에 대한 고유 이름을 입력합니다.
실제 경로 상자에 실제 경로를 입력하거나 찾아보기 단추(...)를 클릭하여 콘텐츠 디렉터리의 실제 경로를 찾습니다.
다음 을 클릭하여 바인딩 및 SSL 설정 페이지를 엽니다.
바인딩에서 IP 주소 목록에 IP 주소를 모두 할당되지 않음상태로 유지하지 않으려는 경우 IP 주소를 선택하거나 입력합니다.
포트 상자에 포트 번호를 입력합니다.
필요에 따라 단일 IP 주소에 대해 여러 FTP 사이트를 호스트하려는 경우 가상 호스트 상자에 호스트 이름을 입력합니다. 예를 들어
www.contoso.com
을(를) 입력합니다.사이트를 수동으로 시작하려는 경우 자동으로 FTP 사이트 시작 상자를 지웁니다.
SSL의 SSL 인증서 목록에서 인증서를 선택합니다. 필요에 따라 보기 를 클릭하여 인증서 대화 상자를 열고 선택한 인증서에 대한 정보를 확인합니다.
다음 옵션 중 하나를 선택합니다.
- SSL 허용: FTP 서버가 클라이언트와의 비 SSL 및 SSL 연결을 지원할 수 있습니다.
- SSL 필요: FTP 서버와 클라이언트 간의 통신에 SSL 암호가 필요합니다.
다음 을 클릭하여 인증 및 권한 부여 정보 페이지를 엽니다.
인증에서 사용하려는 인증 방법을 선택합니다.
- 익명: 사용자 이름에 익명 또는 ftp만 제공하면 어떤 사용자라도 콘텐츠에 액세스할 수 있습니다. (모두 그렇지는 않지만, 대부분의 FTP 클라이언트는 사용자 이름을 자동으로 입력합니다.)
- 기본: 콘텐츠에 액세스하려면 사용자가 유효한 사용자 이름 및 암호를 제공해야 합니다. 기본 인증은 네트워크를 통해 암호화되지 않은 암호를 전송하기 때문에 SSL(Secure Sockets Layer)을 사용하는 것 같이 FTP 서버와 클라이언트 간의 연결이 안전하다는 것을 알고 있는 경우에만 이 인증 방법을 사용합니다.
권한 부여아래의 액세스 허용 대상 목록에서 다음 옵션 중 하나를 선택합니다.
- 모든 사용자: 익명이든 식별되었든 관계없이 모든 사용자가 콘텐츠에 액세스할 수 있습니다.
- 익명 사용자: 익명 사용자가 콘텐츠에 액세스할 수 있습니다.
- 지정한 역할 또는 사용자 그룹: 특정 역할 또는 사용자 그룹의 구성원만 콘텐츠에 액세스할 수 있습니다. 해당 상자에 역할 또는 사용자 그룹을 입력합니다.
- 지정된 사용자: 지정된 사용자만 이 콘텐츠에 액세스할 수 있습니다. 해당 상자에 사용자 이름을 입력합니다.
액세스 허용 대상 목록에서 옵션을 선택한 경우 다음 권한 중 하나 또는 둘을 선택합니다.
- 읽기: 권한이 부여된 사용자가 디렉터리에서 콘텐츠를 읽을 수 있습니다.
- 쓰기: 권한이 부여된 사용자가 디렉터리에 콘텐츠를 쓸 수 있습니다.
Finish를 클릭합니다.
3단계: FTP 사이트 기본값 구성
새 FTP 사이트에서 다른 기본값을 사용하도록 하려면 FTP 사이트 기본값을 변경합니다.
참고 항목
기본값을 변경하면 기존 사이트가 새 값으로 재정의되지 않습니다. 기존 사이트의 값을 수동으로 변경합니다.
FTP 사이트 기본값을 구성하려면
- IIS 관리자를 엽니다.
- 커넥트 창에서 서버 노드와 사이트 노드를 클릭합니다.
- 작업 창에서 FTP 사이트 기본값을 클릭합니다.
- 설정을 편집한 다음 확인을 클릭합니다.
다음 표에서는 FTP 사이트 기본값 대화 상자에서 구성에 사용할 수 있는 설정을 나열합니다 .
범주 설정 | 설정 이름 | 설명 |
---|---|---|
일반 | UTF-8 허용 | UTF8 인코딩을 사용할지 여부를 지정합니다. 기본값은 true입니다. |
일반 | 자동으로 시작 | true이면 FTP 사이트를 만들 때 또는 FTP 서비스가 시작될 때 시작됩니다. 기본값은 true입니다. |
연결 | 제어 채널 제한 시간 | 비활성으로 인해 연결 시간이 초과되는 시간 제한(초)을 지정합니다. |
연결 | 데이터 채널 제한 시간 | 비활성으로 인해 데이터 채널이 시간 초과되는 시간 제한(초)을 지정합니다. |
연결 | 소켓 풀링 사용 안 함 | 포트 번호 또는 호스트 이름이 아닌 IP 주소로 구분된 사이트에 소켓 풀링을 사용할지 여부를 지정합니다. |
연결 | 최대 연결 | 서버에 대한 최대 동시 연결을 지정합니다. |
연결 | 최대 커넥트 초기화 | 최대 연결 응답을 보낼 때 FTP 세션의 연결을 끊을지 여부를 지정합니다. |
연결 | 서버 수신 대기 백로그 | 큐에 대기할 수 있는 미해결 소켓 수를 지정합니다. |
연결 | 인증되지 않은 제한 시간 | 새 연결이 만들어지고 인증이 성공하는 시점 사이의 시간 제한(초)을 지정합니다. |
자격 증명 캐싱 | 활성화 | FTP 서비스에 대해 자격 증명 캐싱을 사용할 수 있는지 여부를 지정합니다. |
자격 증명 캐싱 | 플러시 간격 | 캐시에 저장된 자격 증명의 캐시 수명(초)을 지정합니다. |
파일 처리 | 업로드하는 동안 파일 읽기 허용 | 서버로 전송되는 동안 파일을 읽을 수 있는지 여부를 지정합니다. |
파일 처리 | 이름 바꾸기 허용 | 이름을 바꿀 때 파일이 다른 파일을 덮어쓸 수 있는지 여부를 지정합니다. |
파일 처리 | 부분 업로드 유지 | 부분적으로 업로드된 파일을 유지할지 여부를 지정합니다. |
4단계: 방화벽 지원 구성
FTP 방화벽 지원 기능을 사용하여 FTP 서버가 방화벽에서 수동 데이터 연결을 수락할 수 있도록 하는 다음 설정을 구성합니다.
- 데이터 채널 포트 범위: 수동 데이터 연결에 대한 포트 범위를 지정합니다. 또한 방화벽에서 동일한 범위의 포트를 열어야 합니다. 이 옵션은 서버 수준에서만 구성할 수 있으며 포트 범위 "0-0"은 서버의 임시 포트 범위를 사용하는 것을 의미합니다. 임시 포트는 TCP/IP가 미리 정의된 범위에서 할당하는 수명이 짧은 전송 프로토콜 포트입니다.
- 방화벽의 외부 IP 주소: 클라이언트가 방화벽을 통해 FTP 서버와 통신할 때 사용할 IP 주소를 알 수 있도록 방화벽의 외부 IP 주소를 지정합니다.
방화벽 지원을 구성하려면
IIS 관리자를 엽니다.
연결 창에서 서버 노드를 선택합니다.
기능 보기에서 FTP 방화벽 지원을 두 번 클릭합니다.
데이터 채널 포트 범위 상자에 포트 번호 범위를 입력합니다(하이픈으로 구분). 예를 들어 5000-6000을 입력합니다. 또는 Windows TCP/IP 설정에 지정된 기본 포트 범위를 사용하려면 0-0을 입력합니다.
참고 항목
이러한 포트는 예약된 포트이므로 포트 0-1024를 사용하지 마세요.
방화벽의 외부 IP 주소 상자에 방화벽 의 IP 주소를 입력합니다.
작업 창에서 적용을 클릭합니다.
5단계: 사용자 격리 구성
사용자 격리 기능을 사용하면 FTP 서버를 구성하여 사용자를 격리할 수 있으므로 사용자가 동일한 FTP 사이트에 있는 다른 사용자의 디렉터리에 액세스할 수 없습니다. 사용자를 격리하지 않도록 선택하는 경우 공통 디렉터리 구조를 공유합니다.
예를 들어 공유 콘텐츠에 대한 다운로드 기능만 제공하는 사이트 또는 사용자 간의 데이터 보호가 필요하지 않은 사이트에서 사용자를 격리하지 않도록 선택할 수 있습니다.
사이트에서 사용자를 격리하려는 경우 다음 격리 옵션 중 하나를 선택할 수 있습니다.
- 사용자 이름 디렉터리: FTP 사용자 계정의 이름이 같은 실제 또는 가상 디렉터리에 사용자 세션을 격리합니다. 사용자는 FTP 루트 위치만 볼 수 있으므로 물리적 또는 가상 디렉터리 트리를 더 높게 탐색할 수 없습니다. 생성된 모든 전역 가상 디렉터리도 무시됩니다.
- 사용자 이름 물리적 디렉터리: FTP 사용자 계정의 이름이 같은 실제 디렉터리에 사용자 세션을 격리합니다. 사용자는 FTP 루트 위치만 볼 수 있으므로 물리적 디렉터리 트리 위로 더 높은 위치로 이동할 수 없습니다. 생성된 모든 전역 가상 디렉터리도 모든 사용자에게 적용됩니다.
- Active Directory에 구성된 FTP 홈 디렉터리: 각 FTP 사용자에 대한 Active Directory 계정 설정에 구성된 홈 디렉터리에 사용자 세션을 격리합니다.
사용자 격리를 구성하려면
IIS 관리자를 엽니다.
기능 보기에서 FTP 사용자 격리를 두 번 클릭합니다.
사용자를 격리하지 않으려면 사용자를 격리하지 마세요. 사용자를 시작합니다. 다음 옵션 중 하나를 선택합니다.
- FTP 루트 디렉터리: 모든 FTP 세션이 FTP 사이트의 루트 디렉터리에서 시작되도록 지정합니다. 이 옵션은 모든 사용자 격리 및 시작 폴더 논리를 사용하지 않도록 설정합니다.
- 사용자 이름 디렉터리: 폴더가 있는 경우 현재 로그온한 사용자의 이름이 같은 실제 또는 가상 디렉터리에서 모든 FTP 세션이 시작되도록 지정합니다. 그렇지 않으면 FTP 세션이 FTP 사이트의 루트 디렉터리에서 시작됩니다.
사용자를 격리하려면 사용자를 격리합니다. 사용자를 다음 디렉터리로 제한하고 다음 옵션 중 하나를 선택합니다.
- 사용자 이름 디렉터리(전역 가상 디렉터리 사용 안 함): 사용자 세션을 FTP 사용자 계정의 동일한 이름으로 물리적 또는 가상 디렉터리로 격리합니다.
- 사용자 이름 실제 디렉터리(전역 가상 디렉터리 사용): FTP 사용자 계정의 이름이 같은 실제 디렉터리에 사용자 세션을 격리합니다.
- Active Directory에 구성된 FTP 홈 디렉터리: 각 FTP 사용자에 대한 Active Directory 계정 설정에 구성된 홈 디렉터리에 사용자 세션을 격리합니다.
- 사용자 지정: 이 옵션은 고급 기능이며 개발자가 고유한 비즈니스 요구 사항에 따라 홈 디렉터리 조회를 제공하는 사용자 지정 공급자를 만들 수 있습니다.
이전 단계에서 Active Directory에 구성된 FTP 홈 디렉터리를 선택한 경우 설정 단추를 클릭한 다음 Active Directory 서버에 액세스할 수 있는 자격 증명 설정 대화 상자의 사용자 이름 및 암호 상자에 사용자 이름과 암호를 입력합니다. 암호 확인 상자에 암호를 다시 입력한 다음 확인을 클릭합니다.
작업 창에서 적용을 클릭합니다.
6단계: 디렉터리 검색 옵션 구성
디렉터리 검색 기능을 사용하면 사용자가 FTP 디렉터리를 탐색할 때 표시되는 항목을 제어할 수 있습니다.
디렉터리 검색 옵션을 구성하려면
IIS 관리자를 엽니다.
커넥트 창에서 서버 수준 또는 사이트 수준을 선택합니다.
기능 보기에서 FTP 디렉터리 브라우징을 두 번 클릭합니다.
FTP 디렉터리 검색 페이지의 디렉터리 목록 스타일에서 다음 옵션 중 하나를 선택합니다.
- MS-DOS: MS-DOS와 일치하는 방식으로 디렉터리 콘텐츠를 표시합니다.
- UNIX: UNIX와 일치하는 방식으로 디렉터리 콘텐츠를 표시합니다.
디렉터리 목록 옵션에서 디렉터리 목록에 표시할 정보를 선택합니다. 다음 옵션 중에서 선택할 수 있습니다.
- 가상 디렉터리: 가상 디렉터리를 표시합니다.
- 사용 가능한 바이트: 파일 크기를 바이트 단위로 표시합니다.
- 4자리 연도: 2가 아닌 네 자리 숫자를 사용하여 연도를 표시합니다.
작업 창에서 적용을 클릭합니다.
7단계: 로그온 시도 제한 구성
이 기능을 사용하면 IP 주소가 거부되기 전에 지정된 시간 내에 허용되는 최대 실패한 로그온 시도 횟수를 구성할 수 있습니다.
로그온 시도 제한을 구성하려면
- IIS 관리자를 엽니다.
- 커넥트 창에서 서버 수준을 선택합니다.
- 기능 보기에서 FTP 로그온 시도 제한을 두 번 클릭합니다.
- FTP 로그온 시도 제한 페이지에서 FTP 로그온 시도 제한 사용 검사 상자를 선택합니다.
- 실패한 최대 로그인 시도 횟수 상자에 양의 정수를 입력합니다. 기본값은 4입니다.
- 기간(초) 상자에 양의 정수(초)를 입력합니다. 기본값은 30입니다.
- 실패한 로그인 시도 횟수에 따라 IP 주소 거부를 선택하거나 로그에만 쓰기를 선택합니다. 로그에 쓰기만 선택하는 경우 IIS는 실패한 최대 시도 횟수를 초과하더라도 클라이언트를 제한하지 않습니다.
- 작업 페이지에서 적용을 클릭합니다.
8단계: 요청 필터링 구성
FTP 요청 필터링 기능 페이지를 사용하여 FTP 사이트에 대한 요청 필터링 설정을 정의합니다. FTP 요청 필터링은 ISP(인터넷 서비스 공급자) 및 애플리케이션 서비스 공급자가 프로토콜 및 콘텐츠 동작을 제한할 수 있도록 하는 보안 기능입니다.
요청 필터링을 구성하려면
- IIS 관리자를 엽니다.
- 커넥트 창에서 서버 수준 또는 사이트 수준을 선택합니다.
- 기능 보기에서 FTP 요청 필터링 아이콘을 두 번 클릭합니다.
- 일반 요청 필터링 설정을 변경하려면 작업 창에서 기능 설정 편집을 클릭합니다. 그런 다음 필요에 따라 일반 설정을 편집합니다.
- 파일 이름 확장명을 기반으로 필터를 추가하려면 파일 이름 확장명 탭을 선택합니다. 작업 창에서 파일 이름 확장명 허용 또는 파일 이름 확장명 거부를 클릭합니다. 그런 다음 파일 이름 확장명 상자에 확장 명을 입력하고 확인을 클릭합니다.
- URL 세그먼트(예: 폴더 이름)를 기반으로 필터를 추가하려면 숨겨진 세그먼트 탭을 선택합니다. 작업 창에서 숨겨진 세그먼트 추가를 클릭합니다. 그런 다음 숨겨진 세그먼트 상자에 세그먼트를 입력하고 확인을 클릭합니다.
- URL 시퀀스에 따라 필터를 추가하려면 거부된 URL 시퀀스 탭을 선택합니다. 작업 창에서 URL 시퀀스 추가를 클릭합니다. 그런 다음 URL 시퀀스 상자에 시퀀스를 입력하고 확인을 클릭합니다.
- 명령에 따라 필터를 추가하려면 명령 탭을 선택합니다. 작업 창에서 명령 허용 또는 거부 명령을 클릭합니다. 그런 다음 명령 상자에 명령을 입력하고 확인을 클릭합니다. (경고: 명령 기반 필터를 추가하는 기능은 고급 기능입니다. 이 기능을 잘못 사용하는 경우 서버의 모든 FTP 클라이언트에 대한 액세스를 거부할 수 있습니다.)
9단계: FTP 로깅 구성
FTP 로깅 기능을 사용하여 서버 또는 사이트 수준에서 로깅 기능을 구성하고 로깅 설정을 구성할 수 있습니다.
FTP 로깅을 구성하려면
IIS 관리자를 엽니다.
커넥트 창에서 서버 수준 또는 사이트 수준을 선택합니다.
기능 보기에서 FTP 로깅 아이콘을 두 번 클릭합니다.
메뉴당 하나의 로그 파일에서 사이트 또는 서버를 선택합니다.
로그 파일에서 W3C 필드 선택을 클릭한 다음 로그로 이동하려는 정보를 선택합니다.
디렉터리에서 FTP 로그 파일을 저장할 기본 폴더의 경로를 입력하거나 찾아보기를 클릭하여 기본 폴더로 찾습니다.
Encoding에서 UTF8(싱글바이트 및 멀티바이트 문자) 또는 ANSI(싱글바이트 문자만)를 선택합니다.
로그 파일 롤오버에서 FTP가 다음 목록에서 새 로그 파일을 만드는 방법을 선택합니다.
- 일정: 시간별, 매일, 매주 또는 매월을 선택하여 고정된 시간 간격으로 새 로그 파일을 만듭니다.
- 최대 파일 크기(바이트): 양수 정수를 입력하여 파일 크기가 해당 바이트 수를 초과하면 새 로그 파일을 만듭니다.
- 새 로그 파일을 만들지 마세요.
로그 파일 이름 지정 및 롤오버가 UTC(협정 세계시) 대신 현지 표준 시간대를 기반으로 하려면 파일 이름 지정 및 롤오버 검사 상자에 현지 시간 사용을 선택합니다.
작업 창에서 적용을 클릭합니다.
10단계: FTP 메시지 구성
FTP 메시지 기능을 사용하여 사용자가 FTP 사이트에 연결할 때 전송되는 메시지에 대한 설정을 수정합니다.
FTP 메시지를 구성하려면
커넥트 창에서 서버 수준 또는 사이트 수준을 선택합니다.
기능 보기에서 FTP 메시지를 두 번 클릭합니다.
FTP 메시지 페이지의 메시지 동작 아래에서 FTP 메시지의 동작 방식을 선택합니다. 다음 옵션 중에서 선택할 수 있습니다.
기본 배너 표시 안 함: FTP 서버에 대한 기본 ID 배너를 표시할지 여부를 지정합니다.
메시지의 사용자 변수 지원: FTP 메시지에 특정 사용자 변수 집합을 표시할지 여부를 지정합니다. 지원되는 사용자 변수는 다음과 같습니다.
- %BytesReceived% - 현재 세션에 대해 서버에서 클라이언트로 보낸 바이트 수입니다.
- %BytesSent% - 현재 세션에 대해 클라이언트에서 서버로 전송된 바이트 수입니다.
- %SessionID% - 현재 세션의 고유 식별자입니다.
- %SiteName% - 현재 세션을 호스팅하는 FTP 사이트의 이름입니다.
- %UserName% - 현재 로그온한 사용자의 계정 이름입니다.
로컬 요청에 대한 자세한 메시지 표시: FTP 클라이언트가 서버 자체(로컬 호스트)의 FTP 서버에 연결할 때 자세한 오류 메시지를 표시할지 여부를 지정합니다.
메시지 텍스트 아래에 다음 상자에 메시지를 입력합니다.
- 배너: FTP 클라이언트가 FTP 서버에 처음 연결할 때 FTP 서버가 표시하는 메시지를 지정합니다.
- 시작: FTP 클라이언트가 FTP 서버에 로그인할 때 FTP 서버가 표시하는 메시지를 지정합니다.
- 종료: FTP 클라이언트가 FTP 서버에서 로그오프할 때 FTP 서버가 표시하는 메시지를 지정합니다.
- 최대 커넥트: 클라이언트가 연결을 시도할 때 FTP 서버가 표시하는 메시지를 지정하며 FTP 서비스가 허용되는 최대 클라이언트 연결 수에 도달했기 때문에 표시할 수 없습니다.
작업 창에서 적용을 클릭합니다.