FTP 7 따라하기: 새 FTP 사이트 생성하기

등록일시: 2007-06-20 13:34,  수정일시: 2013-11-10 21:58
조회수: 7,736
이 문서는 IIS 기술을 널리 알리고자 하는 개인적인 취지로 제공되는 번역문서입니다. 이 문서에 대한 모든 저작권은 마이크로소프트에 있으며 요청이 있을 경우 언제라도 게시가 중단될 수 있습니다. 번역 내용에 오역이 존재할 수 있고 주석은 번역자 개인의 의견일 뿐이며 마이크로소프트는 이에 관한 어떠한 보장도 하지 않습니다. 번역이 완료된 이후에도 대상 제품 및 기술이 개선되거나 변경됨에 따라 원문의 내용도 변경되거나 보완되었을 수 있으므로 주의하시기 바랍니다.

서론

마이크로소프트에서는 원도우 서버 코드명 "롱혼"을 위해 완전히 새롭게 작성된 FTP 서비스를 개발했습니다. 이 새로운 FTP 서비스는 지금까지 웹 저작자들이 사용해오던 방법보다 개선된 방법을 사용해서 저작물을 배포할 수 있게 해주고, 웹 관리자에게 보다 많은 보안 및 배포 옵션들을 제공해주는 수 많은 새로운 기능들을 갖고 있습니다.

본문의 따라하기에서는 여러분에게 새로운 FTP 사용자 인터페이스를 사용하거나 IIS 구성 설정 파일을 직접 편집해서 FTP 사이트를 생성하는 모든 과정을 보여드립니다.

노트: 본문의 따라하기에는 로컬 관리자 계정으로 FTP 사이트에 로그인하는 과정이 포함되어 있습니다. 이 과정은 반드시 FTP 사이트가 생성된 서버에서 루프백 주소로 로그인하거나, 원격에서 서버에 로그인하는 경우에는 SSL이 적용되어 있어야 합니다. 만약, 관리자 계정 대신 다른 사용자 계정으로 이 따라하기를 따라해보려면, 반드시 해당 사용자 계정에 적합한 폴더를 생성해야 하고, 필요하다면 이 폴더에 해당 계정에 대한 올바른 권한을 설정해야 합니다.

전제조건

본문의 따라하기 내용을 모두 따라해보기 위해서는 다음과 같은 준비가 필요합니다.:

  • 여러분들의 롱혼 서버에 IIS 7과 인터넷 정보 서비스 관리자가 설치되어 있어야 합니다.
  • 새로운 FTP 서비스가 설치되어 있어야 합니다. 다음 링크 중 하나를 통해서 http://www.iis.net/ 웹 사이트에서 FTP 서비스를 다운로드 받고 설치할 수 있습니다.
  • FTP 게시를 위한 루트 폴더를 생성해야 합니다:
    • "%SystemDrive%\inetpub\ftproot" 폴더를 생성합니다. *
    • 익명 사용자의 접근을 허용하기 위한 권한을 설정합니다:
      • 명령 프롬프트를 실행합니다.
      • 다음의 명령을 실행합니다: **
        CACLS "%SystemDrive%\inetpub\ftproot" /G IUSR:R /T /E
      • 명령 프롬프트를 닫습니다.

* 구버전의 FTP 서비스와는 달리 FTP 7을 설치해도 ftproot 폴더가 자동으로 생성되지 않습니다. 따라서, 수작업으로 ftproot 폴더를 생성해줘야 합니다.

** 폴더가 자동으로 생성되지 않으므로 당연히 해당 폴더에 대한 권한도 설정되어 있지 않습니다. 결국, 권한 설정도 수작업으로 처리해줘야 하는데, 이 때 IIS 7.0의 익명 사용자 계정은 IUSR_머신이름 계정이 아니라 IUSR 계정이라는 점에 주의하시기 바랍니다. 이 명령은 IUSR 계정에 읽기 권한을 부여합니다.

IIS 관리자를 사용하여 새 FTP 사이트 생성하기

새로운 FTP 서비스에서는 FTP 사이트를 생성하기 위해 필요한 전체 과정을 처음부터 마지막까지 안내해주는 마법사를 제공하여 사용자가 새 FTP 사이트를 만드는 작업을 도와줍니다.

단계 1: FTP 사이트 마법사를 사용해서 FTP 사이트 생성하기

