ProFTPD Modules


Modules ProFTPD uses APIs and a build system capable of including plugins, or modules, to enable new functionality or to enhance existing behavior.

Default Modules The following modules are always included in a ProFTPD build. The source code for these modules resides in the modules/ directory.

 Module   Description 
 mod_auth   Implements FTP authentication commands: USER, PASS, ACCT, REIN 
 mod_auth_file   Implements file-based authentication 
 mod_auth_unix   Implements traditional Unix-based authentication 
 mod_core   Implements most of the main FTP commands 
 mod_delay   Implements algorithms to protect against information leaks via timing attacks 
 mod_facts   Implements modern FTP commands for directory listing 
 mod_log   Implements main ProFTPD logging 
 mod_ls   Implements legacy FTP commands for directory listing 
 mod_site   Implements FTP SITE commands 
 mod_xfer   Implements FTP file transfer commands: STOR, RETR, APPE, REST, ABOR, TYPE, STRU, MODE, ALLO, SMNT, STOU 

Conditional Modules These modules will be automatically included by the build system, if it detects OS/platform support for them:

 Module   Description 
 mod_auth_pam   Interfaces with the PAM library; see the authentication howto for details 
 mod_cap   Interfaces with Linux capabilities; see the module docs for more information 

Special Modules Some modules require special build system support, and thus will be included in the build only when requested using special command-line options to the configure command:

 Module   Configure Option   Description 
 mod_ctrls   --enable-ctrls   Enables Controls functionality 
 mod_dso   --enable-dso   Enables dynamically loadable module functionality 
 mod_facl   --enable-facl   Enables support for POSIX filesystem ACLs; see the module docs for more information 
 mod_lang   --enable-nls   Enables Natural Language System (NLS) support; see the module docs for details 
 mod_memcache   --enable-memcache   Enables Memcache support; see the module docs for details 
 mod_redis   --enable-redis   Enables Redis support; see the module docs for details 

Contributed Modules And finally, there are the contributed modules. These are modules that were contributed to the ProFTPD Project over the years, developed by the ProFTPD community at large for their various use cases. Many of these became so popular with the community that the ProFTPD Project decided to include (or "bundle") these contributed modules as part of the source distribution, to help ensure that these popular modules would continue to be maintained alongside the core engine code. The source code for these modules resides in the contrib/ directory.

 Module   Description 
 mod_ban   Supports dynamic blocklisting of clients; see module doc for details 
 mod_ctrls_admin   Common ftpdctl actions; see module doc for more info 
 mod_dynmasq   Automatically update configuration for DynDNS-using servers; see module doc to learn more 
 mod_exec   Execute scripts based on session events; see module doc to learn more 
 mod_geoip   Supports blocking clients by geo information; see module doc for info 
 mod_ifsession   Conditional configurations applied per-user/group/class; see module doc for details 
 mod_ldap   Support authentication using LDAP; see module doc for details 
 mod_log_forensic   Log details only under specific criteria; see module doc to learn more 
 mod_geoip   Reject clients if the system load is too high; see module doc for info 
 mod_qos   Set TCP Quality Of Service (TCP) bits; see module doc for details 
 mod_quotatab   User/group/class-specific quotas; see module doc for more information 
 mod_radius   Support authentication using RADIUS; see module doc for details 
 mod_ratio   Per-user upload/download ratios; see module doc 
 mod_readme   Display "readme" files to clients; see module doc for more 
 mod_rewrite   Dynamically rewrite commands on-the-flly; see howto doc for details 
 mod_sftp   Implements SFTP; see module doc for details 
 mod_sftp_pam   Implements SSH and PAM authentication; see module doc for details 
 mod_sftp_sql   Retreive SSH public keys from SQL databases; see module doc for info 
 mod_shaper   Throttling of data transfers across the entire server; see module doc for details 
 mod_site_misc   Miscellaneous SITE commands; see module doc to learn more 
 mod_sql   Support authentication using SQL databases; see howto doc for instructions 
 mod_tls   Implements FTP over TLS (FTPS); see module doc for more 
 mod_tls_fscache   Enable TLS caching via filesystem; see module doc for more 
 mod_tls_memcache   Enable TLS caching via Memcache; see module doc for more 
 mod_tls_redis   Enable TLS caching via Redis; see module doc for more 
 mod_tls_shmcache   Enable TLS caching via Shared Memory; see module doc for details 
 mod_unique_id   Generate a guaranteed unique ID for each session; see module doc for more 
 mod_wrap   Use popular tcp_wrappers for client ACLs; see module doc for details 
 mod_wrap2   Enhanced support for client ACLs; see module doc for details 

Third-Party Modules As mentioned above, ProFTPD's APIs and build system support modules, even those that are not included as part of the project source distribution. You will find ProFTPD modules, in source form, in various other sites and projects around the Internet. This is precisely why ProFTPD allows for such plugins; the ProFTPD Project wants to support and encourage the community at large to develop for their needs, and to enable development and creativity!