FTP 7 따라하기: IIS 관리자 인증 구성하기

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

서론

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

본문에서는 새로운 FTP 사용자 인터페이스를 사용하거나 IIS 구성 설정 파일을 직접 편집하여 IIS 관리자 계정 FTP 인증을 구성하는 과정을 보여드립니다. *

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

전제조건

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

  • 여러분들의 윈도우 서버 2008 RC0에 IIS 7과 인터넷 정보 서비스 관리자가 설치되어 있어야 합니다.
  • 새로운 FTP 서비스가 설치되어 있어야만 합니다. 다음 링크 중 하나를 통해서 http://www.iis.net/ 웹 사이트에서 FTP 서비스를 다운로드 받고 설치할 수 있습니다.

인증 확장성 처리 COM 프로세스는 "네트워크 서비스" 계정을 사용하므로, 본문에서 소개하는 형태의 인증을 활성화시키기려면 일부 폴더에 이 계정에 대한 특정 권한을 설정해줘야 합니다.

  • "네트워크 서비스" 계정에 IIS "config" 폴더에 대한 "읽기" 권한을 부여합니다:
    • 명령 프롬프트를 엽니다.
    • 다음 명령어를 입력합니다:
      CACLS "%SystemDrive%\Windows\System32\inetsrv\config" /T /G "Network Service":R /E
    • 명령 프롬프트를 닫습니다.
  • "네트워크 서비스" 계정에 IIS "Temporary ASP.NET Files" 폴더에 대한 "수정" 권한을 부여합니다:
    • 명령 프롬프트를 엽니다.
    • 사용하고 있는 프레임워크의 버전에 따라 다음 명령어 중 적당한 명령어를 입력합니다:

      32-비트 프레임워크:
      CACLS "%SystemDrive%\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files" /G "Network Service":C /E /T
      64-비트 프레임워크:
      CACLS "%SystemDrive%\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files" /G "Network Service":C /E /T
    • 명령 프롬프트를 닫습니다.

FTP 게시를 위한 루트 폴더를 생성합니다.

  • "%SystemDrive%\inetpub\ftproot" 폴더를 생성합니다.
  • 인증 확장성 처리 COM 프로세스를 위해 접근 권한을 설정합니다:
    • 명령 프롬프트를 엽니다.
    • 다음 명령어를 입력합니다:
      CACLS "%SystemDrive%\inetpub\ftproot" /G "Network Service":C /T /E
    • 명령 프롬프트를 닫습니다.

노트: 본문의 모든 내용은 FTP 사이트의 경로가 "%SystemDrive%\inetpub\ftproot"라는 가정을 전제로 작성되었습니다. 반드시 이 경로만 사용해야 하는 것은 아니지만, 만약 이 경로를 변경하면 본문의 모든 경로 관련 내용에도 변경된 경로가 반영되야 합니다.

* 다시 말해서, 본문에서는 윈도우즈 계정이 아닌 IIS 관리자에서 관리 목적으로 만들어낸 자체 계정을 사용해서 특정 FTP 사이트를 관리할 수 있도록 설정하는 방법을 살펴봅니다. 이 방법은 내부 개발자나 외주 개발자에게 특정 FTP 사이트의 관리 권한을 부여해야 하지만, 윈도우즈 계정을 부여하기에는 곤란한 경우 등에 유용하게 사용할 수 있습니다. 물론, WWW 서비스에 대해서도 본문의 내용과 유사한 기능을 제공해주며 다른 IIS 7의 기능들과 함께 사용하면 막강한 관리 상의 이점을 누릴 수 있습니다. 이 부분에 대해서는 추후 본격적으로 다뤄 보겠습니다.

IIS 관리 서비스 설정

IIS 7에서는 비-윈도우 계정을 사용해서 원격 관리를 가능하게 해주는 선택 가능한 관리 서비스를 제공해줍니다. 이번 단계에서는 이 서비스를 설치하고 설정하는 방법을 살펴봅니다.

노트: IIS FTP 관리자 인증을 사용하려면 IIS 관리 서비스가 설치되어 있어야 합니다. 그러나, 이 서비스가 반드시 시작되어 있어야 하는 것은 아닙니다.

단계 1: IIS 관리 서비스 설치

먼저, 첫 번째 단계는 IIS 관리 서비스를 설치하는 것입니다.

  1. 윈도우 시작 메뉴에서 서버 관리자를 실행시킵니다.
  2. 트리뷰에서 Roles 노드를 클릭하고, Web Server 역할의 Add Role Services 링크를 클릭합니다.
  3. 만약, Management Service 항목이 체크되어 있지 않다면 체크 박스를 클릭하여 체크하고 Next 버튼을 클릭합니다. 아니면 Cancel 버튼을 클릭합니다.
  4. 설치할 서비스 선택 확인 페이지가 나타나면 Install 버튼을 클릭합니다.
  5. 서비스 설치가 완료되면 Close 버튼을 클릭하여 마법사를 빠져나가고, 서버 관리자를 종료합니다.