이번 첫 번째 단계에서는 익명 사용자들도 접근이 가능한 FTP 사이트를 생성해 볼 것입니다.

  1. 인터넷 정보 서비스 관리자의 Connections 패인에서 트리뷰의 Sites 노드를 클릭합니다.
  2. 다음 이미지에서 볼 수 있는 것처럼, 트리뷰에서 Sites 노드를 마우스 오른쪽 버튼으로 클릭하고 Add FTP Site 메뉴를 클릭하거나, Actions 패인에서 Add FTP Site 링크를 클릭합니다.
  3. Add FTP Site 마법사가 나타나면:
    1. FTP site name 텍스트 박스에는 "My New FTP Site"라고 입력하고, Contents Directory에는 전제조건 섹션에서 미리 만들어 놓았던 "%SystemDrive%\inetpub\ftproot" 폴더를 지정합니다.

      노트: 만약, Contents Directory의 물리적 경로를 직접 타이핑해서 입력하면, "%SystemDrive%\inetpub\ftproot"와 같이 경로에 환경 변수를 사용할 수도 있습니다.

    2. 작업을 모두 마쳤으면, Next 버튼을 클릭합니다.
  4. 마법사의 다음 페이지에서는:
    1. FTP 사이트의 IP 주소를 지정하려면 일반적으로 IP Address 드롭다운 목록 상자에서 주소를 선택하거나 기본적으로 선택되어 있는 "All Unassigned."를 그대로 사용하면 됩니다. 그러나, 이 따라하기에서는 나중에 관리자 계정을 사용하여 로그인 해 볼 것이므로, 서버에 대한 접근을 확실하게 제한하고 싶다면 IP Address에 "127.0.0.1"을 입력해서 로컬 루프백 IP 주소를 지정하십시오.
    2. FTP 사이트의 포트를 지정하기 위해 Port 텍스트 박스에 TCP/IP 포트를 입력합니다. 이 따라하기에서는 기본 포트인 21번 포트를 사용합니다.
    3. 이 따라하기에서는 가상 호스트 이름을 사용하지 않으므로 Virtual Host 텍스트 박스는 공란으로 비워둡니다.
    4. Certificates 드롭다운 목록 상자의 값을 "Not Selected"로 지정하고, Require SSL 옵션의 체크를 해제합니다.
    5. 작업을 모두 마쳤으면, Next 버튼을 클릭합니다.
  5. 마법사의 다음 페이지에서는:
    1. Authentication 설정에서 Anonymous를 체크합니다. *
    2. Authorization 설정에서 Allow access to 드롭다운 목록 상자의 값을 "Anonymous users"로 지정하고 Permissions 옵션은 Read만 체크합니다. **
    3. 작업을 모두 마쳤으면, Finish 버튼을 클릭합니다.

요약

축하합니다! 여러분은 지금 막 새로운 FTP 서비스를 사용하는 새 FTP 사이트를 생성하는데 성공했습니다.

이번 단계에서 살펴본 내용들을 다시 정리해보면:

  • "My New FTP Site"라는 이름으로 새로운 FTP 사이트를 생성했으며, 이 FTP 사이트의 컨텐츠 루트는 "%SystemDrive%\inetpub\ftproot" 폴더로 지정했습니다.
  • FTP 사이트를 여러분의 컴퓨터 로컬 루프백 주소 및 21번 포트에 바인딩하고, FTP 사이트에 대한 보안 소켓 계층(SSL)은 사용하지 않도록 설정했습니다.
  • 익명 사용자에게 파일에 대한 "읽기" 접근을 허용하는 FTP 사이트 기본 규칙을 생성했습니다.

단계 2: 추가적인 FTP 보안 설정 추가하기

익명 사용자들이 접근할 수 있는 FTP 사이트 생성은 공개 다운로드 사이트 등의 목적에 매우 유용합니다. 그러나, 웹 게시를 위한 FTP 사이트 생성도 마찬가지로 중요합니다. 이번 단계에서는 관리자 계정에 대한 추가적인 인증 및 권한 설정을 추가해보게 될 것입니다.

  1. 인터넷 정보 서비스 관리자를 실행시키고 단계 1에서 여러분들이 만든 FTP 사이트 노드를 클릭합니다. 그러면 모든 FTP 기능 아이콘들이 출력됩니다.
  2. 먼저 사용자들이 로그인을 할 수 있게 해주는 기본 인증을 추가해야합니다. 이를 위해서 FTP Authentication 아이콘을 더블 클릭하여 FTP 인증 기능 페이지를 엽니다.
  3. FTP Authentication 페이지가 나타나면, Basic Authentication을 선택하고 Actions 패인에서 Enable 링크를 클릭합니다.
  4. 인터넷 정보 서비스 관리자에서 FTP 사이트 노드를 클릭하면, 다시 모든 FTP 기능 아이콘들이 출력됩니다.
  5. 관리자 계정으로 로그인 할 수 있도록 해주기 위한 권한 규칙을 추가해야 합니다. FTP Authorization Rules 아이콘을 더블 클릭하여 FTP 권한 규칙 기능 페이지를 엽니다.
  6. FTP Authorization Rules 페이지가 출력되면, Actions 패인에서 Add Allow Rule 링크를 클릭합니다.
  7. Add Allow Authorization Rule 대화 상자가 나타나면
    1. Specified users 라디오 버튼을 선택하고, "administrator"를 텍스트 박스에 입력합니다.
    2. Permissions에서 Read와 Write를 모두 선택합니다.
    3. 작업을 모두 마쳤으면, OK 버튼을 클릭합니다.

