본문으로 건너뛰기

vsftpd.conf 옵션 설명은 어떻게 되나요?

💡 요약 정리

  • vsftpd.conf는 vsftpd(FTP 서버)의 설정 파일입니다.
  • FTP 접속 방식, 사용자 접근권한, 로그 작성 방법 등을 설정할 수 있습니다.
  • YES 또는 NO 형식의 설정값이나 포트 번호 등으로 세밀한 제어가 가능합니다.
  • 공개용 또는 개인용 FTP 서버 설정에 따라 주요 옵션이 달라집니다.
  • 아래에서 항목별 의미와 설정 예시를 함께 확인하세요.

1. 접속 모드 및 포트 설정 옵션

  • listen → standalone으로 운영할 때 설정합니다. listen=YES

  • connect_from_port_20 → standalone 모드에서 FTP 포트 변경을 원할 때 설정합니다. connect_from_port_20=YES

  • listen_port → 21번 포트 이외의 다른 포트를 사용할 경우, 사용할 포트를 지정합니다. listen_port=2211


2. 사용자 접속 및 권한 설정

  • anonymous_enable → anonymous 사용자의 접속 허용 여부를 정의합니다. 기본값은 YES이며, 공개용 FTP 서버로 사용하지 않으면 NO로 변경합니다. anonymous_enable=NO

  • local_enable → 로컬 계정 사용자의 FTP 접속 허용 여부를 정의합니다. 서버에 존재하는 일반 계정으로 FTP 접속을 할 경우 YES로 설정합니다. local_enable=YES

  • write_enable → 쓰기 권한 허용 여부를 정의합니다. NO로 설정하면 파일 업로드가 불가능합니다. write_enable=YES

  • local_umask → 로컬 계정 사용자용 umask를 정의합니다. (기본값: 077) local_umask=022


3. Anonymous 사용자 관련 옵션

  • anon_upload_enable → anonymous 사용자가 파일 업로드할 수 있는 권한을 설정합니다. 기본값은 NO이며, anonymous_enable=YES일 때만 적용됩니다.

  • anon_mkdir_write_enable → anonymous 사용자가 디렉토리를 생성할 수 있는 권한을 설정합니다. 기본값은 NO이며, anonymous_enable=YES일 때만 적용됩니다. anon_mkdir_write_enable=YES

  • chown_upload → anonymous 사용자가 업로드한 파일의 소유권을 자동 변경하도록 설정합니다. chown_upload=YES

  • chown_username → anonymous 사용자가 업로드한 파일 소유권을 변경할 유저명을 설정합니다. chown_username=jook


4. 로그 기록 관련 옵션

  • xferlog_enable → 파일 전송 로그를 남길지 여부를 정의합니다. xferlog_enable=YES

  • xferlog_file → 파일 전송 로그를 기록할 파일명을 정의합니다. xferlog_file=/var/log/vsftpd.log

  • xferlog_std_format → xferlog 형식으로 FTP 로그를 남길지 설정합니다. 표준 포맷은 디렉토리 생성 등의 로그를 기록하지 않기 때문에, 보다 상세한 로그를 위해 NO로 설정하는 것을 권장합니다. xferlog_std_format=NO


5. 경로 접근 및 사용자 격리

  • chroot_local_user → 홈 디렉토리를 벗어나지 못하도록 제한합니다. FTP 접속 후 시스템 파일 접근을 방지합니다. chroot_local_user=YES

  • chroot_list_enable → 특정 계정을 제외하고 다른 모두를 chroot에 적용하고 싶을 때 설정합니다. chroot_list_enable=YES

  • chroot_list_file → chroot_list_enable=YES일 때 계정 리스트를 저장할 파일명을 설정합니다. 이 파일 내 계정만 상위 디렉토리에 접근할 수 있습니다. chroot_list_file=/etc/vsftpd.chroot_list


6. 메시지 및 안내 설정

  • ftpd_banner → FTP 서버에 접속했을 때 보여주는 로그인 메시지를 설정합니다. (기본값은 vsftp 버전 출력) ftpd_banner=Welcome to FTP service.

  • dirmessage_enable → 디렉토리 진입 시 보여줄 메시지를 저장한 파일을 사용할 수 있도록 설정합니다. dirmessage_enable=YES

  • message_file → 디렉토리에 진입할 때 보여줄 메시지를 저장할 파일명을 지정합니다. message_file=.message


7. PAM 및 세션 로그 설정

  • pam_service_name → PAM 파일명을 정의하는 옵션입니다. 설치 시, /etc/pam.d/vsftpd 명으로 복사됩니다. pam_service_name=vsftpd

  • session_support → wtmp에 로그를 남기도록 설정합니다. last 명령어로 접속 여부를 확인할 수 있으므로 YES 설정을 권장합니다. session_support=YES


8. 전송 속도 및 용량 제한

  • anon_max_rate → anonymous 사용자의 전송 속도를 지정합니다. 0은 무제한이며 단위는 byte입니다. anon_max_rate=100000

  • local_max_rate → local 계정 사용자의 전송량을 지정합니다. 0은 무제한이며 단위는 byte입니다. local_max_rate=200000

  • trans_chunk_size → byte 단위로 파일을 나누어 전송 및 저장하도록 설정합니다. 0이면 자동 지정됩니다. trans_chunk_size=0


9. 접속자 수 및 시간 제한

  • max_clients → 최대 접속자 수를 설정합니다. max_clients=10

  • max_per_ip → 하나의 IP에서 최대 접속 가능한 수를 설정합니다. max_per_ip=3

  • idle_session_timeout → 클라이언트에서 아무 명령이 없을 경우 세션을 끊기 전까지의 대기 시간(기본값: 300초)을 설정합니다. idle_session_timeout=600

  • data_connection_timeout → 데이터 연결을 끊기 전까지의 대기 시간을 설정합니다. (기본값: 60초) data_connection_timeout=120


10. 기타 설정 항목

  • ls_recurse_enable → 디렉토리 내용을 출력할 때 캐시를 사용할지 여부를 정의합니다. ls_recurse_enable=YES

  • ascii_upload_enable → ASCII 파일 업로드 가능 여부를 설정합니다. ascii_upload_enable=YES

  • ascii_download_enable → ASCII 파일 다운로드 가능 여부를 설정합니다. ascii_download_enable=YES