# This is the ProFTPD configuration file
#
# See: http://www.proftpd.org/docs/directives/linked/by-name.html
# (http://www.proftpd.org/docs/howto/Tracing.html)
#TraceLog                       /var/log/proftpd/trace.log
#Trace                          DEFAULT:0
ServerName                      "ProFTP"
ServerIdent                     on "FTP Server ready."
ServerAdmin                     root@localhost
DefaultServer                   on
##########################################################
MultilineRFC2228                on
ShowSymlinks                    on
RequireValidShell               off
TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200
Port                            21
PassivePorts                    40001 40002
MaxClientsPerHost               5
MaxLoginAttempts                5
MaxClients                      50 "Too many connections"
TransferLog                     /var/log/xferlog
UseEncoding                     utf8 cp949
TimesGMT                        off
SetEnv                          TZ "Asia/Seoul"
AllowOverwrite                  on
#########################################################
DefaultRoot                     ~ !root
AuthPAMConfig                   proftpd
AuthOrder                       mod_auth_pam.c* mod_auth_unix.c
#PersistentPasswd               off
UseReverseDNS                   off
User                            nobody
Group                           nobody
MaxInstances                    50
UseSendfile                     off
LogFormat                       default "%h %l %u %t \"%r\" %s %b"
LogFormat                       auth    "%v [%P] %h %t \"%r\" %s"
#LoadModule mod_sql.c
#LoadModule mod_sql_passwd.c
#LoadModule mod_sql_mysql.c
#LoadModule mod_sql_postgres.c
#LoadModule mod_quotatab.c
#LoadModule mod_quotatab_file.c
#LoadModule mod_quotatab_sql.c
#LoadModule mod_ldap.c
#LoadModule mod_quotatab_ldap.c
#LoadModule mod_radius.c
#LoadModule mod_quotatab_radius.c
#LoadModule mod_copy.c
#LoadModule mod_deflate.c
#LoadModule mod_exec.c
#LoadModule mod_facl.c
#LoadModule mod_geoip.c
#LoadModule mod_ifversion.c
#LoadModule mod_load.c
#LoadModule mod_ratio.c
#LoadModule mod_rewrite.c
#LoadModule mod_sftp.c
#LoadModule mod_sftp_pam.c
#LoadModule mod_sftp_sql.c
#LoadModule mod_shaper.c
#LoadModule mod_site_misc.c
#LoadModule mod_tls_shmcache.c
#LoadModule mod_tls_memcache.c
#LoadModule mod_wrap.c
#LoadModule mod_wrap2.c
#LoadModule mod_wrap2_file.c
#LoadModule mod_wrap2_sql.c
LoadModule mod_vroot.c
#LoadModule mod_ifsession.c
LoadModule mod_ctrls_admin.c
ModuleControlsACLs              insmod,rmmod allow user root
ModuleControlsACLs              lsmod allow user *
# Enable basic controls via ftpdctl
ControlsEngine                  on
ControlsACLs                    all allow user root
ControlsSocketACL               allow user *
ControlsLog                     /var/log/proftpd/controls.log
# Enable admin controls via ftpdctl
<IfModule mod_ctrls_admin.c>
  AdminControlsEngine           on
  AdminControlsACLs             all allow user root
</IfModule>
# Enable mod_vroot by default for better compatibility with PAM
<IfModule mod_vroot.c>
  VRootEngine                   on
</IfModule>
# TLS (http://www.castaglia.org/proftpd/modules/mod_tls.html)
#<IfDefine TLS>
  TLSEngine                     on
  TLSRequired                   off
  TLSRSACertificateFile         /etc/ssl/private/proftpd.pem
  TLSRSACertificateKeyFile      /etc/ssl/private/proftpd.pem
  TLSProtocol                   SSLv23
  TLSCipherSuite                ALL:!ADH:!DES
  TLSOptions                    NoCertRequest
  TLSVerifyClient               off
  TLSRenegotiate                ctrl 3600 data 512000 required off timeout 300
#  TLSLog                       /var/log/proftpd/tls.log
  <IfModule mod_tls_shmcache.c>
    TLSSessionCache             shm:/file=/var/run/proftpd/sesscache
  </IfModule>
#</IfDefine>
# Dynamic ban lists (http://www.proftpd.org/docs/contrib/mod_ban.html)
<IfDefine DYNAMIC_BAN_LISTS>
  LoadModule                    mod_ban.c
  BanEngine                     on
  BanLog                        /var/log/proftpd/ban.log
  BanTable                      /var/run/proftpd/ban.tab
  BanOnEvent                    MaxLoginAttempts 2/00:10:00 01:00:00
  BanMessage                    "Host %a has been banned"
  BanControlsACLs               all allow user ftpadm
</IfDefine>
# Set networking-specific "Quality of Service" (QoS) bits on the packets used
<IfDefine QOS>
  LoadModule                    mod_qos.c
  QoSOptions                    dataqos throughput ctrlqos lowdelay
  #QoSOptions                   dataqos CS2 ctrlqos AF41
</IfDefine>
# Global Config - config common to Server Config and all virtual hosts
<Global>
  Umask                         022
  AllowOverwrite                yes
  <Limit ALL SITE_CHMOD>
    AllowAll
  </Limit>
</Global>
# A basic anonymous configuration, with an upload directory
#<IfDefine ANONYMOUS_FTP>
#  <Anonymous ~ftp>
#    User                        ftp
#    Group                       ftp
#    AccessGrantMsg              "Anonymous login ok, restrictions apply."
#    UserAlias                   anonymous ftp
#    MaxClients                  10 "Sorry, max %m users -- try again later"
#    #DefaultChdir               /pub
#    DisplayLogin                /welcome.msg
#    DisplayChdir                .message
#    DisplayReadme               README*
#    DirFakeUser                 on ftp
#    DirFakeGroup                on ftp
#    <Limit WRITE SITE_CHMOD>
#      DenyAll
#    </Limit>
#    <IfModule mod_vroot.c>
#      <Directory /uploads/*>
#        AllowOverwrite          no
#        <Limit READ>
#          DenyAll
#        </Limit>
#        <Limit STOR>
#          AllowAll
#        </Limit>
#      </Directory>
#    </IfModule>
#    <IfModule !mod_vroot.c>
#      <Directory uploads/*>
#        AllowOverwrite          no
#        <Limit READ>
#          DenyAll
#        </Limit>
#        <Limit STOR>
#          AllowAll
#        </Limit>
#      </Directory>
#    </IfModule>
#    WtmpLog                     off
#    ExtendedLog                 /var/log/proftpd/access.log WRITE,READ default
#    ExtendedLog                 /var/log/proftpd/auth.log AUTH auth
#  </Anonymous>
#</IfDefine>