정보보안공부

Windows_윈도우 2008 서버 - FTP 서버 구축 본문

Windows

Windows_윈도우 2008 서버 - FTP 서버 구축

Steady_sp 2018. 10. 25. 14:53

윈도우 2008서버 - FTP 서버 구축

- Vmware WorkStation 사용

- ko_windows_server_2008_r2_with_sp1_x64_dvd_617385 ( ISO )    

 

< 윈도우 2008서버 - FTP서버 구축해보기 >

 

#1 윈도우 2008서버에 FTP 서버 구축

- 윈도우 2008 IP : 100.0.0.101

 

*** 시작 -> 관리도구 -> 서버관리자 -> 역할추가

 

 

-> FTP 서버를 구축하기위해서는 웹서버 ( IIS )를 설치하는데 위사진처럼 웹서버 관련설정을 같이 설정해도 되고 웹서버 설정을 제거하고 FTP서버만 체크해도 관계없다. FTP서버는 반드시 체크해야한다.

 

*** ftp를 구축하기전에 디렉토리 만들기

 

 

-> 최상위 디렉토리 C안에 test3이라고 폴더를 만든다. test3폴더 안에 아무것도 안만들어놔도 상관없다.

 

*** ftp 사이트 구축

 

 

-> 사이트 이름은 알아보기쉽게 ftp로 정하고 만들어놓은 디렉토리를 실제 경로로 지정한다.

 

 

-> 웹사이트 추가와 마찬가지로 바인딩은 가상 호스트 이름을 사용해도되고 안해도 된다. 또한 설정후 바인딩 편집으로 추후에 변경할 수 있다.

-> SSL은 사용하지 않는다.

 

 

-> 인증과 권한부여도 마찬가지로 추후에 따로 설정할 수 있다. 기본으로 설정되있는 상태로 냅두고 마친다.

 

#2 윈도우 2008서버에 FTP 서버 구축 - FTP 권한 부여 규칙, FTP 인증

 

 

*** FTP 권한 부여 규칙

 

 

-> FTP 권한 부여 규칙 설정 : 만들어져있는 a사용자와 b사용자는 읽기, 쓰기 권한을 부여하고 익명사용자는 읽기권한만 부여한다.

 

*** FTP 인증

 

 

-> 기본인증과 익명인증을 모두 사용으로 변경한다.

 

#3 FTP를 사용하려는 클라이언트 W7에 방화벽 설정하기

 

*** 고급 보안이 포함된 Windows 방화벽 설정

 

 

-> 위와같이 방화벽 설정을 한다.

 

#4 클라이언트 W7에서 a,b 사용자와 익명사용자로 FTP 서비스 이용해보기

 

*** W2008 서버에 미리 사용자 a,b 만들어 놓기

 

 

-> FTP 서비스 사용하기전에 미리 사용자 a와b 만들어놓기

 

*** 사용자별 FTP 접속

 

 

-> anonymous 익명 사용자는 패스워드가 필요하지 않다. a와 b사용자는 만들어놓은 사용자의 비밀번호를 통해 접속한다.

-> 접속 후 user 명령을 통해 다른 사용자로 로그인 할 수 있다.

 

*** 익명 사용자 ( anonymous ) 접속

- 익명 사용자의 권한 : 읽기

 

 

-> lcd는 접속한 서버의 디렉토리 이동이아닌 클라이언트의 디렉토리 이동이다.

-> !dir은 서버의 목록조회가 아닌 클라이언트의 목록조회이다.

-> get을 이용해 읽기권한으로 서버에 있는 ftp.txt파일을 읽어들여 클라이언트로 가져온다. 123.txt라는 이름으로 변경해서 가져올 수도 있다. ftp로 인해 해당 바탕화면에 ftp.txt파일과 123.txt파일이 전송된 것을 확인 할 수 있다.

-> put은 쓰기권한이므로 익명사용자는 해당권한이 없기 때문에 사용할 수 없다.

 

*** a 사용자 접속

- 사용자 a의 권한 : 읽기, 쓰기

 

 

-> lcd는 접속한 서버의 디렉토리 이동이아닌 클라이언트의 디렉토리 이동이다.

-> !dir은 서버의 목록조회가 아닌 클라이언트의 목록조회이다.

-> get을 이용해 읽기권한으로 서버에 있는 ftp.txt파일을 읽어들여 클라이언트로 가져온다. 123.txt라는 이름으로 변경해서 가져올 수도 있다.

-> put을 이용해 쓰기권한으로 클라이언트에 있는 123.txt파일을 써서 서버로 보낸다.

 

 

-> 서버에서 확인해 보면 클라이언트에 있는 123.txt 파일이 서버로 전송된 것을 확인 할 수있다.

 

#5 FTP 메시지를 통한 보안설정

 

 

-> 메세지에서 사용자 변수 지원을 체크하게되면 %username% 과같은 변수를 통해 접속한 계정을 출력할 수 있다.

-> 메세지중 보안경고! 메시지를 통해 악의적으로 사용하려는 사용자들에게 보안인식을 시킬 수 있다.

 

*** 클라이언트에서 접속후 메시지 확인해보기

 

 

#6 FTP 사용자 격리 설정 - 사용자별 디렉토리 설정

 

 

*** FTP 사용자 격리 설정

 

 

-> 사용자 이름 디렉터리 설정 후 적용

 

*** 사용자 이름별로 디렉터리 생성

 

 

-> 해당 디렉토리를 구분하기위해 사용자별 폴더안에 구분할수있는 사용자명.txt파일 생성해놓기 default는 anonymous 익명사용자의 디렉터리이다.

 

*** W7에서 FTP 서비스 이용해보기

 

 

-> a사용자로 접속시 만들어놓은 a디렉토리가 기본위치가된다. 하지만 cd ..를 이용해 상위디렉토리로 이동하면 여러사용자의 디렉토리가 보이고 cd b를 이용해 b 사용자의 디렉토리로 이동하면 다른사용자의 파일까지 볼수있는 보안상 문제가 있다.

 

==> 다른사용자의 디렉토리로 이동해 해당 사용자의 파일내용을 볼 수 있다는것은 보안상 취약한 설정이다.

 

#7 FTP 사용자 격리 설정 - 사용자이름 실제 디렉토리 ( 전역 가상 디렉토리 사용 )

*** 사용자 이름 실제 디렉터리 ( 전역 가상 디렉터리 사용 )

 

 

*** LocalUser 디렉토리에 사용자 이름별로 디렉터리 생성

 

 

-> 해당 디렉토리를 구분하기위해 LocalUser 디렉토리 안에 사용자별 폴더안에 구분할수있는 사용자명.txt파일 생성해놓기 public은 anonymous 익명사용자의 디렉터리이다.

 

*** W7에서 FTP 서비스 이용해보기

 

 

-> a사용자로 접속시 만들어놓은 a디렉토리가 기본위치가된다. 하지만 cd ..를 이용해 상위디렉토리로 이동해서 ls를 해보면 성공했다고 나오지만 실제 ls를 다시해보면 상위디렉토리로 이동되지 않은것을 확인 할 수 있다.

 

==> 상위디렉토리로 이동해 다른 사용자의 파일을 볼 수 있다는 설정은 보안상 취약하다. 따라서 위와같이 설정하는것이 보안상 적절한 설정이다. 리눅스에서 이와같은 설정은 chroot설정이라 할 수 있다.

 

Comments