요약

이번 단계에서 살펴본 내용들을 다시 정리해보면:

  • FTP 사이트에 기본 인증을 추가했습니다.
  • 관리자 계정에 FTP 사이트에 대해 읽기와 쓰기를 허용하는 권한 규칙을 추가했습니다.

단계 3: FTP 사이트에 로그인하기

단계 1에서는 익명 사용자가 접근할 수 있는 FTP 사이트를 생성해봤으며, 단계 2에서는 로컬 관리자의 로그인을 위한 추가적인 보안 설정을 추가해봤습니다. 이번 단계에서는 익명 사용자와 로컬 관리자 계정으로 로그인을 해보게 될 것입니다.

노트: 이번 단계에서는 로컬 관리자의 계정으로 FTP 사이트에 로그인을 해 볼 것입니다. 단계 1에서 FTP 사이트를 생성할 때 FTP 사이트를 로컬 루프백 IP 주소와 바인딩했었습니다. 만약, 로컬 루프백 주소를 사용하도록 설정하지 않았다면 반드시 SSL을 사용해야만 여러분의 로컬 관리자 계정을 보호할 수 있습니다. 그리고, 관리자 계정 대신 다른 사용자 계정으로 로그인을 해보려고 한다면, 반드시 그 계정에 적합한 폴더를 생성해야 하고 필요하다면 이 폴더에 해당 계정에 대한 올바른 권한을 설정해야 합니다.

FTP 사이트에 익명 사용자로 로그인하기

  1. FTP 서버에서 명령 프롬프트를 실행합니다.
  2. FTP 사이트에 접속하기 위해 다음과 같은 명령어를 입력합니다.:
    FTP localhost
  3. 사용자 이름을 입력하는 프롬프트가 나타나면 "anonymous"를 입력합니다.
  4. 비밀번호를 입력하는 프롬프트가 나타나면 여러분들의 이메일 주소를 입력합니다.

그러면, 단계 1에서 추가했던 컨텐츠 폴더에 대한 읽기 접근 권한 규칙에 따라 FTP 사이트에 익명으로 로그인 될 것입니다.

FTP 사이트에 관리자 계정으로 로그인하기

  1. FTP 서버에서 명령 프롬프트를 실행합니다.
  2. FTP 서비스에 접속하기 위해 다음과 같은 명령어를 입력합니다.:
    FTP localhost
  3. 사용자 이름을 입력하는 프롬프트가 나타나면 "administrator"를 입력합니다.
  4. 비밀번호를 입력하는 프롬프트가 나타나면 관리자 계정의 비밀번호를 입력합니다.

그러면, 단계 2에서 추가한 컨텐츠 폴더에 대한 읽기와 쓰기 접근 권한이 설정된 규칙에 따라 FTP 사이트에 로컬 관리자로 로그인 될 것입니다.

요약

이번 단계에서 살펴본 내용들을 다시 정리해보면:

  • FTP 사이트에 익명으로 로그인합니다.
  • FTP 사이트에 로컬 관리자 계정으로 로그인합니다.

* 이 설정은 인터넷 정보 서비스 관리자의 FTP Authentication 기능과 동일한 것입니다.

** 이 설정은 인터넷 정보 서비스 관리자의 FTP Authorization Rules 기능과 동일한 것입니다.

IIS 구성 설정 파일을 편집해서 새로운 FTP 사이트 생성하기

