3. FTP

 

  FTP는 File Transfer Protocol 의 약자로서 파일 송수신을 위한 프로토콜이다.

  FTP는 기존 연결을 위해서는  21번 포트를 사용하지만 데이터의 전송은 20번 포트를

  사용한다.

  호스트웨이에서는 서버에서 가장 많이 사용되고 있는 ProFTP최신버전을 RPM으로 제공하고 있다.

  윈도우에서는 ALFTP등의 FTP 접속 프로그램을 통해서 FTP서버에 접속을 할수 있고,

  또한 웹브라우저에서도 FTP서버로 접속이 가능하다.

  웹브라우저로 접속을 할때에는 "ftp://이메일형식"으로 하면 바로 ftp접속을 할수있다.


 

   <그림 3-1 웹브라우저를 통한 FTP 접속>


  위의 그림은 웹브라우저를 통한 FTP접속이다.

  위의 그림에서는 패스워드를 물어보는 창이 떠있지만.

  "ftp://아이디:패스워드@도메인" 형식으로 주소창에 쓰게되면 암호 물어보는 팝업창이 뜨지 않고 바로 FTP서버로 접속을 하게 된다.


  아래그림은 서버에서 다른 서버로 FTP 접속을 하는 그림이다.


 

<그림 3-2 서버에서 다른서버로 FTP 접속>

 

 

명    령

설                    명

FTP 도메인명

  도메인명으로 FTP 접속을 시도한다.

prompt

  상호작용모드 on/off

  Interactive mode off (한번 명령 내릴시 off로 변환)

  off 시 파일을 송/수신시 실행여부를 물어보지 않는다.

  Interactive mode on. (다시 한번 명령 내릴시 on으로 변환)

  on 일때는 파일을 송/수신시 실행여부를 물어본다.

ascii

  ftp 송/수신 파일이 ascii (text등) 일 경우에 설정한다.

bin

  ftp 송/수신 파일이 binary일 경우에 설정한다.

get 파일명

  다른 서버에서 자료를 다운로드 할수 있다.

  (한개의 파일만 다운로드 할수 있다.)

mget 파일명들

  다른 서버에서 한번에 여러개의 자료를 다운로드할 때  사용한다.

  ( *.htm 등 여러 파일을 한꺼번에 다운로드 한다.)

put 파일명

  서버에서 다른서버로 자료를 업로드할 때 사용한다.

mput 파일명들

  서버에서 다른 서버로 여러자료를 업로드 할때 사용한다.

quit

  FTP를 종료한다.

exit

  FTP를 종료한다.( OS 따라서 exit가 안되는것도 있다)

