Correct PPTP server firewall rules chain.
[tomato/davidwu.git] / release / src / router / vsftpd / vsftpd.conf.5
blobfcc6022b5f5a870cfe9cb5b1cfdeecfd31422338
1 .TH VSFTPD.CONF 5
2 .SH NAME
3 vsftpd.conf \- config file for vsftpd
4 .SH DESCRIPTION
5 vsftpd.conf may be used to control various aspects of vsftpd's behaviour. By
6 default, vsftpd looks for this file at the location
7 .BR /etc/vsftpd.conf .
8 However, you may override this by specifying a command line argument to
9 vsftpd. The command line argument is the pathname of the configuration file
10 for vsftpd. This behaviour is useful because you may wish to use an advanced
11 inetd such as
12 .BR xinetd
13 to launch vsftpd with different configuration files on a per virtual host
14 basis.
16 .SH FORMAT
17 The format of vsftpd.conf is very simple. Each line is either a comment or
18 a directive. Comment lines start with a # and are ignored. A directive line
19 has the format:
21 option=value
23 It is important to note that it is an error to put any space between the
24 option, = and value.
26 Each setting has a compiled in default which may be modified in the
27 configuration file.
29 .SH BOOLEAN OPTIONS
30 Below is a list of boolean options. The value for a boolean option may be set
32 .BR YES
34 .BR NO .
36 .TP
37 .B allow_anon_ssl
38 Only applies if
39 .BR ssl_enable
40 is active. If set to YES, anonymous users will be allowed to use secured SSL
41 connections.
43 Default: NO
44 .TP
45 .B anon_mkdir_write_enable
46 If set to YES, anonymous users will be permitted to create new directories
47 under certain conditions. For this to work, the option
48 .BR write_enable
49 must be activated, and the anonymous ftp user must have write permission on
50 the parent directory.
52 Default: NO
53 .TP
54 .B anon_other_write_enable
55 If set to YES, anonymous users will be permitted to perform write operations
56 other than upload and create directory, such as deletion and renaming. This
57 is generally not recommended but included for completeness.
59 Default: NO
60 .TP
61 .B anon_upload_enable
62 If set to YES, anonymous users will be permitted to upload files under certain
63 conditions. For this to work, the option
64 .BR write_enable
65 must be activated, and the anonymous ftp user must have write permission on
66 desired upload locations. This setting is also required for virtual users to
67 upload; by default, virtual users are treated with anonymous (i.e. maximally
68 restricted) privilege.
70 Default: NO
71 .TP
72 .B anon_world_readable_only
73 When enabled, anonymous users will only be allowed to download files which
74 are world readable. This is recognising that the ftp user may own files,
75 especially in the presence of uploads.
77 Default: YES
78 .TP
79 .B anonymous_enable
80 Controls whether anonymous logins are permitted or not. If enabled,
81 both the usernames
82 .BR ftp
83 and
84 .BR anonymous
85 are recognised as anonymous logins.
87 Default: YES
88 .TP
89 .B ascii_download_enable
90 When enabled, ASCII mode data transfers will be honoured on downloads.
92 Default: NO
93 .TP
94 .B ascii_upload_enable
95 When enabled, ASCII mode data transfers will be honoured on uploads.
97 Default: NO
98 .TP
99 .B async_abor_enable
100 When enabled, a special FTP command known as "async ABOR" will be enabled.
101 Only ill advised FTP clients will use this feature. Additionally, this feature
102 is awkward to handle, so it is disabled by default. Unfortunately, some FTP
103 clients will hang when cancelling a transfer unless this feature is available,
104 so you may wish to enable it.
106 Default: NO
108 .B background
109 When enabled, and vsftpd is started in "listen" mode, vsftpd will background
110 the listener process. i.e. control will immediately be returned to the shell
111 which launched vsftpd.
113 Default: NO
115 .B check_shell
116 Note! This option only has an effect for non-PAM builds of vsftpd. If disabled,
117 vsftpd will not check /etc/shells for a valid user shell for local logins.
119 Default: YES
121 .B chmod_enable
122 When enabled, allows use of the SITE CHMOD command. NOTE! This only applies
123 to local users. Anonymous users never get to use SITE CHMOD.
125 Default: YES
127 .B chown_uploads
128 If enabled, all anonymously uploaded files will have the ownership changed
129 to the user specified in the setting
130 .BR chown_username .
131 This is useful from an administrative, and perhaps security, standpoint.
133 Default: NO
135 .B chroot_list_enable
136 If activated, you may provide a list of local users who are placed in a
137 chroot() jail in their home directory upon login. The meaning is slightly
138 different if chroot_local_user is set to YES. In this case, the list becomes
139 a list of users which are NOT to be placed in a chroot() jail.
140 By default, the file containing this list is
141 /etc/vsftpd.chroot_list, but you may override this with the
142 .BR chroot_list_file
143 setting.
145 Default: NO
147 .B chroot_local_user
148 If set to YES, local users will be (by default) placed in a chroot() jail in
149 their home directory after login.
150 .BR Warning:
151 This option has security implications, especially if the users have upload
152 permission, or shell access. Only enable if you know what you are doing.
153 Note that these security implications are not vsftpd specific. They apply to
154 all FTP daemons which offer to put local users in chroot() jails.
156 Default: NO
158 .B connect_from_port_20
159 This controls whether PORT style data connections use port 20 (ftp-data) on
160 the server machine. For security reasons, some clients may insist that this
161 is the case. Conversely, disabling this option enables vsftpd to run with
162 slightly less privilege.
164 Default: NO (but the sample config file enables it)
166 .B debug_ssl
167 If true, OpenSSL connection diagnostics are dumped to the vsftpd log file.
168 (Added in v2.0.6).
170 Default: NO
172 .B delete_failed_uploads
173 If true, any failed upload files are deleted.  (Added in v2.0.7).
175 Default: NO
177 .B deny_email_enable
178 If activated, you may provide a list of anonymous password e-mail responses
179 which cause login to be denied. By default, the file containing this list is
180 /etc/vsftpd.banned_emails, but you may override this with the
181 .BR banned_email_file
182 setting.
184 Default: NO
186 .B dirlist_enable
187 If set to NO, all directory list commands will give permission denied.
189 Default: YES
191 .B dirmessage_enable
192 If enabled, users of the FTP server can be shown messages when they first
193 enter a new directory. By default, a directory is scanned for the
194 file .message, but that may be overridden with the configuration setting
195 .BR message_file .
197 Default: NO (but the sample config file enables it)
199 .B download_enable
200 If set to NO, all download requests will give permission denied.
202 Default: YES
204 .B dual_log_enable
205 If enabled, two log files are generated in parallel, going by default to
206 .BR /var/log/xferlog
208 .BR /var/log/vsftpd.log .
209 The former is a wu-ftpd style transfer log, parseable by standard tools. The
210 latter is vsftpd's own style log.
212 Default: NO
214 .B force_dot_files
215 If activated, files and directories starting with . will be shown in directory
216 listings even if the "a" flag was not used by the client. This override
217 excludes the "." and ".." entries.
219 Default: NO
221 .B force_anon_data_ssl
222 Only applies if
223 .BR ssl_enable
224 is activated. If activated, all anonymous logins are forced to use a secure
225 SSL connection in order to send and receive data on data connections.
227 Default: NO
229 .B force_anon_logins_ssl
230 Only applies if
231 .BR ssl_enable
232 is activated. If activated, all anonymous logins are forced to use a secure
233 SSL connection in order to send the password.
235 Default: NO
237 .B force_local_data_ssl
238 Only applies if
239 .BR ssl_enable
240 is activated. If activated, all non-anonymous logins are forced to use a secure
241 SSL connection in order to send and receive data on data connections.
243 Default: YES
245 .B force_local_logins_ssl
246 Only applies if
247 .BR ssl_enable
248 is activated. If activated, all non-anonymous logins are forced to use a secure
249 SSL connection in order to send the password.
251 Default: YES
253 .B guest_enable
254 If enabled, all non-anonymous logins are classed as "guest" logins. A guest
255 login is remapped to the user specified in the
256 .BR guest_username
257 setting.
259 Default: NO
261 .B hide_ids
262 If enabled, all user and group information in directory listings will be
263 displayed as "ftp".
265 Default: NO
267 .B implicit_ssl
268 If enabled, an SSL handshake is the first thing expect on all connections
269 (the FTPS protocol). To support explicit SSL and/or plain text too, a
270 separate vsftpd listener process should be run.
272 Default: NO
274 .B listen
275 If enabled, vsftpd will run in standalone mode. This means that vsftpd must
276 not be run from an inetd of some kind. Instead, the vsftpd executable is
277 run once directly. vsftpd itself will then take care of listening for and
278 handling incoming connections.
280 Default: NO
282 .B listen_ipv6
283 Like the listen parameter, except vsftpd will listen on an IPv6 socket instead
284 of an IPv4 one. This parameter and the listen parameter are mutually
285 exclusive.
287 Default: NO
289 .B local_enable
290 Controls whether local logins are permitted or not. If enabled, normal
291 user accounts in /etc/passwd (or wherever your PAM config references) may be
292 used to log in. This must be enable for any non-anonymous login to work,
293 including virtual users.
295 Default: NO
297 .B lock_upload_files
298 When enabled, all uploads proceed with a write lock on the upload file. All
299 downloads proceed with a shared read lock on the download file. WARNING!
300 Before enabling this, be aware that malicious readers could starve a writer
301 wanting to e.g. append a file.
303 Default: YES
305 .B log_ftp_protocol
306 When enabled, all FTP requests and responses are logged, providing the option
307 xferlog_std_format is not enabled. Useful for debugging.
309 Default: NO
311 .B ls_recurse_enable
312 When enabled, this setting will allow the use of "ls -R". This is a minor
313 security risk, because a ls -R at the top level of a large site may consume
314 a lot of resources.
316 Default: NO
318 .B mdtm_write
319 When enabled, this setting will allow MDTM to set file modification times
320 (subject to the usual access checks).
322 Default: YES
324 .B no_anon_password
325 When enabled, this prevents vsftpd from asking for an anonymous password -
326 the anonymous user will log straight in.
328 Default: NO
330 .B no_log_lock
331 When enabled, this prevents vsftpd from taking a file lock when writing to log
332 files. This option should generally not be enabled. It exists to workaround
333 operating system bugs such as the Solaris / Veritas filesystem combination
334 which has been observed to sometimes exhibit hangs trying to lock log files.
336 Default: NO
338 .B one_process_model
339 If you have a Linux 2.4 kernel, it is possible to use a different security
340 model which only uses one process per connection. It is a less pure security
341 model, but gains you performance. You really don't want to enable this unless
342 you know what you are doing, and your site supports huge numbers of
343 simultaneously connected users.
345 Default: NO
347 .B passwd_chroot_enable
348 If enabled, along with
349 .BR chroot_local_user
350 , then a chroot() jail location may be specified on a per-user basis. Each
351 user's jail is derived from their home directory string in /etc/passwd. The
352 occurrence of /./ in the home directory string denotes that the jail is at that
353 particular location in the path.
355 Default: NO
357 .B pasv_addr_resolve
358 Set to YES if you want to use a hostname (as opposed to IP address) in the
359 .BR pasv_address
360 option.
362 Default: NO
364 .B pasv_enable
365 Set to NO if you want to disallow the PASV method of obtaining a data
366 connection.
368 Default: YES
370 .B pasv_promiscuous
371 Set to YES if you want to disable the PASV security check that ensures the
372 data connection originates from the same IP address as the control connection.
373 Only enable if you know what you are doing! The only legitimate use for this
374 is in some form of secure tunnelling scheme, or perhaps to facilitate FXP
375 support.
377 Default: NO
379 .B port_enable
380 Set to NO if you want to disallow the PORT method of obtaining a data
381 connection.
383 Default: YES
385 .B port_promiscuous
386 Set to YES if you want to disable the PORT security check that ensures that
387 outgoing data connections can only connect to the client. Only enable if
388 you know what you are doing!
390 Default: NO
392 .B require_cert
393 If set to yes, all SSL client connections are required to present a client
394 certificate. The degree of validation applied to this certificate is
395 controlled by
396 .BR validate_cert
397 (Added in v2.0.6).
399 Default: NO
401 .B require_ssl_reuse
402 If set to yes, all SSL data connections are required to exhibit SSL session
403 reuse (which proves that they know the same master secret as the control
404 channel). Although this is a secure default, it may break many FTP clients,
405 so you may want to disable it. For a discussion of the consequences, see
406 http://scarybeastsecurity.blogspot.com/2009/02/vsftpd-210-released.html
407 (Added in v2.1.0).
409 Default: YES
411 .B run_as_launching_user
412 Set to YES if you want vsftpd to run as the user which launched vsftpd. This is
413 useful where root access is not available. MASSIVE WARNING! Do NOT enable this
414 option unless you totally know what you are doing, as naive use of this option
415 can create massive security problems. Specifically, vsftpd does not / cannot
416 use chroot technology to restrict file access when this option is set (even if
417 launched by root). A poor substitute could be to use a
418 .BR deny_file
419 setting such as {/*,*..*}, but the reliability of this cannot compare to
420 chroot, and should not be relied on.
421 If using this option, many restrictions on other options
422 apply. For example, options requiring privilege such as non-anonymous logins,
423 upload ownership changing, connecting from port 20 and listen ports less than
424 1024 are not expected to work. Other options may be impacted.
426 Default: NO
428 .B secure_email_list_enable
429 Set to YES if you want only a specified list of e-mail passwords for anonymous
430 logins to be accepted. This is useful as a low-hassle way of restricting
431 access to low-security content without needing virtual users. When enabled,
432 anonymous logins are prevented unless the password provided is listed in the
433 file specified by the
434 .BR email_password_file
435 setting. The file format is one password per line, no extra whitespace. The
436 default filename is /etc/vsftpd.email_passwords.
438 Default: NO
440 .B session_support
441 This controls whether vsftpd attempts to maintain sessions for logins. If
442 vsftpd is maintaining sessions, it will try and update utmp and wtmp. It
443 will also open a pam_session if using PAM to authenticate, and only close
444 this upon logout. You may wish to disable this if you do not need session
445 logging, and you wish to give vsftpd more opportunity to run with less
446 processes and / or less privilege. NOTE - utmp and wtmp support is only
447 provided with PAM enabled builds.
449 Default: NO
451 .B setproctitle_enable
452 If enabled, vsftpd will try and show session status information in the system
453 process listing. In other words, the reported name of the process will change
454 to reflect what a vsftpd session is doing (idle, downloading etc). You
455 probably want to leave this off for security purposes.
457 Default: NO
459 .B ssl_enable
460 If enabled, and vsftpd was compiled against OpenSSL, vsftpd will support secure
461 connections via SSL. This applies to the control connection (including login)
462 and also data connections. You'll need a client with SSL support too. NOTE!!
463 Beware enabling this option. Only enable it if you need it. vsftpd can make no
464 guarantees about the security of the OpenSSL libraries. By enabling this
465 option, you are declaring that you trust the security of your installed
466 OpenSSL library.
468 Default: NO
470 .B ssl_request_cert
471 If enabled, vsftpd will request (but not necessarily require; see
472 .BR require_cert) a certificate on incoming SSL connections. Normally this
473 should not cause any trouble at all, but IBM zOS seems to have issues.
474 (New in v2.0.7).
476 Default: YES
478 .B ssl_sslv2
479 Only applies if
480 .BR ssl_enable
481 is activated. If enabled, this option will permit SSL v2 protocol connections.
482 TLS v1 connections are preferred.
484 Default: NO
486 .B ssl_sslv3
487 Only applies if
488 .BR ssl_enable
489 is activated. If enabled, this option will permit SSL v3 protocol connections.
490 TLS v1 connections are preferred.
492 Default: NO
494 .B ssl_tlsv1
495 Only applies if
496 .BR ssl_enable
497 is activated. If enabled, this option will permit TLS v1 protocol connections.
498 TLS v1 connections are preferred.
500 Default: YES
502 .B strict_ssl_read_eof
503 If enabled, SSL data uploads are required to terminate via SSL, not an
504 EOF on the socket. This option is required to be sure that an attacker did
505 not terminate an upload prematurely with a faked TCP FIN. Unfortunately, it
506 is not enabled by default because so few clients get it right. (New in v2.0.7).
508 Default: NO
510 .B strict_ssl_write_shutdown
511 If enabled, SSL data downloads are required to terminate via SSL, not an
512 EOF on the socket. This is off by default as I was unable to find a single
513 FTP client that does this. It is minor. All it affects is our ability to tell
514 whether the client confirmed full receipt of the file. Even without this option,
515 the client is able to check the integrity of the download. (New in v2.0.7).
517 Default: NO
519 .B syslog_enable
520 If enabled, then any log output which would have gone to /var/log/vsftpd.log
521 goes to the system log instead. Logging is done under the FTPD facility.
523 Default: NO
525 .B tcp_wrappers
526 If enabled, and vsftpd was compiled with tcp_wrappers support, incoming
527 connections will be fed through tcp_wrappers access control. Furthermore,
528 there is a mechanism for per-IP based configuration. If tcp_wrappers sets
529 the VSFTPD_LOAD_CONF environment variable, then the vsftpd session will try
530 and load the vsftpd configuration file specified in this variable. 
532 Default: NO
534 .B text_userdb_names
535 By default, numeric IDs are shown in the user and group fields of directory
536 listings. You can get textual names by enabling this parameter. It is off
537 by default for performance reasons.
539 Default: NO
541 .B tilde_user_enable
542 If enabled, vsftpd will try and resolve pathnames such as ~chris/pics, i.e. a
543 tilde followed by a username. Note that vsftpd will always resolve the
544 pathnames ~ and ~/something (in this case the ~ resolves to the initial
545 login directory). Note that ~user paths will only resolve if the file
546 .BR /etc/passwd
547 may be found within the _current_ chroot() jail.
549 Default: NO
551 .B use_localtime
552 If enabled, vsftpd will display directory listings with the time in your
553 local time zone. The default is to display GMT. The times returned by the
554 MDTM FTP command are also affected by this option.
556 Default: NO
558 .B use_sendfile
559 An internal setting used for testing the relative benefit of using the
560 sendfile() system call on your platform.
562 Default: YES
564 .B userlist_deny
565 This option is examined if
566 .B userlist_enable
567 is activated. If you set this setting to NO, then users will be denied login
568 unless they are explicitly listed in the file specified by
569 .BR userlist_file .
570 When login is denied, the denial is issued before the user is asked for a
571 password.
573 Default: YES
575 .B userlist_enable
576 If enabled, vsftpd will load a list of usernames, from the filename given by
577 .BR userlist_file .
578 If a user tries to log in using a name in this file, they will be denied
579 before they are asked for a password. This may be useful in preventing
580 cleartext passwords being transmitted. See also
581 .BR userlist_deny .
583 Default: NO
585 .B validate_cert
586 If set to yes, all SSL client certificates received must validate OK.
587 Self-signed certs do not constitute OK validation. (New in v2.0.6).
589 Default: NO
591 .B virtual_use_local_privs
592 If enabled, virtual users will use the same privileges as local users. By
593 default, virtual users will use the same privileges as anonymous users, which
594 tends to be more restrictive (especially in terms of write access).
596 Default: NO
598 .B write_enable
599 This controls whether any FTP commands which change the filesystem are allowed
600 or not. These commands are: STOR, DELE, RNFR, RNTO, MKD, RMD, APPE and SITE.
602 Default: NO
604 .B xferlog_enable
605 If enabled, a log file will be maintained detailling uploads and downloads.
606 By default, this file will be placed at /var/log/vsftpd.log, but this location
607 may be overridden using the configuration setting
608 .BR vsftpd_log_file .
610 Default: NO (but the sample config file enables it)
612 .B xferlog_std_format
613 If enabled, the transfer log file will be written in standard xferlog format,
614 as used by wu-ftpd. This is useful because you can reuse existing transfer
615 statistics generators. The default format is more readable, however. The
616 default location for this style of log file is /var/log/xferlog, but you may
617 change it with the setting
618 .BR xferlog_file .
620 Default: NO
622 .SH NUMERIC OPTIONS
623 Below is a list of numeric options. A numeric option must be set to a non
624 negative integer. Octal numbers are supported, for convenience of the umask
625 options. To specify an octal number, use 0 as the first digit of the number.
628 .B accept_timeout
629 The timeout, in seconds, for a remote client to establish connection with
630 a PASV style data connection.
632 Default: 60
634 .B anon_max_rate
635 The maximum data transfer rate permitted, in bytes per second, for anonymous
636 clients.
638 Default: 0 (unlimited)
640 .B anon_umask
641 The value that the umask for file creation is set to for anonymous users. NOTE! If you want to specify octal values, remember the "0" prefix otherwise the
642 value will be treated as a base 10 integer!
644 Default: 077
646 .B chown_upload_mode
647 The file mode to force for chown()ed anonymous uploads. (Added in v2.0.6).
649 Default: 0600
651 .B connect_timeout
652 The timeout, in seconds, for a remote client to respond to our PORT style
653 data connection.
655 Default: 60
657 .B data_connection_timeout
658 The timeout, in seconds, which is roughly the maximum time we permit data
659 transfers to stall for with no progress. If the timeout triggers, the remote
660 client is kicked off.
662 Default: 300
664 .B delay_failed_login
665 The number of seconds to pause prior to reporting a failed login.
667 Default: 1
669 .B delay_successful_login
670 The number of seconds to pause prior to allowing a successful login.
672 Default: 0
674 .B file_open_mode
675 The permissions with which uploaded files are created. Umasks are applied
676 on top of this value. You may wish to change to 0777 if you want uploaded
677 files to be executable.
679 Default: 0666
681 .B ftp_data_port
682 The port from which PORT style connections originate (as long as the poorly
683 named
684 .BR connect_from_port_20
685 is enabled).
687 Default: 20
689 .B idle_session_timeout
690 The timeout, in seconds, which is the maximum time a remote client may spend
691 between FTP commands. If the timeout triggers, the remote client is kicked
692 off.
694 Default: 300
696 .B listen_port
697 If vsftpd is in standalone mode, this is the port it will listen on for
698 incoming FTP connections.
700 Default: 21
702 .B local_max_rate
703 The maximum data transfer rate permitted, in bytes per second, for local
704 authenticated users.
706 Default: 0 (unlimited)
708 .B local_umask
709 The value that the umask for file creation is set to for local users. NOTE! If
710 you want to specify octal values, remember the "0" prefix otherwise the value
711 will be treated as a base 10 integer!
713 Default: 077
715 .B max_clients
716 If vsftpd is in standalone mode, this is the maximum number of clients which
717 may be connected. Any additional clients connecting will get an error message.
719 Default: 0 (unlimited)
721 .B max_login_fails
722 After this many login failures, the session is killed.
724 Default: 3
726 .B max_per_ip
727 If vsftpd is in standalone mode, this is the maximum number of clients which
728 may be connected from the same source internet address. A client will get an
729 error message if they go over this limit.
731 Default: 0 (unlimited)
733 .B pasv_max_port
734 The maximum port to allocate for PASV style data connections. Can be used to
735 specify a narrow port range to assist firewalling.
737 Default: 0 (use any port)
739 .B pasv_min_port
740 The minimum port to allocate for PASV style data connections. Can be used to
741 specify a narrow port range to assist firewalling.
743 Default: 0 (use any port)
745 .B trans_chunk_size
746 You probably don't want to change this, but try setting it to something like
747 8192 for a much smoother bandwidth limiter.
749 Default: 0 (let vsftpd pick a sensible setting)
751 .SH STRING OPTIONS
752 Below is a list of string options.
755 .B anon_root
756 This option represents a directory which vsftpd will try to change into
757 after an anonymous login. Failure is silently ignored.
759 Default: (none)
761 .B banned_email_file
762 This option is the name of a file containing a list of anonymous e-mail
763 passwords which are not permitted. This file is consulted if the option
764 .BR deny_email_enable
765 is enabled.
767 Default: /etc/vsftpd.banned_emails
769 .B banner_file
770 This option is the name of a file containing text to display when someone
771 connects to the server. If set, it overrides the banner string provided by
773 .BR ftpd_banner
774 option.
776 Default: (none)
778 .B ca_certs_file
779 This option is the name of a file to load Certificate Authority certs from, for
780 the purpose of validating client certs. The loaded certs are also advertised
781 to the client, to cater for TLSv1.0 clients such as the z/OS FTP client.
782 Regrettably, the default SSL CA cert
783 paths are not used, because of vsftpd's use of restricted filesystem spaces
784 (chroot). (Added in v2.0.6).
786 Default: (none)
788 .B chown_username
789 This is the name of the user who is given ownership of anonymously uploaded
790 files. This option is only relevant if another option,
791 .BR chown_uploads ,
792 is set.
794 Default: root
796 .B chroot_list_file
797 The option is the name of a file containing a list of local users which
798 will be placed in a chroot() jail in their home directory. This option is
799 only relevant if the option
800 .BR chroot_list_enable
801 is enabled. If the option
802 .BR chroot_local_user
803 is enabled, then the list file becomes a list of users to NOT place in a
804 chroot() jail.
806 Default: /etc/vsftpd.chroot_list
808 .B cmds_allowed
809 This options specifies a comma separated list of allowed FTP commands (post
810 login. USER, PASS and QUIT and others are always allowed pre-login). Other
811 commands are rejected. This is a powerful method of really locking down an
812 FTP server. Example: cmds_allowed=PASV,RETR,QUIT
814 Default: (none)
816 .B cmds_denied
817 This options specifies a comma separated list of denied FTP commands (post
818 login. USER, PASS, QUIT and others are always allowed pre-login). If a command
819 appears on both this and
820 .BR cmds_allowed
821 then the denial takes precedence. (Added in v2.1.0).
823 Default: (none)
825 .B deny_file
826 This option can be used to set a pattern for filenames (and directory names
827 etc.) which should not be accessible in any way. The affected items are not
828 hidden, but any attempt to do anything to them (download, change into
829 directory, affect something within directory etc.) will be denied. This option
830 is very simple, and should not be used for serious access control - the
831 filesystem's permissions should be used in preference. However, this option
832 may be useful in certain virtual user setups. In particular aware that if
833 a filename is accessible by a variety of names (perhaps due to symbolic
834 links or hard links), then care must be taken to deny access to all the names.
835 Access will be denied to items if their name contains the string given by
836 hide_file, or if they match the regular expression specified by hide_file.
837 Note that vsftpd's regular expression matching code is a simple implementation
838 which is a subset of full regular expression functionality. Because of this,
839 you will need to carefully and exhaustively test any application of this
840 option. And you are recommended to use filesystem permissions for any
841 important security policies due to their greater reliability. Supported
842 regex syntax is any number of *, ? and unnested {,} operators. Regex
843 matching is only supported on the last component of a path, e.g. a/b/? is
844 supported but a/?/c is not.
845 Example: deny_file={*.mp3,*.mov,.private}
847 Default: (none)
849 .B dsa_cert_file
850 This option specifies the location of the DSA certificate to use for SSL
851 encrypted connections.
853 Default: (none - an RSA certificate suffices)
855 .B dsa_private_key_file
856 This option specifies the location of the DSA private key to use for SSL
857 encrypted connections. If this option is not set, the private key is expected
858 to be in the same file as the certificate.
860 Default: (none)
862 .B email_password_file
863 This option can be used to provide an alternate file for usage by the
864 .BR secure_email_list_enable
865 setting.
867 Default: /etc/vsftpd.email_passwords
869 .B ftp_username
870 This is the name of the user we use for handling anonymous FTP. The home
871 directory of this user is the root of the anonymous FTP area.
873 Default: ftp
875 .B ftpd_banner
876 This string option allows you to override the greeting banner displayed
877 by vsftpd when a connection first comes in.
879 Default: (none - default vsftpd banner is displayed)
881 .B guest_username
882 See the boolean setting
883 .BR guest_enable
884 for a description of what constitutes a guest login. This setting is the
885 real username which guest users are mapped to.
887 Default: ftp
889 .B hide_file
890 This option can be used to set a pattern for filenames (and directory names
891 etc.) which should be hidden from directory listings. Despite being hidden,
892 the files / directories etc. are fully accessible to clients who know what
893 names to actually use. Items will be hidden if their names contain the string
894 given by hide_file, or if they match the regular expression specified by
895 hide_file. Note that vsftpd's regular expression matching code is a simple
896 implementation which is a subset of full regular expression functionality.
898 .BR deny_file
899 for details of exactly what regex syntax is supported.
900 Example: hide_file={*.mp3,.hidden,hide*,h?}
902 Default: (none)
904 .B listen_address
905 If vsftpd is in standalone mode, the default listen address (of all local
906 interfaces) may be overridden by this setting. Provide a numeric IP address.
908 Default: (none)
910 .B listen_address6
911 Like listen_address, but specifies a default listen address for the IPv6
912 listener (which is used if listen_ipv6 is set). Format is standard IPv6
913 address format.
915 Default: (none)
917 .B local_root
918 This option represents a directory which vsftpd will try to change into
919 after a local (i.e. non-anonymous) login. Failure is silently ignored.
921 Default: (none)
923 .B message_file
924 This option is the name of the file we look for when a new directory is
925 entered. The contents are displayed to the remote user. This option is
926 only relevant if the option
927 .BR dirmessage_enable
928 is enabled.
930 Default: .message
932 .B nopriv_user
933 This is the name of the user that is used by vsftpd when it wants to be
934 totally unprivileged. Note that this should be a dedicated user, rather
935 than nobody. The user nobody tends to be used for rather a lot of important
936 things on most machines.
938 Default: nobody
940 .B pam_service_name
941 This string is the name of the PAM service vsftpd will use.
943 Default: ftp
945 .B pasv_address
946 Use this option to override the IP address that vsftpd will advertise in
947 response to the PASV command. Provide a numeric IP address, unless
948 .BR pasv_addr_resolve
949 is enabled, in which case you can provide a hostname which will be DNS
950 resolved for you at startup.
952 Default: (none - the address is taken from the incoming connected socket)
954 .B rsa_cert_file
955 This option specifies the location of the RSA certificate to use for SSL
956 encrypted connections.
958 Default: /usr/share/ssl/certs/vsftpd.pem
960 .B rsa_private_key_file
961 This option specifies the location of the RSA private key to use for SSL
962 encrypted connections. If this option is not set, the private key is expected
963 to be in the same file as the certificate.
965 Default: (none)
967 .B secure_chroot_dir
968 This option should be the name of a directory which is empty. Also, the
969 directory should not be writable by the ftp user. This directory is used
970 as a secure chroot() jail at times vsftpd does not require filesystem access.
972 Default: /usr/share/empty
974 .B ssl_ciphers
975 This option can be used to select which SSL ciphers vsftpd will allow for
976 encrypted SSL connections. See the
977 .BR ciphers
978 man page for further details. Note that restricting ciphers can be a useful
979 security precaution as it prevents malicious remote parties forcing a cipher
980 which they have found problems with.
982 Default: DES-CBC3-SHA
984 .B user_config_dir
985 This powerful option allows the override of any config option specified in
986 the manual page, on a per-user basis. Usage is simple, and is best illustrated
987 with an example. If you set
988 .BR user_config_dir
989 to be
990 .BR /etc/vsftpd_user_conf
991 and then log on as the user "chris", then vsftpd will apply the settings in
992 the file
993 .BR /etc/vsftpd_user_conf/chris
994 for the duration of the session. The format of this file is as detailed in
995 this manual page! PLEASE NOTE that not all settings are effective on a
996 per-user basis. For example, many settings only prior to the user's session
997 being started. Examples of settings which will not affect any behviour on
998 a per-user basis include listen_address, banner_file, max_per_ip, max_clients,
999 xferlog_file, etc.
1001 Default: (none)
1003 .B user_sub_token
1004 This option is useful is conjunction with virtual users. It is used to
1005 automatically generate a home directory for each virtual user, based on a
1006 template. For example, if the home directory of the real user specified via
1007 .BR guest_username
1009 .BR /home/virtual/$USER ,
1011 .BR user_sub_token
1012 is set to
1013 .BR $USER ,
1014 then when virtual user fred logs in, he will end up (usually chroot()'ed) in
1015 the directory
1016 .BR /home/virtual/fred .
1017 This option also takes affect if
1018 .BR local_root
1019 contains
1020 .BR user_sub_token .
1022 Default: (none)
1024 .B userlist_file
1025 This option is the name of the file loaded when the
1026 .BR userlist_enable
1027 option is active.
1029 Default: /etc/vsftpd.user_list
1031 .B vsftpd_log_file
1032 This option is the name of the file to which we write the vsftpd style
1033 log file. This log is only written if the option
1034 .BR xferlog_enable
1035 is set, and
1036 .BR xferlog_std_format
1037 is NOT set. Alternatively, it is written if you have set the option
1038 .BR dual_log_enable .
1039 One further complication - if you have set
1040 .BR syslog_enable ,
1041 then this file is not written and output is sent to the system log instead.
1043 Default: /var/log/vsftpd.log
1045 .B xferlog_file
1046 This option is the name of the file to which we write the wu-ftpd style
1047 transfer log. The transfer log is only written if the option
1048 .BR xferlog_enable
1049 is set, along with
1050 .BR xferlog_std_format .
1051 Alternatively, it is written if you have set the option
1052 .BR dual_log_enable .
1054 Default: /var/log/xferlog
1056 .SH AUTHOR
1057 scarybeasts@gmail.com