직접 IIS 구성 설정 파일을 편집해서 새로운 FTP 서비스 기반의 FTP 사이트를 생성할 수도 있습니다. 다음 단계들에서는 새로운 FTP 사이트를 생성하기 위해 필요한 전체 과정을 보여줍니다.

  1. 메모장 같은 텍스트 편집기를 사용해서, %SystemRoot%\System32\inetsrv\config 폴더에 존재하는 applicationHost.config 파일을 엽니다.
  2. <sites> 섹션으로 이동합니다. 이 섹션에는 기본 웹 사이트에 대한 설정이 포함되어 있으며, 대부분 다음과 같은 내용들로 시작될 것입니다.:
    <sites>
        <site name="Default Web Site" id="1">
            <application path="/">
                <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:80:" />
            </bindings>
        </site>
  3. 기본 웹 사이트에 대한 전체 섹션을 복사해서 </site> 태그 바로 다음 줄에 붙여 넣습니다.
  4. 새로운 FTP 사이트를 생성하기 위해서 붙여 넣은 사이트 섹션의 설정을 변경합니다:
    1. name과 id 속성을 각각 "Default FTP Site"와 "2"로 수정합니다.

      노트: 만약, 다른 사이트에서 이미 사이트 식별자로 "2"를 사용하고 있다면 사이트 ID를 "2" 이외의 다른 번호로 지정해야 할 수도 있습니다. *

    2. binding 요소의 protocol 속성값을 "ftp"로 수정합니다.
    3. physicalPath 속성을 "%SystemDrive%\inetpub\ftproot"로 변경합니다.
    4. bindingInformation 속성의 port 값을 "21"로 변경합니다.
  5. 닫기 bindings 태그 바로 아래에 인증 설정을 위한 <ftpServer> 섹션을 추가합니다.
    <ftpServer>
        <security>
            <authentication>
                <anonymousAuthentication enabled="true" userName="IUSR" />
                <basicAuthentication enabled="true" />
            </authentication>
        </security>
    </ftpServer>

    노트: URL 기반으로 구성되는 웹 사이트의 인증과는 달리 FTP 사이트의 인증 설정은 사이트 기반으로 구성됩니다. **

  6. 이제 여러분의 <sites> 섹션은 다음과 비슷하게 구성되어 있을 것입니다.:
    <sites>
        <site name="Default Web Site" id="1">
            <application path="/">
                <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:80:" />
            </bindings>
        </site>
        <site name="Default FTP Site" id="2">
            <application path="/">
                <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\ftproot" />
            </application>
            <bindings>
                <binding protocol="ftp" bindingInformation="*:21:" />
            </bindings>
            <ftpServer>
                <security>
                    <authentication>
                        <anonymousAuthentication enabled="true" userName="IUSR" />
                        <basicAuthentication enabled="true" />
                    </authentication>
                </security>
            </ftpServer>
        </site>
  7. 이제 applicationHost.config 파일의 가장 마지막 부분으로 이동해서 기본 FTP 사이트의 권한을 설정하기 위한 location 섹션을 추가합니다.
    <location path="Default FTP Site">
        <system.ftpServer>
            <security>
                <authorization>
                    <add accessType="Allow" users="*" permissions="Read" />
                    <add accessType="Allow" users="administrator" permissions="Read, Write" />
                </authorization>
            </security>
        </system.ftpServer>
    </location>

    노트: 이 예제에서 볼 수 있는 것처럼 FTP 사이트에 대한 권한 설정은 URL 기반으로 구성됩니다. 여기에서는 모든 사용자들에게는 읽기 권한을 허용하고, 관리자 계정에게는 읽기/쓰기 권한을 허용하고 있습니다. **

  8. 마지막으로 applicationHost.config 파일을 저장합니다.

이제 여러분은 FTP 클라이언트 프로그램을 사용해서 새로 생성된 FTP 사이트에 로그인 할 수 있습니다. 인터넷 익스플로러를 사용해서 IIS 서버에 접근하려면, 인터넷 익스플로러의 주소창에 ftp://localhost라고 입력하십시오. 신원 증명을 위한 프롬프트 없이도 로그인 되고 익명으로 파일들을 볼 수도 있을 것입니다.

요약

이번 단계에서는 IIS 구성 설정 파일을 직접 편집하여 FTP 사이트를 생성해봤습니다. 이번 단계에서 살펴본 내용들을 다시 정리해보면:

  • 기본 웹 사이트를 템플릿으로 삼아 새로운 FTP 사이트를 생성했습니다.
  • 다음과 같이 FTP 사이트에 대한 권한 규칙을 구성했습니다.:
    • 모든 사용자는 읽기 권한을 갖고 있습니다.
    • 관리자 계정은 읽기/쓰기 권한을 갖고 있습니다.

* 사이트 ID에 대한 보다 상세한 개념은 이 문서에서 설명하고 있는 사이트 인덱스의 개념을 참고하시기 바랍니다.

** 다시 정리하면, FTP 7에서 인증 방법, 즉 익명 인증나 기본 인증을 사용할 것인지 여부는 사이트 단위로 설정되며, 권한에 대한 설정은 URL 단위로 이뤄집니다.