단계 2: IIS 관리 서비스 설정 및 IIS 관리자 계정 추가

두 번째 단계에서는 IIS 관리자 계정을 위한 IIS 관리 서비스를 설정합니다.

  1. IIS 관리자의 Connections 패인에서 트리의 서버 수준 노드를 클릭하고, Management Service 아이콘을 더블 클릭합니다.
  2. Windows credentials or IIS Manager credentials 옵션을 선택하고, Actions 패인에서 Apply 링크 버튼를 클릭합니다.
  3. IIS 관리자의 Connections 패인 트리뷰에서 서버 수준 노드를 클릭하고, IIS Manager Users 아이콘을 더블 클릭합니다.
  4. IIS Manager Users 기능 페이지의 Actions 패인에서 Add User 링크를 클릭합니다.
  5. Add User 대화 상자가 나타나면, User Name 입력란에는 "ftpmanager"를 입력하고 Password 입력란에는 "P@ssw0rd"를 입력한 다음, OK 버튼을 클릭합니다. *

요약

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

  1. IIS 관리 서비스를 설치했습니다.
  2. IIS 관리 서비스에서 윈도우 계정과 IIS 관리자 계정을 모두 사용하도록 설정했습니다.
  3. 나중에 IIS 관리자 계정으로 사용할 계정을 생성했습니다.

* 결국 이 작업은 ftpmanager라는 이름으로 IIS 관리자 내부 계정을 생성하는 것입니다. 물론, 다른 이름이나 다른 비밀 번호를 사용해서 계정을 생성할 수도 있으며, 복수의 계정을 생성하는 것도 가능합니다. 그렇다면, 이렇게 생성된 계정의 정보는 어디에 저장될까요? 이 정보는 메타베이스를 대체하는 IIS 7의 새로운 구성설정 저장소 중 하나인 administration.config 파일의 credentials 섹션에 다음과 같이 저장됩니다.

<system.webServer>
    <management>
        <authentication defaultProvider="ConfigurationAuthenticationProvider">
            <providers>
                ... 중략 ...
            </providers>
            <credentials>
                <add name="ftpmanager" password="[암호화 된 비밀번호]" />
            </credentials>
        </authentication>

기본적인 IIS 7의 구성설정 정보를 다루는 경우에는 applicationHost.config 파일을 주로 다루지만, 점차 고급 구성설정 정보에 접근할수록 administration.config 파일을 다루게 되는 경우가 많아질 것입니다.

새로운 FTP 사이트를 생성하고 IIS 관리자 계정 설정하기

이번 섹션에서는 새로운 FTP 사이트를 생성하고, 이전 단계에서 생성한 IIS 관리자 계정을 이 사이트에 설정하는 과정을 살펴봅니다.

단계 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. SSL Certificates 드롭다운 목록 상자의 값을 "Not Selected"로 지정하고, Require SSL 옵션은 선택하지 않습니다.
  5. 마법사의 다음 페이지에서는:
    1. Authentication 설정에서 Basic을 체크합니다.
    2. Authorization 설정에서 Allow access to 드롭다운 목록 상자의 값을 "Specified users"로 지정하고 사용자 이름으로 "administrator"를 입력합니다. 그리고, Permissions 옵션은 Read와 Write를 모두 체크합니다.
    3. 작업을 모두 마쳤으면, Finish 버튼을 클릭합니다.

단계 2: IIS 관리자 인증을 사용하도록 FTP 사이트 설정하기

