1VSFTPD.CONF(5)                File Formats Manual               VSFTPD.CONF(5)
2
3
4

NAME

6       vsftpd.conf - config file for vsftpd
7

DESCRIPTION

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

FORMAT

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

BOOLEAN OPTIONS

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

NUMERIC OPTIONS

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

STRING OPTIONS

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

AUTHOR

1119       scarybeasts@gmail.com
1120
1121
1122
1123
1124                                                                VSFTPD.CONF(5)
Impressum