2007~2011/IIS2010. 11. 16. 09:15

이번 FTP 7 에서 제공되는 사용자 격리(User Isolation) 기능에 대해서 알아보도록 하겠습니다. 사용자 격리는 FTP 에 접속한 사용자가 상위 폴더 또는 다른 사용자의 FTP 홈 디렉터리를 액세스 하는 것을 차단하기 위해 사용할 수 있습니다. 구성하는 방법과 테스트 과정을 아래와 같이 정리하였습니다. 


[FTP 사용자 격리] 
FTP 사용자 격리 기능을 사용하기 위해서는 인터넷 정보 서비스 관리자에서 FTP 사이트의 'FTP 사용자 격리' 기능을 통해 설정할 수 있습니다. 



아래와 같이 '사용자 격리 사용 안 함', '사용자 격리' 크게 2가지 옵션이 제공되는 것을 확인할 수 있습니다. 


다음은 FTP 사용자 격리의 옵션에 대한 설명입니다. 

1. 사용자 격리 안 함. 다음 디렉터리에서 사용자 시작:
 가. FTP 루트 디렉터리
      기본 옵션으로 FTP 접속 시 모든 사용자가 같은 홈 디렉터리 root 폴더에 연결되게 됩니다.
나. 사용자 이름 디렉터리 
     현재 로그인 한 사용자와 같은 이름의 물리적 폴더 또는 같은 이름의 가상 디렉터리로 연결됩니다. 만약 같은 이름의 폴더가 존재하지 않는다면 "FTP root directory" 옵션과 동일하게 홈 디렉터리 root 폴더에 연결됩니다.


2. 사용자 격리. 다음 디렉터리로 사용자 제한:
 가. 사용자 이름 디렉터리(전역 가상 디렉터리 사용 안 함)
      FTP 사용자 계정과 같은 이름의 물리적 폴더 또는 같은 이름의 가상 디렉터리로 연결됩니다. 상위 폴더에 대한 이동(탐색)은 허용되지 않습니다.
 나. 사용자 이름 실제 디렉터리(전역 가상 디렉터리 사용)
      FTP 사용자 계정과 같은 이름의 물리적 폴더로 연결됩니다. 만약 물리적 폴더는 존재하지 않지만 동일한 이름의 가상 디렉터리가 존재하더라도 해당 가상 디렉터리로는 연결할 수 없습니다. 또한 상위 폴더로의 이동은 가능하지 않습니다. 
 
다. Active Directory에 구성된 FTP 홈 디렉터리
      Active Directory 계정 설정에서 지정된 홈 디렉터리로 연결됩니다. 

단, 사용자 격리를 사용할 경우 홈 디렉터리 경로가 반드시 아래 경로에 위치해 있어야 합니다. 예를 들어 로컬 계정인ftpuser1 이라는 계정을 격리하기 위해서는 %FtpRoot%\LocalUser\Ftpuser1 이라는 물리적 폴더(또는 옵션에 따라 가상 디렉터리)가 생성되어 있어야 합니다. 

사용자 계정 유형

물리적 홈 디렉터리 경로

익명(Anonymous) 사용자

%FtpRoot%\LocalUser\Public

로컬 윈도우 사용자 계정

(기본 인증 사용)

%FtpRoot%\LocalUser\%UserName%

윈도우 도메인 계정

(기본 인증 사용)

%FtpRoot%\%UserDomain%\%UserName%

IIS 관리자 또는 ASP.NET 커스텀 인증 사용자 계정

%FtpRoot%\LocalUser\%UserName%

   


[사용자 격리 테스트]
 
위에서 정의되어 있는 대로 설정할 경우 어떤 동작을 하는지 몇 가지 시나리오를 통해 테스트 하였습니다. 

시나리오 #1
1. 사용자 격리 - '사용자 이름 디렉터리' 옵션 선택
2. 익명(Anonymous) 사용자를 격리하기 위해 %FtpRoot%\LocalUser\Public폴더를 생성한 후 접속 


시나리오 #1 결과 : 정상적으로 로그인이 하였으며 사용자 격리 확인 



시나리오 #2
1. 익명 사용자를 격리하기 위한 %FtpRoot%\LocalUser 폴더 아래 Public 폴더를 _Public 으로 변경한 후 접속 

 


시나리오 #2 결과 : 로그인 실패 



시나리오 #3
1. 실제 폴더가 아닌 가상 디렉터리에 대해서 사용자 격리가 허용되는지 확인 
 가. 연결 - FTP Site - LocalUser - 가상 디렉터리 추가
 나. 별칭 : PUBLIC
 다. 실제 경로 : C:\Inetpub\ftproot\LocalUser\_Pulbic (시나리오 #2에서 변경한 _Public 폴더 지정) 


   
 

시나리오 #3 결과 : 실제 경로가 아닌 가상 디렉터리 이름이 PUBLIC 과 동일할 때, 연결 가능 



시나리오 #4
1. 시나리오 #3 테스트 환경에서 'FTP 사용자 격리' 기능에서 '사용자 격리' - '사용자 이름 실제 디렉터리' 옵션 선택 

 


시나리오 #4 결과 : 실제 디렉터리가 아닌 가상 디렉터리에는 로그인 실패 


테스트 시나리오에선 익명 사용자 계정에 대해서만 확인하였습니다만 윈도우 사용자 계정을 사용할 때도 기본 홈 디렉터리 이름만 정확히 구성해 주시면 위에서 확인한 것과 같이 어렵지 않게 사용자 격리 기능을 사용하실 수 있습니다.


작성자 : Lai Go / 작성일자 : 2010.11.16

Posted by Lai Go