1VSFTPD.CONF(5) File Formats Manual VSFTPD.CONF(5)
2
3
4
6 vsftpd.conf - config file for vsftpd
7
9 vsftpd.conf may be used to control various aspects of vsftpd's behav‐
10 iour. By default, vsftpd looks for this file at the location
11 /etc/vsftpd/vsftpd.conf. However, you may override this by specifying
12 a command line argument to vsftpd. The command line argument is the
13 pathname of the configuration file for vsftpd. This behaviour is useful
14 because you may wish to use an advanced inetd such as xinetd to launch
15 vsftpd with different configuration files on a per virtual host basis.
16
17
19 The format of vsftpd.conf is very simple. Each line is either a comment
20 or a directive. Comment lines start with a # and are ignored. A direc‐
21 tive line has the format:
22
23 option=value
24
25 It is important to note that it is an error to put any space between
26 the option, = and value.
27
28 Each setting has a compiled in default which may be modified in the
29 configuration file.
30
31
33 Below is a list of boolean options. The value for a boolean option may
34 be set to YES or NO.
35
36
37 allow_anon_ssl
38 Only applies if ssl_enable is active. If set to YES, anonymous
39 users will be allowed to use secured SSL connections.
40
41 Default: NO
42
43 anon_mkdir_write_enable
44 If set to YES, anonymous users will be permitted to create new
45 directories under certain conditions. For this to work, the
46 option write_enable must be activated, and the anonymous ftp
47 user must have write permission on the parent directory.
48
49 Default: NO
50
51 anon_other_write_enable
52 If set to YES, anonymous users will be permitted to perform
53 write operations other than upload and create directory, such as
54 deletion and renaming. This is generally not recommended but
55 included for completeness.
56
57 Default: NO
58
59 anon_upload_enable
60 If set to YES, anonymous users will be permitted to upload files
61 under certain conditions. For this to work, the option
62 write_enable must be activated, and the anonymous ftp user must
63 have write permission on desired upload locations. This setting
64 is also required for virtual users to upload; by default, vir‐
65 tual users are treated with anonymous (i.e. maximally
66 restricted) privilege.
67
68 Default: NO
69
70 anon_world_readable_only
71 When enabled, anonymous users will only be allowed to download
72 files which are world readable. This is recognising that the ftp
73 user may own files, especially in the presence of uploads.
74
75 Default: YES
76
77 anonymous_enable
78 Controls whether anonymous logins are permitted or not. If
79 enabled, both the usernames ftp and anonymous are recognised as
80 anonymous logins.
81
82 Default: YES
83
84 ascii_download_enable
85 When enabled, ASCII mode data transfers will be honoured on
86 downloads.
87
88 Default: NO
89
90 ascii_upload_enable
91 When enabled, ASCII mode data transfers will be honoured on
92 uploads.
93
94 Default: NO
95
96 async_abor_enable
97 When enabled, a special FTP command known as "async ABOR" will
98 be enabled. Only ill advised FTP clients will use this feature.
99 Additionally, this feature is awkward to handle, so it is dis‐
100 abled by default. Unfortunately, some FTP clients will hang when
101 cancelling a transfer unless this feature is available, so you
102 may wish to enable it.
103
104 Default: NO
105
106 background
107 When enabled, and vsftpd is started in "listen" mode, vsftpd
108 will background the listener process. i.e. control will immedi‐
109 ately be returned to the shell which launched vsftpd.
110
111 Default: YES
112
113 check_shell
114 Note! This option only has an effect for non-PAM builds of
115 vsftpd. If disabled, vsftpd will not check /etc/shells for a
116 valid user shell for local logins.
117
118 Default: YES
119
120 chmod_enable
121 When enabled, allows use of the SITE CHMOD command. NOTE! This
122 only applies to local users. Anonymous users never get to use
123 SITE CHMOD.
124
125 Default: YES
126
127 chown_uploads
128 If enabled, all anonymously uploaded files will have the owner‐
129 ship changed to the user specified in the setting chown_user‐
130 name. This is useful from an administrative, and perhaps secu‐
131 rity, standpoint.
132
133 Default: NO
134
135 chroot_list_enable
136 If activated, you may provide a list of local users who are
137 placed in a chroot() jail in their home directory upon login.
138 The meaning is slightly different if chroot_local_user is set to
139 YES. In this case, the list becomes a list of users which are
140 NOT to be placed in a chroot() jail. By default, the file con‐
141 taining this list is /etc/vsftpd/chroot_list, but you may over‐
142 ride this with the chroot_list_file setting.
143
144 Default: NO
145
146 chroot_local_user
147 If set to YES, local users will be (by default) placed in a
148 chroot() jail in their home directory after login. Warning:
149 This option has security implications, especially if the users
150 have upload permission, or shell access. Only enable if you know
151 what you are doing. Note that these security implications are
152 not vsftpd specific. They apply to all FTP daemons which offer
153 to put local users in chroot() jails.
154
155 Default: NO
156
157 connect_from_port_20
158 This controls whether PORT style data connections use port 20
159 (ftp-data) on the server machine. For security reasons, some
160 clients may insist that this is the case. Conversely, disabling
161 this option enables vsftpd to run with slightly less privilege.
162
163 Default: NO (but the sample config file enables it)
164
165 debug_ssl
166 If true, OpenSSL connection diagnostics are dumped to the vsftpd
167 log file. (Added in v2.0.6).
168
169 Default: NO
170
171 delete_failed_uploads
172 If true, any failed upload files are deleted. (Added in
173 v2.0.7).
174
175 Default: NO
176
177 deny_email_enable
178 If activated, you may provide a list of anonymous password e-
179 mail responses which cause login to be denied. By default, the
180 file containing this list is /etc/vsftpd/banned_emails, but you
181 may override this with the banned_email_file setting.
182
183 Default: NO
184
185 dirlist_enable
186 If set to NO, all directory list commands will give permission
187 denied.
188
189 Default: YES
190
191 dirmessage_enable
192 If enabled, users of the FTP server can be shown messages when
193 they first enter a new directory. By default, a directory is
194 scanned for the file .message, but that may be overridden with
195 the configuration setting message_file.
196
197 Default: NO (but the sample config file enables it)
198
199 download_enable
200 If set to NO, all download requests will give permission denied.
201
202 Default: YES
203
204 dual_log_enable
205 If enabled, two log files are generated in parallel, going by
206 default to /var/log/xferlog and /var/log/vsftpd.log. The former
207 is a wu-ftpd style transfer log, parseable by standard tools.
208 The latter is vsftpd's own style log.
209
210 Default: NO
211
212 force_dot_files
213 If activated, files and directories starting with . will be
214 shown in directory listings even if the "a" flag was not used by
215 the client. This override excludes the "." and ".." entries.
216
217 Default: NO
218
219 force_anon_data_ssl
220 Only applies if ssl_enable is activated. If activated, all
221 anonymous logins are forced to use a secure SSL connection in
222 order to send and receive data on data connections.
223
224 Default: NO
225
226 force_anon_logins_ssl
227 Only applies if ssl_enable is activated. If activated, all
228 anonymous logins are forced to use a secure SSL connection in
229 order to send the password.
230
231 Default: NO
232
233 force_local_data_ssl
234 Only applies if ssl_enable is activated. If activated, all non-
235 anonymous logins are forced to use a secure SSL connection in
236 order to send and receive data on data connections.
237
238 Default: YES
239
240 force_local_logins_ssl
241 Only applies if ssl_enable is activated. If activated, all non-
242 anonymous logins are forced to use a secure SSL connection in
243 order to send the password.
244
245 Default: YES
246
247 guest_enable
248 If enabled, all non-anonymous logins are classed as "guest"
249 logins. A guest login is remapped to the user specified in the
250 guest_username setting.
251
252 Default: NO
253
254 hide_ids
255 If enabled, all user and group information in directory listings
256 will be displayed as "ftp".
257
258 Default: NO
259
260 implicit_ssl
261 If enabled, an SSL handshake is the first thing expect on all
262 connections (the FTPS protocol). To support explicit SSL and/or
263 plain text too, a separate vsftpd listener process should be
264 run.
265
266 Default: NO
267
268 listen If enabled, vsftpd will run in standalone mode. This means that
269 vsftpd must not be run from an inetd of some kind. Instead, the
270 vsftpd executable is run once directly. vsftpd itself will then
271 take care of listening for and handling incoming connections.
272
273 Default: NO
274
275 listen_ipv6
276 Like the listen parameter, except vsftpd will listen on an IPv6
277 socket instead of an IPv4 one. This parameter and the listen
278 parameter are mutually exclusive.
279
280 Default: NO
281
282 local_enable
283 Controls whether local logins are permitted or not. If enabled,
284 normal user accounts in /etc/passwd (or wherever your PAM config
285 references) may be used to log in. This must be enable for any
286 non-anonymous login to work, including virtual users.
287
288 Default: NO
289
290 lock_upload_files
291 When enabled, all uploads proceed with a write lock on the
292 upload file. All downloads proceed with a shared read lock on
293 the download file. WARNING! Before enabling this, be aware that
294 malicious readers could starve a writer wanting to e.g. append a
295 file.
296
297 Default: YES
298
299 log_ftp_protocol
300 When enabled, all FTP requests and responses are logged, provid‐
301 ing the option xferlog_std_format is not enabled. Useful for
302 debugging.
303
304 Default: NO
305
306 ls_recurse_enable
307 When enabled, this setting will allow the use of "ls -R". This
308 is a minor security risk, because a ls -R at the top level of a
309 large site may consume a lot of resources.
310
311 Default: NO
312
313 mdtm_write
314 When enabled, this setting will allow MDTM to set file modifica‐
315 tion times (subject to the usual access checks).
316
317 Default: YES
318
319 no_anon_password
320 When enabled, this prevents vsftpd from asking for an anonymous
321 password - the anonymous user will log straight in.
322
323 Default: NO
324
325 no_log_lock
326 When enabled, this prevents vsftpd from taking a file lock when
327 writing to log files. This option should generally not be
328 enabled. It exists to workaround operating system bugs such as
329 the Solaris / Veritas filesystem combination which has been
330 observed to sometimes exhibit hangs trying to lock log files.
331
332 Default: NO
333
334 one_process_model
335 If you have a Linux 2.4 kernel, it is possible to use a differ‐
336 ent security model which only uses one process per connection.
337 It is a less pure security model, but gains you performance. You
338 really don't want to enable this unless you know what you are
339 doing, and your site supports huge numbers of simultaneously
340 connected users.
341
342 Default: NO
343
344 passwd_chroot_enable
345 If enabled, along with chroot_local_user , then a chroot() jail
346 location may be specified on a per-user basis. Each user's jail
347 is derived from their home directory string in /etc/passwd. The
348 occurrence of /./ in the home directory string denotes that the
349 jail is at that particular location in the path.
350
351 Default: NO
352
353 pasv_addr_resolve
354 Set to YES if you want to use a hostname (as opposed to IP
355 address) in the pasv_address option.
356
357 Default: NO
358
359 pasv_enable
360 Set to NO if you want to disallow the PASV method of obtaining a
361 data connection.
362
363 Default: YES
364
365 pasv_promiscuous
366 Set to YES if you want to disable the PASV security check that
367 ensures the data connection originates from the same IP address
368 as the control connection. Only enable if you know what you are
369 doing! The only legitimate use for this is in some form of
370 secure tunnelling scheme, or perhaps to facilitate FXP support.
371
372 Default: NO
373
374 port_enable
375 Set to NO if you want to disallow the PORT method of obtaining a
376 data connection.
377
378 Default: YES
379
380 port_promiscuous
381 Set to YES if you want to disable the PORT security check that
382 ensures that outgoing data connections can only connect to the
383 client. Only enable if you know what you are doing!
384
385 Default: NO
386
387 require_cert
388 If set to yes, all SSL client connections are required to
389 present a client certificate. The degree of validation applied
390 to this certificate is controlled by validate_cert (Added in
391 v2.0.6).
392
393 Default: NO
394
395 require_ssl_reuse
396 If set to yes, all SSL data connections are required to exhibit
397 SSL session reuse (which proves that they know the same master
398 secret as the control channel). Although this is a secure
399 default, it may break many FTP clients, so you may want to dis‐
400 able it. For a discussion of the consequences, see http://scary‐
401 beastsecurity.blogspot.com/2009/02/vsftpd-210-released.html
402 (Added in v2.1.0).
403
404 Default: YES
405
406 reverse_lookup_enable
407 Set to YES if you want vsftpd to transform the ip address into
408 the hostname, before pam authentication. This is useful if you
409 use pam_access including the hostname. If you want vsftpd to run
410 on the environment where the reverse lookup for some hostname is
411 available and the name server doesn't respond for a while, you
412 should set this to NO to avoid a performance issue.
413
414 Default: YES
415
416 run_as_launching_user
417 Set to YES if you want vsftpd to run as the user which launched
418 vsftpd. This is useful where root access is not available. MAS‐
419 SIVE WARNING! Do NOT enable this option unless you totally know
420 what you are doing, as naive use of this option can create mas‐
421 sive security problems. Specifically, vsftpd does not / cannot
422 use chroot technology to restrict file access when this option
423 is set (even if launched by root). A poor substitute could be to
424 use a deny_file setting such as {/*,*..*}, but the reliability
425 of this cannot compare to chroot, and should not be relied on.
426 If using this option, many restrictions on other options apply.
427 For example, options requiring privilege such as non-anonymous
428 logins, upload ownership changing, connecting from port 20 and
429 listen ports less than 1024 are not expected to work. Other
430 options may be impacted.
431
432 Default: NO
433
434 secure_email_list_enable
435 Set to YES if you want only a specified list of e-mail passwords
436 for anonymous logins to be accepted. This is useful as a low-
437 hassle way of restricting access to low-security content without
438 needing virtual users. When enabled, anonymous logins are pre‐
439 vented unless the password provided is listed in the file speci‐
440 fied by the email_password_file setting. The file format is one
441 password per line, no extra whitespace. The default filename is
442 /etc/vsftpd/email_passwords.
443
444 Default: NO
445
446 session_support
447 This controls whether vsftpd attempts to maintain sessions for
448 logins. If vsftpd is maintaining sessions, it will try and
449 update utmp and wtmp. It will also open a pam_session if using
450 PAM to authenticate, and only close this upon logout. You may
451 wish to disable this if you do not need session logging, and you
452 wish to give vsftpd more opportunity to run with less processes
453 and / or less privilege. NOTE - utmp and wtmp support is only
454 provided with PAM enabled builds.
455
456 Default: NO
457
458 setproctitle_enable
459 If enabled, vsftpd will try and show session status information
460 in the system process listing. In other words, the reported name
461 of the process will change to reflect what a vsftpd session is
462 doing (idle, downloading etc). You probably want to leave this
463 off for security purposes.
464
465 Default: NO
466
467 ssl_enable
468 If enabled, and vsftpd was compiled against OpenSSL, vsftpd will
469 support secure connections via SSL. This applies to the control
470 connection (including login) and also data connections. You'll
471 need a client with SSL support too. NOTE!! Beware enabling this
472 option. Only enable it if you need it. vsftpd can make no guar‐
473 antees about the security of the OpenSSL libraries. By enabling
474 this option, you are declaring that you trust the security of
475 your installed OpenSSL library.
476
477 Default: NO
478
479 ssl_request_cert
480 If enabled, vsftpd will request (but not necessarily require;
481 see require_cert) a certificate on incoming SSL connections.
482 Normally this should not cause any trouble at all, but IBM zOS
483 seems to have issues. (New in v2.0.7).
484
485 Default: YES
486
487 ssl_sslv2
488 Only applies if ssl_enable is activated. If enabled, this option
489 will permit SSL v2 protocol connections. TLS v1.2 connections
490 are preferred.
491
492 Default: NO
493
494 ssl_sslv3
495 Only applies if ssl_enable is activated. If enabled, this option
496 will permit SSL v3 protocol connections. TLS v1.2 connections
497 are preferred.
498
499 Default: NO
500
501 ssl_tlsv1
502 Only applies if ssl_enable is activated. If enabled, this option
503 will permit TLS v1 protocol connections. TLS v1.2 connections
504 are preferred.
505
506 Default: YES
507
508 ssl_tlsv1_1
509 Only applies if ssl_enable is activated. If enabled, this option
510 will permit TLS v1.1 protocol connections. TLS v1.2 connections
511 are preferred.
512
513 Default: YES
514
515 ssl_tlsv1_2
516 Only applies if ssl_enable is activated. If enabled, this option
517 will permit TLS v1.2 protocol connections. TLS v1.2 connections
518 are preferred.
519
520 Default: YES
521
522 strict_ssl_read_eof
523 If enabled, SSL data uploads are required to terminate via SSL,
524 not an EOF on the socket. This option is required to be sure
525 that an attacker did not terminate an upload prematurely with a
526 faked TCP FIN. Unfortunately, it is not enabled by default
527 because so few clients get it right. (New in v2.0.7).
528
529 Default: NO
530
531 strict_ssl_write_shutdown
532 If enabled, SSL data downloads are required to terminate via
533 SSL, not an EOF on the socket. This is off by default as I was
534 unable to find a single FTP client that does this. It is minor.
535 All it affects is our ability to tell whether the client con‐
536 firmed full receipt of the file. Even without this option, the
537 client is able to check the integrity of the download. (New in
538 v2.0.7).
539
540 Default: NO
541
542 syslog_enable
543 If enabled, then any log output which would have gone to
544 /var/log/vsftpd.log goes to the system log instead. Logging is
545 done under the FTPD facility.
546
547 Default: NO
548
549 tcp_wrappers
550 If enabled, and vsftpd was compiled with tcp_wrappers support,
551 incoming connections will be fed through tcp_wrappers access
552 control. Furthermore, there is a mechanism for per-IP based con‐
553 figuration. If tcp_wrappers sets the VSFTPD_LOAD_CONF environ‐
554 ment variable, then the vsftpd session will try and load the
555 vsftpd configuration file specified in this variable.
556
557 Default: NO
558
559 text_userdb_names
560 By default, numeric IDs are shown in the user and group fields
561 of directory listings. You can get textual names by enabling
562 this parameter. It is off by default for performance reasons.
563
564 Default: NO
565
566 tilde_user_enable
567 If enabled, vsftpd will try and resolve pathnames such as
568 ~chris/pics, i.e. a tilde followed by a username. Note that
569 vsftpd will always resolve the pathnames ~ and ~/something (in
570 this case the ~ resolves to the initial login directory). Note
571 that ~user paths will only resolve if the file /etc/passwd may
572 be found within the _current_ chroot() jail.
573
574 Default: NO
575
576 use_localtime
577 If enabled, vsftpd will display directory listings with the time
578 in your local time zone. The default is to display GMT. The
579 times returned by the MDTM FTP command are also affected by this
580 option.
581
582 Default: NO
583
584 use_sendfile
585 An internal setting used for testing the relative benefit of
586 using the sendfile() system call on your platform.
587
588 Default: YES
589
590 userlist_deny
591 This option is examined if userlist_enable is activated. If you
592 set this setting to NO, then users will be denied login unless
593 they are explicitly listed in the file specified by
594 userlist_file. When login is denied, the denial is issued
595 before the user is asked for a password.
596
597 Default: YES
598
599 userlist_enable
600 If enabled, vsftpd will load a list of usernames, from the file‐
601 name given by userlist_file. If a user tries to log in using a
602 name in this file, they will be denied before they are asked for
603 a password. This may be useful in preventing cleartext passwords
604 being transmitted. See also userlist_deny.
605
606 Default: NO
607
608 validate_cert
609 If set to yes, all SSL client certificates received must vali‐
610 date OK. Self-signed certs do not constitute OK validation.
611 (New in v2.0.6).
612
613 Default: NO
614
615 userlist_log
616 This option is examined if userlist_enable is activated. If
617 enabled, every login denial based on the user list will be
618 logged.
619
620 Default: NO
621
622 virtual_use_local_privs
623 If enabled, virtual users will use the same privileges as local
624 users. By default, virtual users will use the same privileges as
625 anonymous users, which tends to be more restrictive (especially
626 in terms of write access).
627
628 Default: NO
629
630 write_enable
631 This controls whether any FTP commands which change the filesys‐
632 tem are allowed or not. These commands are: STOR, DELE, RNFR,
633 RNTO, MKD, RMD, APPE and SITE.
634
635 Default: NO
636
637 xferlog_enable
638 If enabled, a log file will be maintained detailling uploads and
639 downloads. By default, this file will be placed at
640 /var/log/vsftpd.log, but this location may be overridden using
641 the configuration setting vsftpd_log_file.
642
643 Default: NO (but the sample config file enables it)
644
645 xferlog_std_format
646 If enabled, the transfer log file will be written in standard
647 xferlog format, as used by wu-ftpd. This is useful because you
648 can reuse existing transfer statistics generators. The default
649 format is more readable, however. The default location for this
650 style of log file is /var/log/xferlog, but you may change it
651 with the setting xferlog_file.
652
653 Default: NO
654
655 isolate_network
656 If enabled, use CLONE_NEWNET to isolate the untrusted processes
657 so that they can't do arbitrary connect() and instead have to
658 ask the privileged process for sockets ( port_promiscuous have
659 to be disabled).
660
661 Default: YES
662
663 isolate
664 If enabled, use CLONE_NEWPID and CLONE_NEWIPC to isolate pro‐
665 cesses to their ipc and pid namespaces. So separated processes
666 can not interact with each other.
667
668 Default: YES
669
670
672 Below is a list of numeric options. A numeric option must be set to a
673 non negative integer. Octal numbers are supported, for convenience of
674 the umask options. To specify an octal number, use 0 as the first digit
675 of the number.
676
677
678 accept_timeout
679 The timeout, in seconds, for a remote client to establish con‐
680 nection with a PASV style data connection.
681
682 Default: 60
683
684 anon_max_rate
685 The maximum data transfer rate permitted, in bytes per second,
686 for anonymous clients.
687
688 Default: 0 (unlimited)
689
690 anon_umask
691 The value that the umask for file creation is set to for anony‐
692 mous users. NOTE! If you want to specify octal values, remember
693 the "0" prefix otherwise the value will be treated as a base 10
694 integer!
695
696 Default: 077
697
698 chown_upload_mode
699 The file mode to force for chown()ed anonymous uploads. (Added
700 in v2.0.6).
701
702 Default: 0600
703
704 connect_timeout
705 The timeout, in seconds, for a remote client to respond to our
706 PORT style data connection.
707
708 Default: 60
709
710 data_connection_timeout
711 The timeout, in seconds, which is roughly the maximum time we
712 permit data transfers to stall for with no progress. If the
713 timeout triggers, the remote client is kicked off.
714
715 Default: 300
716
717 delay_failed_login
718 The number of seconds to pause prior to reporting a failed
719 login.
720
721 Default: 1
722
723 delay_successful_login
724 The number of seconds to pause prior to allowing a successful
725 login.
726
727 Default: 0
728
729 file_open_mode
730 The permissions with which uploaded files are created. Umasks
731 are applied on top of this value. You may wish to change to 0777
732 if you want uploaded files to be executable.
733
734 Default: 0666
735
736 ftp_data_port
737 The port from which PORT style connections originate (as long as
738 the poorly named connect_from_port_20 is enabled).
739
740 Default: 20
741
742 idle_session_timeout
743 The timeout, in seconds, which is the maximum time a remote
744 client may spend between FTP commands. If the timeout triggers,
745 the remote client is kicked off.
746
747 Default: 300
748
749 listen_port
750 If vsftpd is in standalone mode, this is the port it will listen
751 on for incoming FTP connections.
752
753 Default: 21
754
755 local_max_rate
756 The maximum data transfer rate permitted, in bytes per second,
757 for local authenticated users.
758
759 Default: 0 (unlimited)
760
761 local_umask
762 The value that the umask for file creation is set to for local
763 users. NOTE! If you want to specify octal values, remember the
764 "0" prefix otherwise the value will be treated as a base 10
765 integer!
766
767 Default: 077
768
769 max_clients
770 If vsftpd is in standalone mode, this is the maximum number of
771 clients which may be connected. Any additional clients connect‐
772 ing will get an error message. The value 0 switches off the
773 limit.
774
775 Default: 2000
776
777 max_login_fails
778 After this many login failures, the session is killed.
779
780 Default: 3
781
782 max_per_ip
783 If vsftpd is in standalone mode, this is the maximum number of
784 clients which may be connected from the same source internet
785 address. A client will get an error message if they go over this
786 limit. The value 0 switches off the limit.
787
788 Default: 50
789
790 pasv_max_port
791 The maximum port to allocate for PASV style data connections.
792 Can be used to specify a narrow port range to assist fire‐
793 walling.
794
795 Default: 0 (use any port)
796
797 pasv_min_port
798 The minimum port to allocate for PASV style data connections.
799 Can be used to specify a narrow port range to assist fire‐
800 walling.
801
802 Default: 0 (use any port)
803
804 trans_chunk_size
805 You probably don't want to change this, but try setting it to
806 something like 8192 for a much smoother bandwidth limiter.
807
808 Default: 0 (let vsftpd pick a sensible setting)
809
810
812 Below is a list of string options.
813
814
815 anon_root
816 This option represents a directory which vsftpd will try to
817 change into after an anonymous login. Failure is silently
818 ignored.
819
820 Default: (none)
821
822 banned_email_file
823 This option is the name of a file containing a list of anonymous
824 e-mail passwords which are not permitted. This file is consulted
825 if the option deny_email_enable is enabled.
826
827 Default: /etc/vsftpd/banned_emails
828
829 banner_file
830 This option is the name of a file containing text to display
831 when someone connects to the server. If set, it overrides the
832 banner string provided by the ftpd_banner option.
833
834 Default: (none)
835
836 ca_certs_file
837 This option is the name of a file to load Certificate Authority
838 certs from, for the purpose of validating client certs. The
839 loaded certs are also advertised to the client, to cater for
840 TLSv1.0 clients such as the z/OS FTP client. Regrettably, the
841 default SSL CA cert paths are not used, because of vsftpd's use
842 of restricted filesystem spaces (chroot). (Added in v2.0.6).
843
844 Default: (none)
845
846 chown_username
847 This is the name of the user who is given ownership of anony‐
848 mously uploaded files. This option is only relevant if another
849 option, chown_uploads, is set.
850
851 Default: root
852
853 chroot_list_file
854 The option is the name of a file containing a list of local
855 users which will be placed in a chroot() jail in their home
856 directory. This option is only relevant if the option
857 chroot_list_enable is enabled. If the option chroot_local_user
858 is enabled, then the list file becomes a list of users to NOT
859 place in a chroot() jail.
860
861 Default: /etvsftpd.confc/vsftpd.chroot_list
862
863 cmds_allowed
864 This options specifies a comma separated list of allowed FTP
865 commands (post login. USER, PASS and QUIT and others are always
866 allowed pre-login). Other commands are rejected. This is a pow‐
867 erful method of really locking down an FTP server. Example:
868 cmds_allowed=PASV,RETR,QUIT
869
870 Default: (none)
871
872 cmds_denied
873 This options specifies a comma separated list of denied FTP com‐
874 mands (post login. USER, PASS, QUIT and others are always
875 allowed pre-login). If a command appears on both this and
876 cmds_allowed then the denial takes precedence. (Added in
877 v2.1.0).
878
879 Default: (none)
880
881 deny_file
882 This option can be used to set a pattern for filenames (and
883 directory names etc.) which should not be accessible in any way.
884 The affected items are not hidden, but any attempt to do any‐
885 thing to them (download, change into directory, affect something
886 within directory etc.) will be denied. This option is very sim‐
887 ple, and should not be used for serious access control - the
888 filesystem's permissions should be used in preference. However,
889 this option may be useful in certain virtual user setups. In
890 particular aware that if a filename is accessible by a variety
891 of names (perhaps due to symbolic links or hard links), then
892 care must be taken to deny access to all the names. Access will
893 be denied to items if their name contains the string given by
894 hide_file, or if they match the regular expression specified by
895 hide_file. Note that vsftpd's regular expression matching code
896 is a simple implementation which is a subset of full regular
897 expression functionality. Because of this, you will need to
898 carefully and exhaustively test any application of this option.
899 And you are recommended to use filesystem permissions for any
900 important security policies due to their greater reliability.
901 Supported regex syntax is any number of *, ? and unnested {,}
902 operators. Regex matching is only supported on the last compo‐
903 nent of a path, e.g. a/b/? is supported but a/?/c is not. Exam‐
904 ple: deny_file={*.mp3,*.mov,.private}
905
906 Default: (none)
907
908 dsa_cert_file
909 This option specifies the location of the DSA certificate to use
910 for SSL encrypted connections.
911
912 Default: (none - an RSA certificate suffices)
913
914 dsa_private_key_file
915 This option specifies the location of the DSA private key to use
916 for SSL encrypted connections. If this option is not set, the
917 private key is expected to be in the same file as the certifi‐
918 cate.
919
920 Default: (none)
921
922 dh_param_file
923 This option specifies the location of the custom parameters used
924 for ephemeral Diffie-Hellman key exchange in SSL.
925
926 Default: (none - use built in parameters appropriate for cer‐
927 tificate key size)
928
929 ecdh_param_file
930 This option specifies the location of custom parameters for
931 ephemeral Elliptic Curve Diffie-Hellman (ECDH) key exchange.
932
933 Default: (none - use built in parameters, NIST P-256 with
934 OpenSSL 1.0.1 and automatically selected curve based on client
935 preferences with OpenSSL 1.0.2 and later)
936
937 email_password_file
938 This option can be used to provide an alternate file for usage
939 by the secure_email_list_enable setting.
940
941 Default: /etc/vsftpd/email_passwords
942
943 ftp_username
944 This is the name of the user we use for handling anonymous FTP.
945 The home directory of this user is the root of the anonymous FTP
946 area.
947
948 Default: ftp
949
950 ftpd_banner
951 This string option allows you to override the greeting banner
952 displayed by vsftpd when a connection first comes in.
953
954 Default: (none - default vsftpd banner is displayed)
955
956 guest_username
957 See the boolean setting guest_enable for a description of what
958 constitutes a guest login. This setting is the real username
959 which guest users are mapped to.
960
961 Default: ftp
962
963 hide_file
964 This option can be used to set a pattern for filenames (and
965 directory names etc.) which should be hidden from directory
966 listings. Despite being hidden, the files / directories etc. are
967 fully accessible to clients who know what names to actually use.
968 Items will be hidden if their names contain the string given by
969 hide_file, or if they match the regular expression specified by
970 hide_file. Note that vsftpd's regular expression matching code
971 is a simple implementation which is a subset of full regular
972 expression functionality. See deny_file for details of exactly
973 what regex syntax is supported. Example: hide_file={*.mp3,.hid‐
974 den,hide*,h?}
975
976 Default: (none)
977
978 listen_address
979 If vsftpd is in standalone mode, the default listen address (of
980 all local interfaces) may be overridden by this setting. Provide
981 a numeric IP address.
982
983 Default: (none)
984
985 listen_address6
986 Like listen_address, but specifies a default listen address for
987 the IPv6 listener (which is used if listen_ipv6 is set). Format
988 is standard IPv6 address format.
989
990 Default: (none)
991
992 local_root
993 This option represents a directory which vsftpd will try to
994 change into after a local (i.e. non-anonymous) login. Failure is
995 silently ignored.
996
997 Default: (none)
998
999 message_file
1000 This option is the name of the file we look for when a new
1001 directory is entered. The contents are displayed to the remote
1002 user. This option is only relevant if the option dirmes‐
1003 sage_enable is enabled.
1004
1005 Default: .message
1006
1007 nopriv_user
1008 This is the name of the user that is used by vsftpd when it
1009 wants to be totally unprivileged. Note that this should be a
1010 dedicated user, rather than nobody. The user nobody tends to be
1011 used for rather a lot of important things on most machines.
1012
1013 Default: nobody
1014
1015 pam_service_name
1016 This string is the name of the PAM service vsftpd will use.
1017
1018 Default: ftp
1019
1020 pasv_address
1021 Use this option to override the IP address that vsftpd will
1022 advertise in response to the PASV command. Provide a numeric IP
1023 address, unless pasv_addr_resolve is enabled, in which case you
1024 can provide a hostname which will be DNS resolved for you at
1025 startup.
1026
1027 Default: (none - the address is taken from the incoming con‐
1028 nected socket)
1029
1030 rsa_cert_file
1031 This option specifies the location of the RSA certificate to use
1032 for SSL encrypted connections.
1033
1034 Default: /usr/share/ssl/certs/vsftpd.pem
1035
1036 rsa_private_key_file
1037 This option specifies the location of the RSA private key to use
1038 for SSL encrypted connections. If this option is not set, the
1039 private key is expected to be in the same file as the certifi‐
1040 cate.
1041
1042 Default: (none)
1043
1044 secure_chroot_dir
1045 This option should be the name of a directory which is empty.
1046 Also, the directory should not be writable by the ftp user. This
1047 directory is used as a secure chroot() jail at times vsftpd does
1048 not require filesystem access.
1049
1050 Default: /usr/share/empty
1051
1052 ssl_ciphers
1053 This option can be used to select which SSL ciphers vsftpd will
1054 allow for encrypted SSL connections. See the ciphers man page
1055 for further details. Note that restricting ciphers can be a use‐
1056 ful security precaution as it prevents malicious remote parties
1057 forcing a cipher which they have found problems with.
1058
1059 Default: AES128-SHA:DES-CBC3-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-
1060 AES128-SHA:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-
1061 SHA384
1062
1063 user_config_dir
1064 This powerful option allows the override of any config option
1065 specified in the manual page, on a per-user basis. Usage is sim‐
1066 ple, and is best illustrated with an example. If you set
1067 user_config_dir to be /etc/vsftpd/user_conf and then log on as
1068 the user "chris", then vsftpd will apply the settings in the
1069 file /etc/vsftpd/user_conf/chris for the duration of the ses‐
1070 sion. The format of this file is as detailed in this manual
1071 page! PLEASE NOTE that not all settings are effective on a per-
1072 user basis. For example, many settings only prior to the user's
1073 session being started. Examples of settings which will not
1074 affect any behviour on a per-user basis include listen_address,
1075 banner_file, max_per_ip, max_clients, xferlog_file, etc.
1076
1077 Default: (none)
1078
1079 user_sub_token
1080 This option is useful is conjunction with virtual users. It is
1081 used to automatically generate a home directory for each virtual
1082 user, based on a template. For example, if the home directory of
1083 the real user specified via guest_username is /home/vir‐
1084 tual/$USER, and user_sub_token is set to $USER, then when vir‐
1085 tual user fred logs in, he will end up (usually chroot()'ed) in
1086 the directory /home/virtual/fred. This option also takes affect
1087 if local_root contains user_sub_token.
1088
1089 Default: (none)
1090
1091 userlist_file
1092 This option is the name of the file loaded when the
1093 userlist_enable option is active.
1094
1095 Default: /etc/vsftpd/user_list
1096
1097 vsftpd_log_file
1098 This option is the name of the file to which we write the vsftpd
1099 style log file. This log is only written if the option xfer‐
1100 log_enable is set, and xferlog_std_format is NOT set. Alterna‐
1101 tively, it is written if you have set the option
1102 dual_log_enable. One further complication - if you have set
1103 syslog_enable, then this file is not written and output is sent
1104 to the system log instead.
1105
1106 Default: /var/log/vsftpd.log
1107
1108 xferlog_file
1109 This option is the name of the file to which we write the wu-
1110 ftpd style transfer log. The transfer log is only written if the
1111 option xferlog_enable is set, along with xferlog_std_format.
1112 Alternatively, it is written if you have set the option
1113 dual_log_enable.
1114
1115 Default: /var/log/xferlog
1116
1117
1119 scarybeasts@gmail.com
1120
1121
1122
1123
1124 VSFTPD.CONF(5)