상단

FTP 서버인 vsftp(Very Secure FTP Daemon)를 정리 한다.

 

Ubuntu용 설치 가이드


  • vsftpd 2.0.7 설치

 
 apt-get install vsftpd
 vi /etc/vsftpd.conf
     listen=YES
     anonymous_enable=NO
     local_enable=YES
     write_enable=YES
     local_umask=022
     file_open_mode=0644
 vi /etc/ftpusers
     #--- FTP를 사용할 사용자 아이디를 주석으로 막아 해당 사용자가 FTP를 사용할 수 있도록 한다.
 service vsftpd restart 
     #--- /etc/init.d/vsftpd restart, 예전 방식의 명령어
     #--- FileZilla로 접속시 전송 설정을 "활성"으로 한다.
 
  • 환경 설정 파일

    • vi /etc/vsftpd.conf : vsftp 설정 파일

    • vi /etc/ftpusers : vsftp 차단 사용자 목록

    • vi /etc/vsftpd/user_list : 차단 사용자 목록

     
  • 참고 문헌 : 우분투: vsftpd 설정, 2009.3

 
 

CentOS용 설치 가이드


  • vsftp 설치

 
 yum -y install vsftpd
 
 vi /etc/vsftpd/user_list 파일에서 root를 제거 합니다.
 vi /etc/vsftpd/ftpusers 파일에서 root를 제거 합니다.
 
 vi /etc/vsftpd/vsftpd.conf
   anonymous_enable=NO
   userlist_enable=NO
   userlist_deny=YES
   tcp_wrappers=YES
 
 setsebool -P ftp_home_dir=1
 
 service vsftpd restart
 
  • 환경 설정 파일

    • vi /etc/vsftpd/vsftpd.conf : vsftp 설정 파일

    • vi /etc/vsftpd/ftpusers : vsftp 차단 사용자 목록

    • vi /etc/vsftpd/user_list : 차단 사용자 목록

     
  • vsftp 설정

 
 getsebool -a | grep ftp
 
  • CentOS 방화벽 설정

 
 setup
    #--- 21/tcp, 20/tcp를 열어 둔다. 또는 서비스 중 FTP 서비스를 열어 둔다.
 
  • Windows 방화벽 설정

 
 FileZilla 프로그램을 방화벽에서 차단하지 않도록 한다.
 
  • FileZilla 설정

    • 일반 -> 프로토콜 : FTP

    • 일반 -> 암호화 : 일반 FTP 사용

    • 일반 -> 로그온 유형 : 일반

    • 고급 : 서버 종류 : Unix

    • 기본 리모트 디렉토리 : /tmp

    • 전송 설정 : 능동형

    • 문자셋 : UTF-8로 강제 설정

 
 

사용자 가이드


FTP 전송 모드

  • FTP Server는 기본적으로 아래와 같은 2개의 Port를 사용한다.

    • FTP Port : Default 21 port / tcp, FTP 명령어 송수신

    • FTP-Data Port : Default 20 port / tcp, FTP 데이터 송수신

     
  • FTP를 사용하기 위해서는 방화벽이 열려 있어야 한다.

    • 일반적으로 1024 이상의 포트는 방화벽에서 열려 있다.

 

{|cellspacing="0" cellpadding="2" border="1" width="100%" bgcolor="#FFFFFF" align="center" 
|- |width="20%" align="center" valign="middle" style="background-color:#eee;"|Active Mode |width="80%"|

  • Active Mode는 정해진 포트를 사용하여 송수신 한다. (Default port. 21, 20)

  • Active Mode (활성 모드)에서의 송수신 절차

 
 #--- FTP Client에서 FTP Server의 21 port (FTP Port)로 접속 한다.
 #--- FTP Client가 FTP Server에게 데이터 통신을 위한 xx2 port를 알려준다.
 FTP Client:xx1/tcp -> FTP Server:21/tcp    #--- xx1은 1023보다 큰 port
 
 #--- FTP Server에서 데이터 송수신을 위해 FTP Client의 xx2 Port로 접속 한다.
 FTP Client:xx2/ucp <- FTP Server:20/ucp    #--- xx1은 1023보다 큰 port

  • Active Mode로 FTP를 사용하기 위해 방화벽을 설정 한다.

    • FTP Server 방화벽 설정 : 21, 20 port 오픈

    • FTP Client 방화벽 설정 : xx1, xx2 port 오픈
      align="center" valign="middle" style="background-color:#eee;"
  • Passive Mode는 임의의 포트를 할당하여 송수신 한다.

  • Passive Mode (수동 모드)에서의 송수신 절차

 
 #--- FTP Client에서 FTP Server의 21 port (FTP Port)로 접속 한다.
 #--- FTP Server가 FTP Client에게 데이터 통신을 위한 yy1 port를 알려 준다.
 FTP Client:xx3/tcp -> FTP Server:21/tcp    #--- xx3은 1023보다 큰 port
 
 #--- FTP Client에서 데이터 송수신시 FTP Server에서 제공한 yy1 port로 접속 한다.
 FTP Client:xx4/ucp -> FTP Server:yy1/ucp   #--- xx4, yy1은 1023보다 큰 port

  • Passive Mode로 FTP를 사용하기 위해 방화벽을 설정 한다.

    • FTP Server 방화벽 설정 : 21, yy1 port 오픈

    • FTP Client 방화벽 설정 : xx3, xx4 port 오픈

     
  • ftp client에서 passive mode로 변경하기 위한 명령어

 
 passive

|}

 

