## ProFTPD: Documentation Index

The following is a collection of howtos that cover most of the common questions asked about ProFTPD and how to configure it.

Recommended order of reading:

On how to compile ProFTPD
  Covers the various options to the `configure` script used by ProFTPD's build system
The `proftpd.conf` file
  Covers the location and format of ProFTPD's configuration file, and some of the basic functionality

On configuring the `ServerType`
  Covers how to configure ProFTPD to operate as a standalone daemon or one run via inetd/xinetd

On how clients are authenticated
  Covers the steps taken in authenticating a user, and how authentication involves PAM, chroots, shells, etc.

On `DefaultRoot` and chroots
  Covers the `DefaultRoot` configuration directive, chroots, and why symlinks do not work as expected when chroots are in effect

On `AuthUserFiles`
  Covers the use of `AuthUserFile` and `AuthGroupFile`

On the `Umask` directive
  Covers how `Umask` works, including a basic introduction to Unix filesystem permissions

On debugging
  Covers how to configure the daemon so that it produces debugging output, which greatly helps in diagnosing problems

On ProFTPD release versioning
  Covers the version naming convention used for ProFTPD releases

On `<VirtualHost>` sections
  Covers how to configure virtual servers, listening on only one IP address, and how the daemon handles client connections to its virtual servers

On virtual users
  Covers what virtual users are, how `proftpd` can be configured to handle virtual users from various sources (i.e. SQL, flat files, LDAP, etc).

On `<Directory>` sections
  Covers how `<Directory>` sections should be configured, and how the configured paths are matched

On `IPv6` support
  Covers how IPv6 support and limitations

On `.ftpaccess` files
  Covers how `.ftpaccess` files work

On `<Limit>` sections
  Covers how `<Limit>` sections should be configured, and how different `<Limit>`s interact

On using `proftpd` in a firewall/NAT environment
  Covers how NAT and passive FTP data transfers work, how to configure `proftpd` to operate in such environments

On ProFTPD quotas
  Covers how the `mod_quotatab` module can be used for implementing quotas

On ProFTPD and timestamps
  Covers the situation where the timestamps which appear in log files and directory listings may change, or not be what you expect

On the `ListOptions` directive
  Covers how the `ListOptions` directive can be used to specify the directory listing options for clients, including showing hidden files and disabling recursive directory listings

On upgrading
  Covers the best way to perform an upgrade of ProFTPD

On DSO modules
  Covers what DSO modules are, and how to use them properly

On connection ACLs
  Covers implementing connection ACLs, and some of the performance concerns related to the different mechanisms

On ASCII transfers
  Covers ASCII mode for data transfers, and the affected FTP commands

On FXP, also known as site-to-site transfers
  Covers why allowing site-to-site transfers is considered a bad idea, and how to configure `proftpd` to allow them

On DNS usage
  Covers when and how `proftpd` uses the DNS

On sendfile support
  Describes what the `sendfile(2)` function does, and some cases where it should not be used

On the `FTP` commands supported
  Provides descriptions of the FTP commands supported by the daemon, including some common `SITE` commands

On the various forms of logging
  Covers the various log files that ProFTPD can generate, and how logging capabilities can be extended

On the specific log levels supported
  Covers the various log levels that ProFTPD uses for its log messages

On SQL configurations
  Covers configuring `mod_sql` and how to set up your SQL tables, and some of the common questions about using `mod_sql`

On RADIUS configurations
  Covers configuring `mod_radius`

On memcache support
  Covers configuring and using memcache by various modules

On Redis support
  Covers configuring and using Redis by various modules

On TCP/FTP/SSH keepalive functionality
  Covers keeping long-lived connections alive, using TCP, FTP, and SSH specific mechanisms

On using FTP over SSH
  Covers tunneling FTP over SSH

On SSL/TLS configurations
  Covers configuring the daemon to handle FTP over SSL/TLS (also known as FTPS), including some of the common questions about FTPS.

On starting/stopping the daemon
  Covers how the daemon is commonly started, stopped, and restarted, and includes an example `init` script

On the ScoreboardFile
  Covers what the scoreboard does, and some of the common questions about scoreboards

On Classes
  Covers defining and using classes

On `Display` files
  Covers the various `Display` directives

On the `CreateHome` directive
  Covers how to configure the daemon to create home directories on-demand

On Controls
  Covers Controls and `mod_ctrls`

On rewriting commands using `mod_rewrite`
  Contains a collection of examples of `mod_rewrite` configurations that solve a variety of different problems

On Tracing
  Covers trace logging

On Filters
  Covers the various `Filter` directives, and how to write regular expressions that match what you want

On configuration tricks
  Covers various ways that can be used to make the `proftpd.conf` work in conditional ways

On Regular Expressions
  Covers POSIX regular expressions

On ProFTPD and AWS
  Covers deploying/using `proftpd` within AWS

On running proftpd as a nonroot user
  Covers configuring proftpd to run as a nonroot user

On globbing
  Covers what globbing is, how it can cause problems, and how to configure the daemon to defend against globbing attacks

On testing of `proftpd`
  Covers functional, integration, and regression tests of `proftpd`, and how to run the testsuite

On translations of `proftpd` into other languages
  Covers which parts of `proftpd` are translated, and how to add new translations

On best common practices
  Covers some of the best common and recommended practices for configuring and running `proftpd`

On ProFTPD's ECCN
  Covers the ECCN classification of the ProFTPD Project software

If your question or issue is not covered by any of these pages, please send a request to the ProFTPD documentation list. Directions for subscribing to the docs list, as well as the other ProFTPD mailing lists, are at:

      http://www.proftpd.org/lists.html

If you are looking to see if ProFTPD supports a particular feature, the first place to look as the complete list of configuration directives:

      http://www.proftpd.org/docs/directives/linked/by-name.html

The list may be intimidatingly long, but it is well worth scanning through all of the directives to see everything that ProFTPD is capable of supporting.

© Copyright 2017 The ProFTPD Project
All Rights Reserved