이번 단계에서는 방금 여러분들이 생성한 FTP 사이트의 IIS 관리자 인증 기능을 활성화하기 위해 필요한 작업들을 살펴봅니다:

  1. 인터넷 정보 서비스 관리자에서 방금 만든 FTP 사이트 노드를 클릭하고, FTP Authentication 아이콘을 더블 클릭해서 FTP 인증 기능 페이지를 엽니다.
  2. FTP Authentication 페이지의 Actions 패인에서 Custom Providers 링크를 클릭합니다.
  3. Custom Providers 대화 상자에서 IIS Manager Authentication을 클릭해 선택하고 OK 버튼을 클릭합니다. *
  4. 그리고, 다시 FTP Authentication 페이지를 살펴보면 Basic Authentication과 IIS Manager Authentication이 모두 활성화 되어 있는 것을 확인할 수 있습니다. 만약, 필요하다면 Basic Authentication 항목을 선택하여 반전시킨 다음, Actions 패인에서 Disable 링크를 클릭하여 비활성화시킬 수도 있습니다.
  5. 이제 IIS 관리자 계정의 접근을 활성화시켜야 합니다. 트리뷰에서 FTP 사이트를 클릭하고 IIS Manager Permissions 아이콘을 더블 클릭해서 엽니다.
  6. IIS Manager Permissions 페이지의 Actions 패인에서 Allow User 링크를 클릭합니다.
  7. Allow User 대화 상자가 나타나면, IIS Manager 옵션을 선택하고 Select 버튼을 클릭합니다.
  8. 그러면, Users 대화 상자가 출력되는데, "ftpmanager" 사용자를 선택하고 OK 버튼을 클릭합니다.
  9. OK 버튼을 클릭하여 Allow User 대화 상자를 닫습니다.
  10. 이제 IIS 관리자 계정으로 로그인 할 수 있도록 권한 규칙을 추가해야합니다. 트리뷰에서 FTP 노드를 클릭하고 FTP Authorization Rules 아이콘을 더블 클릭해서 FTP 권한 기능 페이지를 엽니다.
  11. FTP Authorization Rules 페이지가 출력되면 Actions 패인의 Add Allow Rule 링크를 클릭합니다.
  12. Add Allow Authorization Rule 대화 상자가 출력되면
    1. Specified users 옵션을 선택하고, 입력란에 "ftpmanager"를 입력합니다.
    2. Permissions 옵션은 Read와 Write를 모두 체크합니다.
    3. 작업을 모두 마쳤으면 OK 버튼을 클릭합니다.

요약

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

  • "My New FTP Site"라는 이름의 새로운 FTP 사이트를 생성했습니다:
    • FTP 사이트의 컨텐츠 루트를 "%SystemDrive%\inetpub\ftproot" 폴더로 지정했습니다.
    • FTP 사이트를 컴퓨터 로컬 루프백 주소 및 21번 포트에 바인딩하고, FTP 사이트에 대한 보안 소켓 계층(SSL)은 사용하지 않도록 설정했습니다.
    • 기본 인증을 활성화시키고 로컬 관리자 계정에 FTP 사이트에 대해 "읽기"와 "쓰기"를 허용하는 권한 규칙을 추가했습니다.
  • FTP 사이트에서 IIS 관리자 계정을 사용하도록 설정했습니다:
    • IIS 관리자 인증을 활성화했습니다.
    • IIS 관리자 계정을 사용하여 FTP 사이트에 접근이 가능하도록 허용했습니다.
    • IIS 관리자 계정이 FTP 사이트에서 읽고 쓸 수 있도록 권한 규칙을 추가했습니다.

* 캡춰된 Custom Providers 대화 상자를 잘 살펴보면 본문에서 언급하지는 않지만 AspNetAuth라는 제공자가 존재하는 것을 볼 수 있습니다. 정확하게 확언할 수는 없지만, 본문을 번역하면서 금년도 2007 MVP Global Summit에서 IIS 개발팀이 시연하던 데모 장면이 떠올랐습니다. .NET 코드로 작성한 사용자 정의 제공자를 사용해서, 본문에서 다루고 있는 IIS 관리 계정을 설정하는 데모였는데, 본문과는 달리 계정 정보를 administration.config 파일이 아닌 SQL 서버에서 가져오고 있었습니다. 그래서, 어눌한 영어로 "PT 코드로 미루어 짐작컨데 ADO.NET 제공자만 변경하면 어떤 데이터베이스와도 연결할 수 있는것 같은데 맞느냐?"고 물어봤고, 여러분이 예상하는 것처럼 그 대답은 물론 Yes였습니다. 개인적으로 IIS 7이 정말 만족스럽습니다.

추가 정보

지금까지 살펴본 "새로운 FTP 사이트를 생성하고 IIS 관리자 계정 설정하기" 단계와 "IIS 관리자 인증을 사용하도록 FTP 사이트 설정하기" 단계를 모두 마치면, 본문에서 생성한 "ftpmanager" 계정으로 FTP 사이트에 로그인할 수 있습니다. 가령, IIS 서버에서 FTP.EXE 명령어 클라이언트를 사용한다면:

  1. 명령 프롬프트를 엽니다.
  2. 다음 명령어를 입력합니다.
    FTP localhost
  3. 사용자 이름을 입력하는 프롬프트가 나타나면, 이름과 비밀번호를 입력합니다. 예를 들어:
    USER ftpmanager
    PASS ********
  4. IIS 관리자 계정을 사용하여 FTP 사이트에 로그인이 가능합니다.

마지막으로 IIS 관리 서비스에 대한 더 자세한 정보는 "IIS 관리자를 이용한 원격 관리" 문서를 참고하시기 바랍니다. *

* 이 문서는 원격 관리를 위한 IIS 관리 서비스의 설정과 기타 특징에 관해서 설명하고 있습니다. 비록 영문 문서이긴 하지만, 단 한 페이지짜리 간단한 문서이므로 부담 없이 살펴보는 것도 좋을 것입니다.