Windows Server 2008이 나오면… (53) – FTP에서 IIS 자체 계정을 이용.. in IIS 7.0


FTP를 통해 데이터를 제공해야 하거나, 서비스를 이용할 때, 항상 Windows에서 계정을 생성하고, 이를 통해 사용자는 로그온을 해야 했었습니다. 종종 FTP를 통해 접근해야 할 사용자가 실제 Windows 계정 정보까지는 가질 필요가 없는데, 이를 부여해준다는 게 찜찜하셨을 수 있습니다.

Windows Server 2008의 IIS 7에 추가할 수 있는 IIS 7용 FTP를 이용하여, IIS 내에서 계정을 생성하고 이를 통해 서비스를 제공할 수 있습니다. 영어로 표기하자면 Non-Windows Authentication이라고 표현해야 하겠습니다.

Windows Server 2008 RC0용 FTP for IIS 7.0의 패키지는 아래에서 다운로드하셔서 설치하실 수 있습니다. 참고로 기존의 IIS 6.0 스타일의 FTP가 설치되어져 있다면, 설치시 에러가 발생합니다.

FTP for IIS 7.0 (x64)

FTP for IIS 7.0 (x86)

인증 확장을 위해서, Network Service 계정은 COM 프로세스를 사용합니다. 이를 위해 Network Service 계정에 대해서 몇가지 권한을 부여할 필요가 있습니다.

1. IIS Config 폴더에 Read 권한을 부여해야 합니다.
- 명령어 프롬프트에서 CACLS "%SystemDrive%\Windows\System32\Inetsrv\Config" /T /G "Network Service":R /E

2. "Temporary ASP.NET Files" 폴더에 Change 권한을 부여해야 합니다.
- 명령어 프롬프트에서 CACLS "%SystemDrive%\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files" /G "Network Service":C /E /T (x86)
- 명령어 프롬프트에서 CACLS "%SystemDrive%\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files" /G "Network Service":C /E /T (x64)

3. 실제 서비스를 제공하는 FTP 폴더(해당 포스팅에서는 \Inetpub\ftproot 라고 하겠습니다.
- 명령어 프롬프트에서 CACLS "%SystemDrive%\inetpub\ftproot" /G "Network Service":C /T /E

위의 사항 반영을 하지 않아서, 최초 설정시 무진장 고생을 했었습니다. 자 이제 실제로 FTP 서비스의 구성을 알아보겠습니다. 많은 부분이 47편에서 작성했던 관리자 권한 설정과 유사합니다. 해당 사이트의 관리자 권한을 주는 것이 아니라, FTP Authorization을 이용하여 Read,Write를 설정할 수 있습니다.

IIS 관리 도구를 여시고, 서버 노드에서 IIS Manager Users 아이콘을 클릭합니다.

image

Add User를 이용하여 사용자를 추가합니다.

image

생성한 FTP 사이트 또는 21번 포트를 바인딩한 웹 사이트로 찾아갑니다. 그리고 FTP Authentication을 클릭합니다. Anonymous 인증과 기본 인증은 기존에 보셨던 인증 방식입니다만, 추가적으로 IISManagerAuth와 ASPNetAuth를 사용할 수 있습니다. 이는 IIS 7에서 새롭게 생긴 인증 방식이죠. 통합 파이프라인을 사용하기 때문에 이러한 방식은 FTP뿐만 아니라, 웹에서도 사용할 수 있습니다.

image

image

그 후, 이제 해당 사용자에게 권한을 부여해야겠죠? 해당 FTP 사이트에 대한 권한과, 실제 작업의 권한을 연속적으로 부여합니다.

image image

image image

그림을 잘 보시면, 원리는 간단합니다. 인증을 위한 권한을 부여한 후, 허가를 위한 권한은 Read만 줘서 실제는 쓰기가 불가능하게 만드는 것입니다. 이제 로그온을 해보겠습니다.

image

로그온을 할 때는 "FTP 서버의 호스트헤더 | 계정"의 형태로 입력하시면 됩니다. 사전에 FTP 사이트에 꼭 호스트 헤더를 붙여주셔야 합니다.

image

그림이 많아서 내용이 좀 길어졌습니다만, IIS 7에 관련된 세미나나 스터디를 하면 할수록 IIS 7은 정말 매력적인 것 같습니다. IIS 6에서 필요했던 기능들을 거의 대부분 수용해서 가능하게 만들어놓았으니까요 🙂

Comments (5)

  1. 뱃살왕자 says:

    정말 필요 했던 기능이 나오는 군요…

    기존의 FTP 서버 프로그램들 보다 차지하는 리소스가 얼마나

    효율적이 될지 모르지만 기대는 됩니다.

    찜찜 정도가 아니었죠… net use 명령어나, 기타 다른

    인증 방식을 이용해서 들어온다고 생각해보세요..

    물론 방화벽 설치해서 포트막고, everyone 권한 없애고 하는

    방법들이 있겠지만 서도…

    악의적으로 마음먹고 들어온다고 생각하면 끔찍합니다…

    기존의 IIS 설치할 때 FTP는 아예 빼고 설치했었습니다..

  2. wizmusa says:

    이런 이유 때문에 파일질라 서버를 회사에서 쓰는 중입니다. 이런 기능을 만드는 걸 보니 MS에서 사용자들의 의견을 지속적으로 반영하는 걸 잘 알겠습니다. 반갑네요. ^^ 하지만 다소 생소해서인지 여전히 파일질라 서버가 편하다는 생각이 드네요.

  3. Anonymous says:

    2007년 12월 7일 업데이트 – 해당 포스팅에 많은 분들께서 정기적으로 방문하실 수 있도록 포스팅 후, 바로바로 업데이트를 하도록 하겠습니다. 금년 초부터 포스팅해왔던 Windows

  4. lyk324 says:

    관리자 입장에선 정말 편리해졌네요…

    웹호스팅시 용량제한이 가능할까요??

    그리고 웹호스팅을 이용하는 고객이

    ftp를 이용시에 http://ftp.test.com|test이런식으로

    아이디를 입력하는게 어려울거 같은데요..

    개선이 가능할까요?

  5. Seung Joo Baek says:

    용량 제한은 파일 서버 리소스 관리자(FSRM)을 이용하시면 됩니다. 아이디 입력에 대해서는 호스트 헤더를 쓰는 경우엔 Windows 자체적으로는 해결할 수 있는 방법이 없습니다.

Skip to main content