IIS 7에서 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 서버에 대한 방화벽 설정을 구성하는 방법을 안내합니다.
필수 조건
이 문서의 절차를 완료하려면 다음 항목을 설치해야 합니다.
IIS 7은 Windows 2008 Server에 설치해야 하며 IIS(인터넷 정보 서비스) 관리자를 설치해야 합니다.
새 FTP 서비스입니다. 다음 링크 중 하나를 사용하여 웹 사이트에서 FTP 서비스를 https://www.iis.net/ 다운로드하고 설치할 수 있습니다.
- IIS 7용 FTP 7.5(x64)
- IIS 7용 FTP 7.5(x86)
FTP 게시를 위한 루트 폴더를 만들어야 합니다.
에서 폴더 만들기
%SystemDrive%\inetpub\ftproot
익명 액세스를 허용하도록 권한을 설정합니다.
명령 프롬프트가 엽니다.
다음 명령을 입력합니다.
ICACLS "%SystemDrive%\inetpub\ftproot" /Grant IUSR:R /T
명령 프롬프트를 닫습니다.
중요 사항:
이 연습에 나열된 설정은 FTP 사이트의 경로로 지정
%SystemDrive%\inetpub\ftproot
합니다. 이 경로를 사용할 필요는 없습니다. 그러나 사이트의 위치를 변경하는 경우 이 연습 전체에서 사용되는 사이트 관련 경로를 변경해야 합니다.FTP 서비스에 대한 방화벽 설정을 구성한 후에는 방화벽을 통해 FTP 서버에 연결할 수 있도록 방화벽 소프트웨어 또는 하드웨어를 구성해야 합니다.
- 기본 제공 Windows 방화벽을 사용하는 경우 이 연습의 (선택 사항) 3단계: Windows 방화벽 설정 구성 섹션을 참조하세요.
- 다른 방화벽을 사용하는 경우 방화벽 소프트웨어 또는 하드웨어와 함께 제공된 설명서를 참조하세요.
FTP 사이트 마법사를 사용하여 익명 인증을 사용하여 FTP 사이트 만들기
이 섹션에서는 익명 사용자가 읽기 전용 액세스를 위해 열 수 있는 새 FTP 사이트를 만듭니다. 이렇게 하려면 다음 단계를 수행합니다.
IIS 7 관리자 이동합니다. 커넥트 창에서 트리의 사이트 노드를 클릭합니다.
트리에서 사이트 노드를 마우스 오른쪽 단추로 클릭하고 FTP 사이트 추가를 클릭하거나 작업 창에서 FTP 사이트 추가를 클릭합니다.
FTP 사이트 추가 마법사가 표시되는 경우:
FTP 사이트 이름 상자에 "내 새 FTP 사이트"를 입력한 다음 필수 구성 요소 섹션에서 만든 폴더로 이동합니다
%SystemDrive%\inetpub\ftproot
.참고 항목
콘텐츠 폴더의 경로를 입력하도록 선택하는 경우 경로에서 환경 변수를 사용할 수 있습니다.
다음을 클릭합니다.
마법사의 다음 페이지에서 다음을 수행합니다.
IP 주소 드롭다운에서 FTP 사이트의 IP 주소를 선택하거나 "할당되지 않은 모든 항목"의 기본 선택을 수락하도록 선택합니다. 이 FTP 사이트에 원격으로 액세스하므로 로컬 서버에 대한 액세스를 제한하지 않도록 하고 IP 주소 상자에 "127.0.0.1" 을 입력하여 컴퓨터의 로컬 루프백 IP 주소를 입력하려고 합니다.
일반적으로 포트 상자에 FTP 사이트의 TCP/IP 포트를 입력합니다. 이 연습에서는 기본 포트 21을 적용하도록 선택합니다.
이 연습에서는 호스트 이름을 사용하지 않으므로 가상 호스트 상자가 비어 있는지 확인합니다.
인증서 드롭다운이 "선택되지 않음"으로 설정되어 있고 SSL 허용 옵션이 선택되어 있는지 확인합니다.
다음을 클릭합니다.
마법사의 다음 페이지에서 다음을 수행합니다.
인증 설정에 대해 익명을 선택합니다.
권한 부여 설정의 경우 액세스 허용 드롭다운에서 "익명 사용자"를 선택합니다. 사용 권한에 대한 읽기 옵션을 선택합니다.
Finish를 클릭합니다.
IIS 7 관리자 이동합니다. 만든 FTP 사이트의 노드를 클릭합니다. 모든 FTP 기능에 대한 아이콘이 표시됩니다.
요약
이 단계에서 완료한 항목을 요약하려면 다음을 수행합니다.
- 사이트의 콘텐츠 루트
%SystemDrive%\inetpub\ftproot
를 사용하여 "내 새 FTP 사이트"라는 새 FTP 사이트를 만들었습니다. - FTP 사이트에 SSL(Secure Sockets Layer)을 사용하지 않도록 선택하여 포트 21에서 컴퓨터의 로컬 루프백 주소에 FTP 사이트를 바인딩했습니다.
- 익명 사용자가 파일에 "읽기" 액세스를 허용하도록 FTP 사이트에 대한 기본 규칙을 만들었습니다.
1단계: FTP 서비스에 대한 수동 포트 범위 구성
이 섹션에서는 FTP 서비스에 대한 수동 연결을 위해 서버 수준 포트 범위를 구성합니다. 다음 단계를 사용합니다.
IIS 7 관리자 이동합니다. 커넥트 창에서 트리의 서버 수준 노드를 클릭합니다.
기능 목록에서 FTP 방화벽 지원 아이콘을 두 번 클릭합니다.
데이터 채널 포트 범위에 대한 값 범위를 입력합니다.
FTP 서비스의 포트 범위를 입력한 후 작업 창에서 적용을 클릭하여 구성 설정을 저장합니다.
주의
포트의 유효한 범위는 1024~65535입니다. (1부터 1023까지의 포트는 시스템 서비스에서 사용하도록 예약되어 있습니다.)
특수 포트 범위 "0-0"을 입력하여 WINDOWS TCP/IP 동적 포트 범위를 사용하도록 FTP 서버를 구성할 수 있습니다.
자세한 내용은 다음 Microsoft 기술 자료 문서를 참조하세요.
- 174904 - TCP/IP 포트 할당에 대한 정보(
https://support.microsoft.com/kb/174904/
) - 929851 - Windows Vista 및 Windows Server 2008에서 TCP/IP의 기본 동적 포트 범위가 변경되었습니다.
- 174904 - TCP/IP 포트 할당에 대한 정보(
이 포트 범위는 방화벽 서버에 허용되는 설정에 추가해야 합니다.
구성을 변경한 후 MICROSOFT FTP 서비스를 통해
Start
>>Run
services.msc
다시 시작하고 FTP 서비스를 찾습니다.
2단계: 특정 FTP 사이트에 대한 외부 IPv4 주소 구성
이 섹션에서는 이전에 만든 특정 FTP 사이트에 대한 외부 IPv4 주소를 구성합니다. 다음 단계를 사용합니다.
IIS 7 관리자 이동합니다. 커넥트 창에서 트리의 앞부분에서 만든 FTP 사이트를 클릭하고 기능 목록에서 FTP 방화벽 지원 아이콘을 두 번 클릭합니다.
방화벽의 외부 IP 주소 설정에 대한 방화벽 서버의 외부 연결 주소의 IPv4 주소를 입력합니다.
방화벽 서버의 외부 IPv4 주소를 입력한 후 작업 창에서 적용을 클릭하여 구성 설정을 저장합니다.
요약
이 단계에서 완료한 항목을 요약하려면 다음을 수행합니다.
- FTP 서비스에 대한 수동 포트 범위를 구성했습니다.
- 특정 FTP 사이트에 대한 외부 IPv4 주소를 구성했습니다.
(선택 사항) 3단계: Windows 방화벽 설정 구성
Windows Server 2008에는 네트워크 위협으로부터 서버를 보호하는 데 도움이 되는 기본 제공 방화벽 서비스가 포함되어 있습니다. 기본 제공 Windows 방화벽을 사용하도록 선택하는 경우 FTP 트래픽이 방화벽을 통과할 수 있도록 설정을 구성해야 합니다.
Windows 방화벽에서 FTP 서비스를 사용할 때 고려해야 할 몇 가지 구성이 있습니다. 활성 또는 수동 FTP 연결을 사용할지 여부와 암호화되지 않은 FTP를 사용할지 아니면 SSL(FTPS)을 통해 FTP를 사용할지 여부입니다. 이러한 각 구성은 아래에 설명되어 있습니다.
참고 항목
관리자 권한으로 로그인하는 동안 이 섹션 연습의 단계를 수행해야 합니다. 이 작업은 다음 방법 중 하나를 통해 수행할 수 있습니다.
- "관리istrator"라는 실제 계정을 사용하여 서버에 로그인합니다.
- 관리자 권한이 있는 계정을 사용하고 Windows 프로그램의 액세서리 메뉴에 있는 명령 프롬프트 메뉴 항목을 마우스 오른쪽 단추로 클릭하고 "관리자 권한으로 실행"을 선택하여 명령 프롬프트를 엽니다.
위의 단계 중 하나는 Windows Vista 및 Windows Server 2008 운영 체제의 UAC(사용자 계정 제어) 보안 구성 요소가 방화벽 설정에 대한 관리자 액세스를 차단하기 때문에 필요합니다. UAC에 대한 자세한 내용은 다음 설명서를 참조하세요.
참고 항목
Windows 제어판 Windows 방화벽 애플릿을 사용하여 Windows 방화벽을 구성할 수 있지만 해당 유틸리티에는 FTP에 대한 모든 기능을 사용하도록 설정하는 데 필요한 기능이 없습니다. Windows 제어판 관리istrative Tools 아래에 있는 고급 보안이 포함된 Windows 방화벽 유틸리티에는 FTP 기능을 사용하도록 설정하는 데 필요한 모든 기능이 있지만 편의상 이 연습에서는 명령줄 Netsh.exe 유틸리티를 사용하여 Windows 방화벽을 구성하는 방법을 설명합니다.
안전하지 않은 FTP 트래픽과 함께 Windows 방화벽 사용
비보안 FTP 트래픽을 허용하도록 Windows 방화벽을 구성하려면 다음 단계를 사용합니다.
명령 프롬프트를 엽니다. 시작, 모든 프로그램, 보조 프로그램, 명령 프롬프트를 차례로 클릭합니다.
방화벽에서 포트 21을 열려면 다음 구문을 입력한 다음 Enter 키를 누릅니다.
netsh advfirewall firewall add rule name="FTP (non-SSL)" action=allow protocol=TCP dir=in localport=21
데이터 연결에 대한 포트를 동적으로 여는 상태 저장 FTP 필터링을 사용하도록 설정하려면 다음 구문을 입력한 다음 Enter 키를 누릅니다.
netsh advfirewall set global StatefulFtp enable
중요 사항:
- 활성 FTP 연결은 반드시 위의 규칙에서 다루지는 않습니다. 포트 20의 아웃바운드 연결도 서버에서 사용하도록 설정해야 합니다. 또한 FTP 클라이언트 머신에는 인바운드 트래픽에 대한 자체 방화벽 예외가 설정되어야 합니다.
- FTPS(FTPS)를 통한 FTP는 이러한 규칙에 포함되지 않습니다. 상태 저장 FTP 검사에 대한 Windows 방화벽 필터가 암호화된 데이터를 구문 분석할 수 없으므로 SSL 협상이 실패할 가능성이 큽니다. (일부 타사 방화벽 필터는 SSL 협상 시작(예: AUTH SSL 또는 AUTH TLS 명령)을 인식하고 SSL 협상이 시작되지 않도록 오류를 반환합니다.
SSL(FTPS) 트래픽을 통한 보안 FTP와 함께 Windows 방화벽 사용
상태 저장 FTP 검사를 위한 Windows 방화벽 필터가 데이터 연결을 설정하는 암호화된 트래픽을 구문 분석할 수 없으므로 Windows 방화벽의 상태 저장 FTP 패킷 검사는 SSL이 작동하지 않을 가능성이 큽니다. 이 동작으로 인해 FTPS(SSL)를 통해 FTP를 사용하려는 경우 FTP에 대한 Windows 방화벽 설정을 다르게 구성해야 합니다. FTPS 트래픽을 허용하도록 Windows 방화벽을 구성하는 가장 쉬운 방법은 인바운드 예외 목록에 FTP 서비스를 나열하는 것입니다. 전체 서비스 이름은 "Microsoft FTP 서비스"이며 짧은 서비스 이름은 "ftpsvc"입니다. (FTP 서비스는 제네릭 서비스 프로세스 호스트(Svchost.exe)에서 호스팅되므로 프로그램 예외를 제외하고 예외 목록에 배치할 수 없습니다.
SSL(FTPS) 트래픽을 통한 보안 FTP를 허용하도록 Windows 방화벽을 구성하려면 다음 단계를 사용합니다.
명령 프롬프트를 엽니다. 시작, 모든 프로그램, 보조 프로그램, 명령 프롬프트를 차례로 클릭합니다.
FTP 서비스가 열리는 모든 포트에서 수신 대기할 수 있도록 방화벽을 구성하려면 다음 구문을 입력한 다음 Enter 키를 누릅니다.
netsh advfirewall firewall add rule name="FTP for IIS7" service=ftpsvc action=allow protocol=TCP dir=in
Windows 방화벽이 FTP 트래픽을 차단하지 않도록 상태 저장 FTP 필터링을 사용하지 않도록 설정하려면 다음 구문을 입력한 다음 Enter 키를 누릅니다.
netsh advfirewall set global StatefulFtp disable
방화벽 작업에 대한 자세한 정보
FTP 서버가 제대로 작동하도록 방화벽 규칙을 만드는 것이 어려운 경우가 많으며, 이 문제의 근본 원인은 FTP 프로토콜 아키텍처에 있습니다. 각 FTP 클라이언트에는 클라이언트와 서버 간에 기본 두 개의 연결이 필요합니다.
- FTP 명령은 일반적으로 잘 알려진 FTP 포트 21인 제어 채널이라는 기본 연결을 통해 전송됩니다.
- 디렉터리 목록 또는 파일 업로드/다운로드와 같은 FTP 데이터 전송에는 데이터 채널이라는 보조 연결이 필요합니다.
방화벽에서 포트 21을 여는 것은 쉬운 일이지만 이는 FTP 클라이언트가 데이터를 전송하지 않고 명령만 보낼 수 있음을 의미합니다. 즉, 클라이언트는 제어 채널을 사용하여 디렉터리를 성공적으로 인증하고 만들거나 삭제할 수 있지만 클라이언트는 디렉터리 목록을 보거나 파일을 업로드/다운로드할 수 없습니다. 이는 데이터 채널이 방화벽을 통해 허용될 때까지 FTP 서버에 대한 데이터 연결이 방화벽을 통과할 수 없기 때문입니다.
참고 항목
클라이언트가 서버에 성공적으로 로그인할 수 있는 것처럼 보이지만 서버에서 디렉터리 목록을 검색하려고 할 때 연결이 시간 제한으로 표시되거나 응답이 중지될 수 있으므로 FTP 클라이언트에 혼동을 줄 수 있습니다.
FTP 및 방화벽 작업의 과제는 보조 데이터 연결의 요구 사항으로 끝나지 않습니다. 더 복잡한 작업을 위해 데이터 연결을 설정하는 방법에는 실제로 두 가지 방법이 있습니다.
- 활성 데이터 커넥트: 활성 데이터 연결에서 FTP 클라이언트는 데이터 채널 수신 대기용 포트를 설정하고 서버는 포트에 대한 연결을 시작합니다. 일반적으로 서버의 포트 20에서 시작됩니다. 활성 데이터 연결은 FTP 서버에 연결하는 기본 방법입니다. 그러나 활성 데이터 연결은 인터넷 시나리오에서 제대로 작동하지 않으므로 더 이상 권장되지 않습니다.
- 수동 데이터 커넥트: 수동 데이터 연결에서 FTP 서버는 데이터 채널 수신 대기용 포트를 설정하고 클라이언트는 포트에 대한 연결을 시작합니다. 수동 연결은 인터넷 시나리오에서 훨씬 더 잘 작동하며 RFC 1579(방화벽 친화적 FTP)에서 권장합니다.
참고 항목
일부 FTP 클라이언트는 수동 연결을 사용하도록 설정하기 위해 명시적 작업이 필요하며 일부 클라이언트는 수동 연결을 지원하지도 않습니다. (이러한 예 중 하나는 Windows와 함께 제공되는 명령줄 Ftp.exe 유틸리티입니다.) 혼동을 더하기 위해 일부 클라이언트는 네트워크 오류가 발생할 때 두 모드를 지능적으로 번갈아 가며 시도하지만, 아쉽게도 항상 작동하지는 않습니다.
일부 방화벽은 FTP 트래픽을 검사하고 방화벽을 통해 데이터 연결을 동적으로 허용하는 기본 제공 필터를 사용하여 데이터 연결 문제를 해결하려고 합니다. 이러한 방화벽 필터는 데이터 전송에 사용할 포트를 감지하고 클라이언트가 데이터 연결을 열 수 있도록 방화벽에서 일시적으로 열 수 있습니다. (일부 방화벽은 기본적으로 FTP 트래픽을 필터링할 수 있지만 항상 그런 것은 아닙니다.) 이러한 유형의 필터링을 SPI(상태 저장 패킷 검사) 또는 상태 저장 검사 유형이라고 합니다. 즉, 방화벽이 트래픽 유형을 지능적으로 확인하고 동적으로 응답 방법을 선택할 수 있습니다. 이제 많은 방화벽에서 기본 제공 Windows 방화벽을 포함하여 이러한 기능을 사용합니다.