C Shell PHP M4 Perl Makefile
Clone or download
Castaglia Merge pull request #738 from proftpd/digest-libressl-issue737
Issue #737: Define the proper `HAVE_LIBRESSL` macro, to properly build on
Latest commit a3f1e11 Aug 10, 2018
Failed to load latest commit information.
.github Move the code of conduct page to the .github/ folder, per their docs. Sep 24, 2017
contrib Issue#737: Define the proper `HAVE_LIBRESSL` macro, to properly build on Aug 10, 2018
doc Removing old/broken link. Jun 6, 2018
include Issue #652: Make it possible to override/change the shutmsg file loca… Nov 28, 2017
lib Issue #260: Convert existing uses of sprintf(3) to snprintf(3). Nov 23, 2017
locale Use the --package command-line option when generating the `.pot` file… Oct 9, 2017
m4 Bug#3127: Support out-of-tree builds. Feb 9, 2017
modules Rather than rejecting a PASV command on an IPv6 session outright, log… Jun 5, 2018
sample-configurations Update the release notes to mention that the IdentLookups directive is Feb 10, 2009
src Use the correct name for this pool tag. May 29, 2018
tests Adding comment for my future self. Minor styling tweak for consistency. Jul 7, 2018
utils Fixed spelling errors Jan 9, 2018
.autom4te.cfg Bug#2549 - Allow contrib modules to be built from multiple source files. Jan 1, 2005
.gitattributes Add manual overrides, to stop mis-representing the language used for … Aug 16, 2015
.gitignore Issue #392: Refactor the LogFormat handling code into a new Jot API. Sep 17, 2017
.travis.yml Issue #679: Fix syntax error in Perl script. Mar 30, 2018
COPYING Updating FSF address, per Bug#3650. May 23, 2011
CREDITS Doc updates/tweaks. Dec 1, 2015
ChangeLog Updated ChangeLog. Mar 11, 2016
INSTALL Fixed mistake in configure localstatedir example Nov 19, 2017
Make.rules.in Issue #254: Introduce the Error API, for providing much more contextual Oct 8, 2017
Makefile.in Bug#3127: Support out-of-tree builds. Feb 9, 2017
NEWS Updating NEWS for bugfix as well. Aug 9, 2018
README.AIX Updating the AIX notes with remarks about gcc versions which do and d… May 24, 2006
README.FreeBSD Bug#2250 - Add ports, compiling info to FreeBSD README. Jun 5, 2005
README.LDAP git 9d4234fbd69: prevent segfault when no user filters are specified Dec 18, 2011
README.Solaris2.5x Use "ProFTPD", not "ProFTP". Jun 1, 2005
README.Unixware Unixware support and updated config.guess, config.sub files Feb 28, 2000
README.cygwin Adding note to Cygwin README to use Cygwin 1.3.22 or later, in order to May 29, 2003
README.md Update main README with new shield for 1.3.6 release. Apr 10, 2017
README.modules Adding the mod_log_forensic module to the source distribution. Jan 25, 2013
README.ports Adding FreeBSD 4.9-PRERELEASE to the list. Apparently the source works Aug 28, 2003
RELEASE_NOTES David Ordal reported a bug in the popular Rebex SFTP library. It is a… Nov 18, 2017
acconfig.h Remove HAVE_TIMER_T macro and timer_t detection mechanism Oct 9, 2015
aclocal.m4 Re-create our aclocal.m4 using the aclocal tool. Nov 18, 2009
config.guess Updating the config.guess and config.sub scripts, for supporting newer Aug 9, 2017
config.h.in Address the compiler warning about getgrouplist(3) on Mac OSX with some Nov 23, 2017
config.sub Updating the config.guess and config.sub scripts, for supporting newer Aug 9, 2017
configure Updated configure script. May 26, 2018
configure.in - Solaris provides structure statfs in sys/statfs.h, configure May 17, 2018
install-sh Updated the install-sh script. Nov 17, 2009
ltmain.sh Bug#3331 - Update bundled libtool to 2.2.4. Nov 17, 2009
stamp-h.in Added in stamp-h.in support. Aug 2, 2000




Build Status Coverage Status Coverity Scan Status Release License


ProFTPD is a highly configurable FTP daemon for Unix and Unix-like operating systems. See the README.ports file for more details about the platforms on which ProFTPD in known or thought to build and run.

ProFTPD grew from a desire for a secure and configurable FTP server. It was inspired by a significant admiration of the Apache web server. Unlike most other Unix FTP servers, it has not been derived from the old BSD ftpd code base, but is a completely new design and implementation.

ProFTPD's extensive configurability provides systems administrators great flexibility in user authentication and access controls, including virtual users and easy chroot() FTP sessions for individual users.

ProFTPD is popular with many service providers for delivering update access to user web pages, without resorting to Unix shell accounts.

Latest Release

see RELEASE_NOTES for an overview of the changes in this release.

Major Features

  • A single main configuration file, with directives and directive groups patterned after those of the Apache web server.

  • Per directory ".ftpaccess" configuration similar to Apache's ".htaccess".

  • Designed to run either as a stand-alone server or from inetd/xinetd.

  • Multiple virtual FTP servers and anonymous FTP services.

  • Multiple password files.

  • Shadow password support, including support for expired accounts.

  • Multiple authentication methods, including PAM, LDAP, SQL, and RADIUS.

  • Virtual users.

  • ProFTPD never executes any external program at any time. There is no SITE EXEC command, and all file and directory listings are generated internally, without using an external ls command.

  • Anonymous FTP and other chroot directories do not require any specific directory structure, executable programs or other system files.

  • Modular architecture with an API that facilitates well structured extensions to meet user needs.

  • Visibility of directories or files controlled based on Unix style permissions or user/group ownership.

  • Logging and utmp/wtmp support. Logging is compatible with wu-ftpd, and extended, customizable logging is available.

  • If supported by the capabilities the host system, it can run as a non-privileged user in stand-alone mode, thwarting attacks aimed at exploiting "root" privileges.

  • GPLv2 source license. The source code is available to audit.


Installation Overview

For detailed installation instructions, see the INSTALL file in the root directory of the source distribution.

The ProFTPD source distribution is designed to be configured using the GNU autotools, so compiling and installing follows the familiar command sequence of

$ ./configure
$ make
$ make install

However, a significant portion of ProFTPD's configurability is done at compile time, so it is highly recommended that you read INSTALL and all of the README.* files that pertain to your platform and desired features before building the sources.

ProFTPD uses a single configuration file. A few examples are included in the sample-configurations/ subdirectory of the source distribution.

On most systems, the inetd or xinetd configuration must be changed, either to remove the current ftpd entry to run ProFTPD standalone, or to change the current ftpd entry to use the proftpd daemon.


If you have questions, please ask them on the appropriate mailing lists.

If you don't understand the documentation, please tell us, so we can explain it better. The general idea is: if you need to ask for help, then something needs to be fixed so you (and others) don't need to ask for help. Asking questions helps us to know what needs to be documented, described, and/or fixed.