######################################################################### # Sample configuration file for the FTP protocol module. ######################################################################### #@@LoadFtpModules@@ ######################################################################### # Define the formats for the command log and transfer log ######################################################################### # # # The command log has the format "user [x.x.x.x] command" # For example: "anonymous [127.0.0.1] CWD /incoming" # LogFormat "%u [%a] %r" command_log_fmt # # The transfer log # LogFormat "%{%b %e %H:%M:%S %Y}t %T %a %B %U %M %F %d %W %u %S %Z %Y" transfer_log_fmt # 1 2 3 4 5 6 7 8 9 10 11 12 13 # # What this actually means: # 1 current time in the form DDD MMM dd hh:mm:ss YYYY # 2 transfer time in seconds (could do milliseconds, but wu-ftp uses seconds) # 3 remote host name # 4 file size in bytes # 5 name of file # 6 transfer type (a=ascii b=binary) # 7 special action flags (concatenated as needed) # C - file was compressed # U - file was uncompressed # T - file was tarred # _ - no action taken # 8 file was sent to user (o=outgoing i=incoming) # 9 accessed anonymously (r=real a=anonymous, g=guest) # 10 username # 11 service name ('ftp', other) # 12 authentication method (bitmask) (0=none 1=rfc931 auth) # 13 authenticated user id (if available, '*' otherwise) # ######################################################################### # Basic setup ######################################################################### # Tell Apache which port it should listen to. Listen @@FTPPort@@ ftp AcceptFilter ftp none # On Apache 2.0, comment out the above, and uncomment the line below, # The Listen's protocol argument and AcceptFilter directive are both # new to Apache 2.2 # #Listen @@FTPPort@@ # Uncomment these lines for SSL support. Also see # directives in the VirtualHost context. # # SSLPassPhraseDialog builtin # SSLSessionCache "dbm:@exp_runtimedir@/ssl_scache" # SSLSessionCache "shmcb:@exp_runtimedir@/ssl_scache(512000)" # SSLSessionCacheTimeout 300 # SSLMutex "file:@exp_runtimedir@/ssl_mutex" # Setup the FTP virtualhost # Setup the ServerAdmin and DocumentRoot ServerAdmin you@ftp.example.com DocumentRoot "@exp_ftpdocsdir@" # Tell Apache we want to serve FTP on this VirtualHost FTP On ######################################################################### # Access Control ######################################################################### # For the purposes of logging in, authentication is check within Apache # on the root of the file system. This means that if you want to restrict # logins to the FTP server, you will need to configure Authentication for # . See below for examples. # File based authentication. # Must use htpasswd to create the authentication file. # # # AuthType basic # AuthUserFile "@exp_sysconfdir@/htpasswd.users" # AuthName "FTP Authentication" # require valid-user # # # Anonymous ftp access. # # # AuthName "Use 'anonymous' and email address for guest entry" # AuthType basic # # Anonymous anonymous guest # Anonymous_MustGiveEmail on # Anonymous_LogEmail on # # # More anonymous options that are not necessarily needed. # Anonymous_VerifyEmail off # Anonymous_NoUserId off # Anonymous_Authoritative off # # # Require that the user is valid # require valid-user # # # # Deny all users from a protected directory. # # # deny from all # ######################################################################### # Enabling write commands. ######################################################################### # # Only allow write access to /incoming # # # Order deny,allow # Deny from all # # # # # # Order deny,allow # Allow from all # # # ######################################################################### # Basic FTP directives ########################################################################## # The FTPUmask directive tells the server what permissions to give a # file when it is created. The default is 0022. # FTPUmask 022 # The FTPTimeoutLogin directive sets the amount of time a user has # to send a username to the server. If the username is not sent in # this amount of time, the user is disconnected. # FTPTimeoutLogin 120 # The FTPTimeoutIdle directive sets the amount of time allowed between # commands sent by the client. If no commands are sent in this amount # of time, the user is disconnected. # FTPTimeoutIdle 600 # The FTPTimeoutData directive sets the timeout on data transfers. If # a no data is sent to the client in this amount of time, the data # connection is closed. # FTPTimeoutData 300 # The maximum number of login attempts before the connection is closed. # FTPMaxLoginAttempts 3 ######################################################################### # Logging ######################################################################### # Setup the error_log for this virtualhost. ErrorLog "@rel_logfiledir@/ftp_error_log" # Log the commands of users logged in anonymously. # SetEnvIf remote_user anonymous do_command_log # CustomLog "@rel_logfiledir@/ftp_command_log" command_log_fmt env=do_command_log # # Log the command of all users # CustomLog "@rel_logfiledir@/ftp_command_log" command_log_fmt # The transfer log. # # CustomLog "@rel_logfiledir@/ftp_transfer_log" transfer_log_fmt env=do_transfer_log ######################################################################### # SSL Support ######################################################################### # # Adding SSL support to the FTP module is similar to adding support for # SSL to the HTTP module. # SSLEngine on # SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL # SSLCertificateFile "@exp_sysconfdir@/server.crt" # SSLCertificateKeyFile "@exp_sysconfdir@/server.key" # # Should clients be forced to connect securely? # FTPImplicitSSL On