커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 네트워크(network) > FTP 서버 / rsync / 미러링 / CVSup 도움말
검색 : 사이트 WHOIS 웹서버 종류


  FreeBSD에서 FTP 설정에 대해 (chroot, log) 작성일 : 2005/08/02 22:33
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 8867
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : FreeBSD에서 FTP 설정에 대해 (chroot, log)
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    정리일 : 2005.7.25(월)

    FreeBSD에 기본으로 설치되는 FTP 설정에 대해 간단히 정리해보았다.

    1. 홈디렉토리 못 벗어나게 chroot 설정

      /etc/ftpchroot 파일에 한줄에 ID 하나씩 또는 @그룹명 형태로 작성하면 된다.
      아래의 예를 살펴보자.

      
     
      truefeel
      @wheel
      coffeenix /home/download
      
     


      truefeel ID와 wheel 그룹은 FTP 접속시 홈디렉토리를 벗어나지 못한다.
      coffeenix ID는 지정한 디렉토리를 FTP login 디렉토리로 제한하는 경우이다.
      즉 FTP접속시에 /home/download 디렉토리가 / 디렉토리가 된다.

      참고로 proftpd와 vsftpd는 다음과 같은 설정으로 모든 사용자가 홈디렉토리를 벗어나지 못하게
      설정할 수 있다.

      - proftpd (proftpd.conf) : DefaultRoot ~
      - vsftpd  (vsftpd.conf)  : chroot_local_user=YES

    2. 접속 및 파일 전송 로그 남기기

    1) inetd.conf에 설정된 기본 설정으로는 로긴과 로그아웃에 대한 정보만 남게 된다.
       파일전송 로그까지 포함한 보다 자세한 로그 남기려면 /etc/inetd.conf 에서
       ftpd -l 대신 ftpd -ll 로 수정한다. (-ll 상세로그)

      
     
       ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -ll
      
     



    2) ftpd 데몬에 의한 로그는 syslog를 통해서 남기므로 /etc/syslog.conf 설정이 필요하다.

      
     
       # ftp log
       ftp.*                                           /var/log/xferlog
      
     

    3)  /var/log/xferlog 파일 생성

      
     
       # cd /var/log
       # touch xferlog
       # chmod 640 xferlog
      
     


    4) syslogd 데몬과 inetd 데몬을 재실행한다.

      
     
       # killall -HUP syslogd inetd
      
     


    5) xferlog 로그 파일을 rotation 해보자.

       ftp 사용이
       많은 서버는 날짜별로 rotation 하도록 하고,
       적은 서버는 용량으로 rotation 하도록 하겠다.

       /etc/newsyslog.conf 에 다음 설정을 추가한다.

      - ftp 사용이 많은 서버
      
     
      # 날짜로 rotation, 매일 0시에 rotation. 최근 10 개 보관
      /var/log/xferlog                        640  10    *    @T00  Z
      
     


      - ftp 사용이 적은 서버
      
     
      # 용량으로 rotation, 200KB 단위 10개 보관
      /var/log/xferlog                        640  10    200  *     Z
      
     


    6) 남겨진 로그를 살펴보자.
       어느 IP에서 어느 ID로 로긴했는지와 전송된 파일(get, put) 목록, 용량 등을 파악할 수 있다.
       그러나 동시에 여러 IP에서 FTP 접속시 어느 IP에서 파일을 전송한 것인지는 ftpd의 PID
       (아래에서는 86928, 87043)를 보고 파악해야 한다.

      
     
      Jul 25 08:05:09 coffee ftpd[86928]: FTP LOGIN FROM 218.xxx.xxx.xxx as truefeel
      Jul 25 08:05:25 coffee ftpd[86928]: put /public_html/devel/com/smsok.html = 1109 bytes
      Jul 25 09:43:43 coffee ftpd[87043]: connection from 218.xxx.xxx.xxx (218.xxx.xxx.xxx)
      Jul 25 09:43:43 coffee ftpd[87043]: FTP LOGIN FROM 218.xxx.xxx.xxx as truefeel
      Jul 25 09:43:43 coffee ftpd[87043]: get /public_html/devel/main.html = 5214 bytes
      Jul 25 09:43:44 coffee ftpd[87043]: get /public_html/devel/com/mem.html = 1882 bytes
      Jul 25 09:43:44 coffee ftpd[87043]: get /public_html/devel/com/sms.html = 1754 bytes
      Jul 25 09:43:44 coffee ftpd[87043]: get /public_html/devel/com/smsok.html = 1109 bytes
      Jul 25 09:43:45 coffee ftpd[87043]: get /public_html/devel/com_memok.html = 8255 bytes
      Jul 25 09:43:45 coffee ftpd[87043]: get /public_html/devel/com/memok.html = 1656 bytes
      
     


    3. 참고할만한 자료

    * FreeBSD ftpd manpage
      http://nixdoc.net/man-pages/FreeBSD/man8/ftpd.8.html

    * FreeBSD에서 Anonymous FTP server
      http://www.freebsddiary.org/ftp-anonymous.php

    * vsftpd 설치와 운영 (한글로그 패치 포함, 글 좋은진호)
      http://coffeenix.net/board_view.php?bd_code=89

    * ProFTPD 홈
      http://www.proftpd.org/

    * vsftpd 홈
      http://vsftpd.beasts.org/
      커피닉스 카페 최근 글
    [08/07] купить аккаунт orig
    [08/07] ориджин аккаунты с
    [08/07] Игровые автоматы
    [08/05] ничего особенного
    [08/04] Супер давно искал
    [10/20] Cross Compiler 깔
    [07/14] SSL АО
    [04/26] Re: 도스화면 원격조종 여부
    [04/25] 도스화면 원격조종 여부
    [10/30] Cshell에서 난수 설정
    [10/23] 공항철도주식회사 SE 구인 件
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~