FREEDOM. FRIENDS. FEATURES. FIRST.
페도라 한국 사용자 모임

vsftpd 설치 및 설정(마지막 수정:2011. 05. 18.)

게시판 Tech/Tip vsftpd 설치 및 설정(마지막 수정:2011. 05. 18.)

  • This topic has 10개 답변, 5명 참여, and was last updated 9 years, 8 months 전에 by 태랑. This post has been viewed 36 times
  • 만든이
    게시글
  • #12167
    소브
    참가자
    • 게시글62
    • 댓글200
    • 총합262
    • ★★
    @thirdnsov

    *편의상 존댓말로 쓰지 않았습니다.
    개인적인 공부를 하고 기록으로 남기는거니

    약간 틀린부분도 있고 다른곳에 올라와있는 자료와 다를 수도 있습니다
    .*
    *
    초반에 루트의 현재 위치가 ftp디렉토리로 되어 있는데 이건 신경쓰지 않으셔도 됩니다
    .*
    *
    스샷은 Fedora 10 에서 찍은 것입니다.*

    *중간중간 //불라불라// 이렇게 ‘//’ 이 사이에 있는 말은 개인적인 말입니다.*
    ---------------------------------------------------------------------------

    루트 권한으로 그림과 같이 yum list vsftpd를 입력한다.
    (
    패키지명을 알고 있다면 굳이 이 작업을 안해도 된다
    )
    입력하고 나면 위와 같이 패키지명이 검색된다
    .
    (
    패키지명과 버전을 다를 수도 있다
    )
    패키지명도 알았으니 마지막줄과 같이 입력해 설치를 한다
    .

     

     

    # yum install vsftpd.i386을 입력하고 나면 위와 같은 화면이 출력된다.
    잠깐 기다리고 나면 마지막 줄과 같이 뜨는데 y를 입력하고 엔터를 치자
    .

    설치가 다 되었다.

    제대로 설치가 되었는지 rpm -qa | grep vsftpd 를 입력해 확인해보자.
    필자는 제대로 설치가 되었다
    .
    ---------------------------------------------------------------------------

    이제 설치가 다 되었으니 환경설정을 해보자.

     

    우선 cd 명령어를 이용해 /etc/vsftpd 로 이동하자.
    그 후 vi 등 에디터를 사용해 vsftpd.conf를 실행한다
    .
    (cd
    명령어로 vsftpd 폴더로 이동하지 않고 바로 경로를 지정해 실행해도 된다
    )

     

    anonymous_enable=YES

    이 옵션은 익명사용자가 접근을 할 수 있게 할 것인지를 묻는 옵션이다.
    YES
    를 하면 익명사용자가 FTP에 접속할 수 있다
    .

     

    local_enable=YES

    이 옵션은 로컬 계정 사용자의 ftp접근 권한을 묻는 옵션이다.
    YES
    를 하면 로컬 계정 사용자가 FTP에 접속할 수 있다.
     

     

    write_enable=YES

    이 옵션은 파일의 저장, 삭제 등과 같은 파일을 변경하는 FTP명령을 사용할 수 있도록 할 것인가를 묻는 옵션이다. 익명 서버에서는 보통 NO로 설정하고 실명서버인 경우는 각 사용자마다 자신의 디렉토리 같은 곳에 데이터를 업로드 할 수 있게 해주어야 하므로 보통 YES로 설정해준다.

     

     

    local_umask=022

    이 옵션은 파일이나 디렉토리가 생성될 때 파일 허가권(퍼미션)에 적용될 umask값을 지정해주는 옵션이다.
    022
    로 설정하게 되면 디렉토리가 생성될 때는 755구조의 퍼미션을, 파일이 생성될 때는 644구조의 퍼미션을 가지게 되는 것이다
    .
    anon_upload_enable=YES

    이 옵션은 FTP에 익명사용자가 업로드가 허용된 디렉토리에서 파일을 업로드 할 수 있는가를 설정하는 옵션이다. 이 부분 앞의 주석을 제거하고 YES로 값을 변경하면 익명사용자의 업로드가 허용된다.
    anon_mkdir_write_enable=YES

    이 옵션은 익명사용자가 새로운 디렉토리를 생성할 수 있게 할 것인지를 묻는 옵션이다.
    이 부분 앞의 주석을 제거하고 YES로 값을 변경하면 익명사용자가 새 디렉토리를 생성할 수 있게 된다
    .

     

    dirmessage_enable=YES
    이 옵션은 FTP사용자가 새로운 디렉토리로 이동하였을 때 그 디렉토리에 있는 메시지 파일을 사용자에게 보여줄 것인가를 설정하는 옵션이다. YES를 설정하면 FTP사용자가 디렉토리를 이동하면 메시지를 보여주게 된다.
    (cf.
    위 옵션이 활성화 되있을 시에는 message_file옵션을 같이 사용하는 옵션으로 각 디렉토리별로 원하는 메시지를 담은 .message 라는 파일을 만들어놓고 vsftpd.conf message_file=.message라는 줄을 넣으면 된다
    .)
    (//
    잘은 모르겠지만 알FTP같은 소프트웨어 외에는 확인이 잘 안되는 듯하다.//)
    xferlog_enable=YES
    이 옵션은 FTP의 파일 송수신 결과를 xferlog_file옵션으로 지정된 로그 파일에 저장할 것인가를 설정하는 옵션이다.  YES를 하면 지정된 로그 파일에 로그를 저장하게된다.
    connect_from_port_20=YES
    이 옵션은 FTP의 데이터 전송 포트를 20번으로 사용할 것인가를 묻는 옵션이다. 이 옵션이 꺼져있으면 vsftpd 서버는 1024번 포트 이상의 임의의 포트를 데이터 포트로 사용하게 된다.
    ftp_data_port=원하는포트넘버

    이 옵션은 파일 전송 포트를 강제로 '원하는포트넘버'로 바꾸는 옵션이다.
    chown_uploads=YES
    이 옵션은 익명으로 업로드된 파일에 대해 chown_username 옵션으로 명시된 사용자
    의 소유권으로 변경되도록 할 것인가를 설정하는 옵션이다. 기본값은 NO
    (
    이 옵션은 파일 보안 및 관리상에 도움이 될 수도 있을 것이다
    )
    chown_username = whoever
    이 옵션은 chown_uploads 옵션과 같이 사용하는 옵션으로 위에서 말한 사용자
    의 계정을 담고 있는 파일이다.
    (//
    옵션으로 생각하는데 참고하고 있는 책에서는 파일이라고 하내요 허헛.. 아시는분은 댓글이라도
    ...//)

     

    xferlog_file=/var/log/vsftpd.log
    이 옵션은 FTP의 파일 송수신 로그를 저장하는 파일을 지정하는 옵션이다.
    지정하지 않고 넘길 시에는 기본값인 /var/log/xferlog 에 기록된다
    .
    xferlog_std_format=YES
    이 옵션은 파일 송수신 로그를 표준 xferlog 포맷으로 저장되도록 할 것인가를 설정하는 옵션이다.
    기본값은 NO이다
    .
    idle_session_timeout=600
    이 옵션은 FTP명령을 실행한 이후 설정해준 시간동안 다른 명령을 입력하지 않으면 접속 섹션이 끊어지게 하는 옵션이다. 기본값은 300초 이다.(시간단위는 초)
    data_connection_timeout=120
    이 옵션은 FTP 서버로 부터 데이터를 다운로드하거나 업로드 한 후에 다시 파일을 전송하지 않으면 끊어질 시간을 설정하는 옵션이다. 지정된 시간 동안에 데이터 전송이 없으면 클라이언트 접속이 끊어진다. 기본값은 300초 이다.

    nopriv_user=ftpsecure
    이 옵션은 vsftpd 데몬을 루트 권한이 아닌 시스템에 존재하는 일반 유저의 비특권 권한으로 작동되도록 하고자 할 ㅤㄸㅒㅤ 설정하는 옵션이다. 기본값은 nobody(//자세하게는 모르겠내요.. 아시는분은 댓글남겨주세요 ~//)
    async_abor_enable=YES 
    이 옵션은 async ABOR 명령을 가능하도록 설정하는 옵션이다. 기본값은 NO. 보안상 그리 좋지 못한 옵션이긴 하지만 일부 FTP 클라이언트 프로그램에서 파일 전송을 취소하였을 때 취소 되지 않은 상태로 있는 경우가 생기곤 하는데 이 때 사용할 수도 있다.
    (//
    이 부분도 자세히는 모르겠군요그저 책보고 쓴거구요. 자세히 아시는분 댓글 달아주세요 ~ //)

    ascii_upload_enable=YES
    옵션파일을 업로드 할 때 아스키모드로 업로드 하는 것을 허용 할 것인지 묻는 옵션이다. 보통은 보안상의 문제로 NO로 설정하거나 주석처리 한다.

    ascii_download_enable=YES
    옵션은 파일을 다운로드 할 때 아스키 모드로 다운로드 하는 것을 허용할 것인지 묻는 옵션이다. 보통은 보안상의 문제로 NO로 설정하거나 주석처리 한다.


    ftpd_banner=Welcome to blah FTP service.
    옵션 FTP사용자가 FTP에 접속하였을 때 안내메시지 등을 쓰는 옵션이다. 한글도 사용이 가능하다.

    deny_email_enable=YES
    옵션은 익명 계정(ftp 혹은 anonymous)이 로그인할 때 이메일 주소 형태로는 로그인을 할 수 없도록 설정할 수 있는데 이 때 사용하는 옵션이다. (이 부분을 적용하게 되면 banned_email_file 옵션으로 명시된 파일에 존재하는 anonymous@ 같은 형태의 주소로는 로그인이 불가능해진다.)

    banned_email_file=/etc/vsftpd/banned_emails
    옵션익명 접속시 허용하지 않을 이메일 패스워드 형태를 담고 있는 파일을 명시하는
    . 위에 옵션과 함께 작동되며 banned_email 에 로그인을 허용하지 않을 이메일 주소 형태를 한줄씩 넣으면 차단이 된다.

     

    chroot_list_enable=YES

    옵션은 사용자가 로그인시 자신의 디렉토리에 대해 chroot를 갖도록 할 것인가를 묻는 옵션이다. YES로 설정값을 주면 chroot_list_file 옵션으로 명시되는 파일에 있는 사용자는 자신의 디렉토리 이외의 상위 디렉토리로는 접근이 불가능해진다.

    chroot_list_file=/etc/vsftpd/chroot_list

    옵션 chroot_list_enable 옵션과 같이 사용하는 옵션이다. 이 부분에 명시된 파일에 들어있는 사용자는 자신의 디렉토리 외에 상위 디렉토리로 접근이 불가능해진다.

    ls_recurse_enable=YES

    옵션 ls R 명령어를 허용할 것인가를 묻는 옵션이다. 기본값은 NO. 이 옵션을 잘못 사용하면 많은 시스템 자원이 소모되기 때문에 크래커들에게 공격을 받을 위험이 있어 조심히 사용해야하는 옵션이다.

    listen=YES

    옵션 vsftpd 데몬을 standalone로 동작되도록할 때 설정하는 옵션이다. 기본값은 NO.주의할 점은 inetd 모드로 vsftpd 데몬을 돌릴 때는 이 옵션을 사용하면 안된다.

    listen_ipv6=YES

    옵션 FTP서버를 IPv6에서 운영할 때 설정해주는 옵션이다. 일반적으로 IPv6을 사용하지 않기에 IPv6을 사용하는 사람만 설정해주면 된다.

    pam_service_name=vsftpd

    옵션 PAM을 이용하여 사용자 인증을 하고자 할 때 인증 파일을 지정하는 옵션이다.

    userlist_enable=YES

    이 옵션은 userlist 옵션(유저접속제한기능)을 사용할 것인지 묻는 옵션이다. YES는 사용한다는 의미이다.

    userlist_deny=YES/NO 

    이 옵션은 userlist_enable 옵션과 같이 사용하는 것으로 을 YES로 하면 /etc/vsftpd/user_list 에 명시되어 있는 사용자의 접근을 허용하지 않는 다는 의미이고 NO로 하면 user_list 에 명시된 사용자만 접근이 가능하다.

    userlist_file=/etc/vsftpd/user_list

    이 옵션은 userlist 기능에서 사용할 사용자가 명시되어 있는 파일 위치를 설정해 줄 수 있는 옵션이다.

    디폴트 경로는 위에 적혀있는 곳이다.

    tcp_wrappers=YES

    옵션 TCP 랩퍼에 의해서 vsftpd 접속을 제어하도록 할 것인가를 묻는 옵션이다.

    /etc/hosts.allow /etc/hosts.deny 파일에서 접근 허용할 IP와 거부할 IP주소를 명시하여 접속을 제어할 수 있다.

    ------------------------------------------------------------------

    * 그 외 다른 옵션들

    session_support=YES 이 옵션은 wtmp에 로그를 남기기게 할 것인지 묻는 옵션이다.

    YES로 하면 last 명령어로 FTP 접속 여부를 알 수 있다.

    max_clients=100 이 옵션은 최대 접속자 수를 설정하는 옵션이다. 100 부분을 수정하면된다.

    max_per_ip=3 이 옵션은 호스트당 최대 접속 수를 설정하는 옵션이다. 3 부분을 수정하면 된다. 0으로 설정하게 되면 무제한이 된다.

    listen_port=21 이 옵션은 FTPStandalone 으로 운영할 때 포트를 변경하고자 할 때 설정하는 옵션이다. 기본값은 21.

    dual_log_enable=YES

    이 옵션은 /var/log/xferlog 파일과 /var/log/vsftpd.log 파일 모두에 FTP 파일 전송 기록이 저장되도록 하는 옵션이다. 기본값은 NO

    -------------------------------------------------------------------

    이제 대략적인 vsftpd의 환경설정이 끝났다.

    환경설정이 끝났으니 ftp서버를 켜 보자.

    위와 같이 써주면 vsftpd가 시작되는 것을 확인 할 수 있을 것이다.

    vsftpd를 끄고 싶으면 아래 그림과 같이 해주면 된다.

    이렇게 쳐주면 vsftpd가 꺼지게 된다.

    혹 재 시작을 하고 싶다면 아래와 같이..

    간단히 start stop의 부분을 restart로 바꿔주면 vsftpd가 재시작된다.

    ------------------------------------------------------------------

    첫 문서화 작업이라 많이 부족해보이내요 ~

    틀린 부분이나 조금 부족해서 보충해야 할 부분이 있다면 언제든지 말씀해주세요 ~

9 답변 글타래를 보이고 있습니다
  • 글쓴이
    답변
    • #12869
      딱털서어
      참가자
      • 게시글87
      • 댓글316
      • 총합403
      • ★★
      @no1linuxer

      수고하셨습니다.~~~

      리눅스를 더 가까이 - No1.Linux

    • #12870
      소브
      참가자
      참가자
      • 게시글62
      • 댓글200
      • 총합262
      • ★★
      @thirdnsov

      감사합니다 ~~~ 그래도 아직 많이 부족해 보이내요 🙁

    • #12871
      딱털서어
      참가자
      • 게시글87
      • 댓글316
      • 총합403
      • ★★
      @no1linuxer

      소브님의 열렬 강좌는 페도라를 이용해서 FTP 서버를 구축하고자 하는
      리눅스 입문자에게는 보배같은 자료가 될 겁니다.~~~

      이렇게 글을 쓴다는 열정이 없으면 쉬운 일은 아닐 것입니다.~~~~

      리눅스가 발전할 수 있는 원동력은 소보님과 같은 열정이 식지 않고 있기 때문일 것입니다.~~!

      리눅스를 더 가까이 - No1.Linux

    • #12872
      소브
      참가자
      참가자
      • 게시글62
      • 댓글200
      • 총합262
      • ★★
      @thirdnsov

      과찬이세요 ~ 🙂 저도 아직 입문자이고 아는게 많이 없답니다 ~ 앞으로 더 노력하겠습니다 ~ ~

    • #12873
      geekiss
      참가자
      • 게시글1
      • 댓글3
      • 총합4
      • ★★
      @sawsea11

      이거요 페도라서버 터미널에서 하는건가요?

      잘부탁드립니다 열심히하겠습니닷 ㅋㅋ

    • #12874
      소브
      참가자
      참가자
      • 게시글62
      • 댓글200
      • 총합262
      • ★★
      @thirdnsov

      FTP를 설치하실 서버컴퓨터의 터미널 상에서 하셔도 되고

      ssh로 원격 접속하셔서 설치하셔도 됩니다 ~

    • #12875
      geekiss
      참가자
      • 게시글1
      • 댓글3
      • 총합4
      • ★★
      @sawsea11

      FTP를 다 설치하고 CMD창에서 저의 WINDOW에서 vmware로 사설IP(192.168.xxx.xxx)를 이용해 들어가는데 성공을 했지만 공인IP로는 들어가지를 못합니다. "원격호스트에 의해 막혔다."라고 나옵니다. 포트도 다열고 해보았지만 되지않습니다.

      문제가 무엇인지 답변주시면 감사하겠습니다>^^

      잘부탁드립니다 열심히하겠습니닷 ㅋㅋ

    • #12876
      태랑
      키 마스터
      • 게시글207
      • 댓글878
      • 총합1085
      • ★★
      @admin

      그건 네트워크를 좀더 공부해보시면 아실수 있는데

      10.10.10.10 이라는 공인아이피 아래에
      사설아이피로 192.168.10.10 ~ 250 까지 있다라고 했을때

      10.10.10.10 으로 접속시 192.168.10.10 의 20번 포트로 접속가능하게 하려면
      포트포워딩 이라는 기능을 사용해야 합니다 다른용어로는 Nat 매핑 이라는 용어로도 불립니다.

      공인아이피의 여유가 있다라면 vmware 의 리눅스에 네트워크 타입을 브리지로 변경해서
      공인 아이피를 분배해주는것도 하나의 해결방법일 것입니다.

      오픈소스를 응원합니다 Blog https://hoing.io
      Senior Database Administrator(Mysql, Oracle)

      사이트 이용 문의 사항은 댓글이나 admin@fedoralinux.or.kr 로 메일주세요

    • #12877
      iskang72
      참가자
      • 게시글0
      • 댓글1
      • 총합1
      • ★★
      @iskang72

      수고하십니다.

      위 글을 읽고 vsftpd 설치 설치 했는데 아래와 같이 command not found 라표 표시됩니다.

      혹시 제가 잘 못 설치 한 건가요?

       

       

    • #12878
      태랑
      키 마스터
      • 게시글207
      • 댓글878
      • 총합1085
      • ★★
      @admin

      yum -y install ftp

      로 ftp 클라이언트를 설치해보세요

      오픈소스를 응원합니다 Blog https://hoing.io
      Senior Database Administrator(Mysql, Oracle)

      사이트 이용 문의 사항은 댓글이나 admin@fedoralinux.or.kr 로 메일주세요

9 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.