FTP사용자 격리 기능을 이용한 Web호스팅

예전에 Cafe24.com의 웹 호스팅 서비스를 이용한적이 있습니다. 그런데 그 업체의 호스팅 서비스가 다른 업체의 서비스와 다른 점이 있어 관심을 끌게 했는데, 그 다른 점은 바로 ftp루트와 웹 루트가 다른 다는 것 이었습다. 일반적으로 ftp루트와 웹 루트는 동일합니다. 일반적으로 동일한 루트 디렉토리 인지는 잘 모르지만 제가 받아본 호스팅 서비스는 대부분 같은 루트 디렉토리였습다.

 

서비스 이용자가 ftp로 접속하면 d:\home\username의 경로로 접속합니다.(물론 cafe24.com의 서버는 리눅스이다.) 그리고 이 곳에 홈페이지 소스를 업로드를 합니다.(엄밀히 말하면 d:\home\uaername\www이다.) 그러면 웹 접속자는 이 경로가 아닌 하위 디렉토리인 d:\home\username\www의 디렉토리로 연결 됩니다. 웹 접속자는 절대로 상위 디렉토리에 뭐가 있는지 알 길이 없습니다. 저 같은 경우 php프로그래밍을 하는데 패스워드가 담긴 파일을 인크루드 할 경우 같은 루트 디렉토리에 둘 경우 문제가 되지 않을까 하는 생각을 해본적있습니다. 물론 보안전문가가 아니어서 상위 디렉토리에 접근할 수 있는지 잘 모르지 만요... 서론이 길었군요.

 

윈도우2003서버를 사용하면 위 같은 서비스를 어렵지 않게 구현 할 수 있습니다. 윈도우2000서버도 가능은 하였지만 번거로 왔죠.

 

1. 실습 환경은 Active Directory가 아닌 단독 서버이고 D드라이브에 저장 합니다.

물론 C드라이브에 저장 하여도 상관 없겠죠.

 

2. IIS FTP 설치 하시구요, 테스트용 사용자 둘이나 셋 정도 추가 해주시구요.

 

3. D드라이브에 d:\webhost\localuser 폴더를 생성 합니다. 주의 하실건 webhost명은 임의로 정하시되 localuser명은 다른 이름으로 하시면 안됨니다.

 

4. localuser폴더에 사용자 이름과 같은 이름으로 폴더를 생성하세요. 이 역시 꼭 같은 이름이어야 합니다. 그리고 각 사용자 폴하위에 www폴더를 생성 하세요. 이 폴더가 각 사용자별 웹 루트 디렉토리 입니다. 생성하신 후 적절한 NTFS권한 주시는 있지 마시구요.

 


 

 

5. IIS콘솔을 여신 후 FTP사이트에 마우스포인터를 두신 후 우측버튼 클릭, 새로 만들기> FTP사이트를 선택 합니다.


 

6. FTP사이크 만들기 마법사창이 열리면 다음 버튼 클릭.

 

 
 

7. FTP사이트 설명을 입력하구요 다음.

 


 

8. 사용할 IP주소와 포트번호을 입력하구요 다음.

 


 

 

9. 여기부터 중요!! 사용자 격리를 선택하신 후 다음 버튼 클릭


 

10. !!! 매우 중요 !!! 처음에 D:\webhost\localuser 폴더를 만드 셨을 겁니다.

그러나 홈디렉토리 경로를 지정 하실땐 D:\webhost까지만 지정하세요. 저두 첨엔 책을보면서 따라 하다가 D:\webhost\localuser이 겠거니 짐작으로 하다가 몇 시간을 맨땅에 해딩 했습니다. 접속은 되는데... NTFS권한 문제인줄 알고... ㅠㅠ


 

11. 에구 그림이 잘 못됐군요(귀차니즘-_-;) 사용자 파일를 업로드 해야 하니까 쓰기 권한까지 주세요. 그리고 중요한 다음 버튼 클릭(다음 버튼 안 누르면 진행 안됩니다.ㅋㅋ)


 

12. 자 이제 완성 FTP는 완성 됐구요. 다은 웹사이트 설정할 자례 입니다.

웹 설정 하시기 전에 알FTP로 테스트 해보세요. www폴더가 보이는지요?

 

추가로 한가지 더, FTP사이트에 마우스포니터를 두시고 우측버튼 클릭 메뉴중에 속성을 클릭하면 등록정보창이 뜹니다.


 

여기서 보안 계정탭에 익명 연결허용이 있습니다. FTP익명 연결을 허용 하실경우 체크하시고 locauser폴더에 public폴더를 생성하세요. 그러면 익명사용자는 public폴더로 접근합니다. 원치 안으시면 체크하지 마시고 또한 public폴더도 만드실 필요 없습니다.

 

 

 계속해서 웹사이트 설정을 진행 합니다. 저는 아쿠아, 은광, 개미 이렇게 세 게의 사이트를 만들었구요. 각 사용자는 aqua, eunkwang, baby 이렇게 세 사용자가 있습니다.

 

그리고 도메인은 aqua.com, eungkwang.edu, baby.co.kr 이렇게 세 계의 가상 도메인을 사용합니다.(예제로 사용된 회사 및 기관은 실제로 존재하기는 하나 실제 도메인과 다름이다.) 그리고 IP주소는 192.168.125.4번을 사용하여 도메인을 각각 할당 합니다. 먼저 아쿠아홈 하나만 예로 설명합니다. 이 홈페이지의 사용자는 aqua이고요. 폴더 명 또한 aqua로 만들었습니다. 그리고 그 폴더에 www폴더가 있고요 여기에 홈이지 소스를 저장합니다. 그리고 www폴더 상위에 xxx.mdb 액세스 디비를 저장 합니다.

 


 

13. 아쿠아홈에 마우스포인터 두시고 우측버튼 클릭 메뉴중에 속성을 클릭 하면 등록정보 창이 열립니다. 웹사이트 탭에서 IP주소 옆의 고급을 클릭 합니다.


 

 

14. 이 그림 에서는 이미 추가가 되어 있는데요. 설명을 위해서 추가버튼 클릭


 
15. 여기서 저는 IP주소를 192.168.125.4번을 입력합니다. 포트는 기본포트인 80번 포트를 입력하고요. 호스트 헤더 값은 aqua.com을 입력합니다. 확인을 누르시고 다시 한번 추가버튼을 클릭 한 다음에 IP주소와 포트번호 동일 하게 입력한 다음에 호스트 헤더 값만 www.aqua.com을 추가 하세요.

16. 다음은 홈 디렉터리 탭으로 이동해서 이 컴퓨터에 있는 디렉터리에 체크하시고 로컬 경로를  d:\webhost\localuser\aqua\www를 입력하세요.(www까지 입니다.)

확인을 클릭 하시고 마무리...

 

다른 사이트들도 위와 같은 방법으로 설정하세요.

+ Recent posts