< 표 3-1 서버에서 FTP 접속시 사용하는 명령 >


  위에 정렬된 것말고도 ls, cd 등의 리눅스 명령도 적용이 된다.


  3-1. ProFTP의 설정

  proFTP의 설정 파일은 /etc/proftpd/conf/ 들어있다.

  conf디렉토리에는 총 3개의 파일이 들어있는데,

    - ftpusers : ftp를 허용하지 않는 계정들을 설정해놓는다. 이 파일안에 계정명이 있으면 ftp를 사용할수 없다. ftp는 기본적으로 root가 접속되지 않도록 되어있는데 그 이유는 이파일안에 루트의 계정이 설정되어 있기 때문이다. 바꿔서 말하면 이파일에서 설정되어있는 root계정을 삭제한다면, root로도 ftp접속이 가능하게 된다.

    - welcome.msg : ftp 접속이 성공했을때 나타나는 접속 메시지를 이곳에 설정한다. 위의 서버에서 다른서버로 ftp 접속을 하는그림을 보았을때, 주석(#) 으로 나타나는 문구가 바로 이 파일안에 들어있는 내용이 출력된 것이다. 이것은 사용자가 마음대로 변경이 가능하다.

    - proftpd.conf : 이것이 바로 ftp의 환경설정 파일이다.

                             호스트웨이에서 서버에 기본으로 설치되는 proftp는 한글판으로서 설정파일에 설정하나하나에 한글 설명이 친절하게 되어있다.

                            그냥 설정파일에 있는 내용을 읽어봐도 그 사용방법을 알수있을것이지만 가장 많이 변경을 하게되는 몇몇 라인을 살펴보도록 하겠다.

 

  # ServerType                    standalone

  ServerType                      inetd

  → standalone 모드로 가동할것인지 inetd모드로 가동할것인지 결정한다.

   #DefaultRoot                    ~       !groupname

  →앞에 주석을 해제하게 되면 ftp사용자들은 자기 디렉토리를 벗어나지 못한다.

     웹호스팅 서버등으로 이용할때에는 위의 주석을 해지해 주는 것이 보안상좋다.

  #Port                           21

  → ftp 가동시 사용할 포트이므로 standalone 모드로 ftp를 사용할때에는 앞의

      주석을 제거해준다.

  RootLogin                       off

  → 위에서 설명한 ftpusers에서 root 계정을 제거한후에 위의 옵션을 ON으로

      바꾸게 되면 root계정으로 ftp를 사용할수 있게된다.

< /etc/proftpd/conf/proftpd.conf 주요 설정 >

 


  위의 설정들이 proFTP를 사용하면서 가장 많이 변경을 하게 되는 부분이다. 나머지 부분들은 디폴트로

  사용해도 무관하다.



3-2. Standalone 모드와 inetd 모드

  위의 proftpd.conf의 설정을 보게 되면 호스트웨이에서 설정되는 FTP는 기본적으로 inetd 모드로 설정이 되어있다.


  과연 Standalone 모드와 inetd 모드라는 것은 어떤것인가?


  Stanalone 모드는 말그대로 다른것에 영향을 받지 않고 단독으로 FTP 데몬을 실행하는 것을 말한다.

  즉 sshd나 httpd처럼 단독으로 항상 ftpd데몬이 떠있다가 ftp접속 요청이 들어오면 프로세서를 하나 생성하여 접속을 허용하는 방식으로 항상 데몬이 떠서 접속이 들어오기를 대기하고 있으므로, inetd모드보다는 접속 속도에 향상을 기대할수 있다.


  standalone의 실행은 위의 proftpd.conf에서 standalone 모드의 주석(#)을 제거하고,

  inetd 모드를 주석처리 한다음, MaxInstances 의 주석을 해제해준다. (이것은 FTP의 프로세서를 30

  개로 제한한다는 것으로 DoS 공격등의 방지를 위한 설정이다.)

 

  ServerType                    standalone

  #ServerType                      inetd

  .....

  .....

  MaxInstances                   30

 

   /etc/xinetd.d/ftp를 열어서

 

vi /etc/xinetd.d/ftp

                     

 ※ ftp란 이름으로 안되어 있을수도 있으므로 직접 이동 후에 확인한다.

  disable을 yes로 변경해주고,

 

disable = yes

  /etc/rc.d/init.d/xinetd restart 하고, (Xinetd 재가동)

   /etc/rc.d/init.d/proftp-standalone start (혹은 restart )해주면 standalone모드로 ftp를 사용할 수

   있다.


  반면 inetd 모드는 xinetd라는 슈퍼데몬에 포함되어 있는 경우를 말한다.

  xinetd 슈퍼데몬은 telnet, pop, imap등 서버의 인터넷 서비스의 데몬들을 일괄 관리하는 데몬을 말한다.

  이 xinetd가 관리하는 데몬들은 /etc/xinetd.d안에 들어있으며, proftp의 경우에는 ftp라는 이름으로 설정이 되어있다.

 

< 그림 3-3 xinetd 모드의 FTP설정 내용 >


  위의 그림은 /etc/xinetd.d/ftp의 설정 내용이다.

  disable이 no로 되어있어야 정상적으로 동작을 할수 있는 것을 말한다.

  stanalone 모드로 동작을 시킬때에는 위에서 설명을 했지만 disable = yes 로 바꿔주고 xinetd를 재가동시켜줘야 정상적으로 standalone모드로 동작을 시킬 수 있다.


  이처럼 ftp를 xinetd 모드로 실행시키는 이유는 데몬을 슈퍼데몬에서 통합관리를 하게되므로 xinetd데몬만 띄어주면 ftp 까지 한번에 실행이 되기 때문에 관리상 편리하기 때문이다.