관리자 가이드


Port 변경

  • Active Mode에서 FTP를 위한 Port 변경 방법

    • FTP 포트로 50021을 사용하고, FTP-Data 포트로 50020을 사용하도록 설정해 보자.

    • 서버 방화벽에서 50021, 50020 port가 열려 있어야 한다.

    • vi /etc/vsftpd.conf (in Ubuntu), vi /etc/vsftpd/vsftpd.conf (in CentOS)

 
 #--- inetd 모드가 아닌 독립 모드로 vsftp 실행
 listen=YES
 #--- FTP를 위한 Listen Port를 지정 한다.
 listen_port=50021
 
 #--- 데이터 전송을 위해서 Active Mode를 사용도록 설정 한다.
 #--- Active Mode에서 FTP 데이터 전송을 위한 디폴트 포트는 20 port 이다.
 port_enable=YES
 #--- 데이터 전송을 위해서 Passive Mode를 사용하지 못하도록 한다.
 pasv_enable=NO
 
 #---  20번 포트의 데이터전송 연결을 허용 한다.
 connect_from_port_20=YES
 #--- Active Mode에서 사용할 FTP-Data 포트를 강제로 50020 port로 변경 한다.
 ftp_data_port=50020

  • Passive Mode에서 FTP를 위한 Port 변경 방법

    • FTP 포트로 50021을 사용하고, FTP-Data 포트로 50031 ~ 50040을 사용하도록 설정해 보자.

    • 서버 방화벽에서 50021, 50020, 50031 ~ 50040 port가 열려 있어야 한다.

    • 사내 방화벽이 설정되어 있을 경우, Passive Mode를 사용하여야 할 경우가 있다.

    • vi /etc/vsftpd.conf (in Ubuntu), vi /etc/vsftpd/vsftpd.conf (in CentOS)

 
 #--- inetd 모드가 아닌 독립 모드로 vsftp 실행
 listen=YES
 #--- FTP를 위한 Listen Port를 지정 한다.
 listen_port=50021
 
 #--- 데이터 전송을 위해서 Active Mode를 사용도록 설정 한다.
 #--- Active Mode에서 FTP 데이터 전송을 위한 디폴트 포트는 20 port 이다.
 port_enable=YES
 #--- 데이터 전송을 위해서 Passive Mode를 사용하지 못하도록 한다.
 pasv_enable=YES
 
 #---  20번 포트의 데이터전송 연결을 허용 한다.
 connect_from_port_20=YES
 #--- Active Mode에서 사용할 FTP-Data 포트를 강제로 50020 port로 변경 한다.
 ftp_data_port=50020
 
 #--- Passive Mode에서 사용할 FTP-Data 포트를 강제로 50031 port에서 50040 port까지 허용 한다.
 pasv_min_port=50031
 pasv_max_port=50040

  • vsftp 서버를 재기동 한다.

    • Ubuntu : /etc/init.d/vsftpd restart

    • CentOS : service vsftpd restart

     
  • vsftpd.conf 샘플

 
 listen=YES
 listen_port=21
 
 port_enable=YES
 connect_from_port_20=YES
 ftp_data_port=50031
 
 pasv_enable=YES
 pasv_min_port=50032
 pasv_max_port=50040
 

FTP Client 명령어

  • PASSIVE 모드로 변경

 
 literal pasv
 

참고 문헌


 
 

분류: 오픈소스

최종 수정일: 2024-09-30 12:26:18

이전글 :
다음글 :