Bftpd

The Bftpd program is a small, easy-to-configure FTP server.
It strives to be fast, secure and quick to install and configure.

Menu

News

Downloads

Documentation

Contact Us


The Bftpd file server is designed to be as small and easy to manage as possible, while providing most of the features you would expect from a file server. On most home systems, Bftpd is ready to work out-of-the-box without requiring any extra configuration. Production systems can be set up by editing a few lines in an easy-to-read config file.

Bftpd has been reported to run on Linux, BSD, routers and machines running read-only file systems.



News
March 21, 2008: Stable release Bftpd-2.2
This release brings one small change over the previous development releases. Bftpd will not close connections when a client sends an incorrect username/password combination. Connections are closed if the server is full or the system is configured to deny logins.



February 25, 2008: Development release Bftpd-2.1.2
This update introduces a few small, handy features to bftpd. The first is that bftpd prompts for a password, even if the user is logging in as anonymous. This is to increase compatibility with various web browsers that expect the prompt.

The second change is that the User's MOTD varible in bftpd's config file can use two symbols (%u and %h) to represent the user's username and home directory.

A new option was added to the config file called SHOW_NONREADABLE_FILES which toggels whether files which cannot be read are listed to the client.

Some work was done to make bftpd's string handling more secure, sepcifically in the replace() function.

Many thanks to Eric Woltermann who provided patches and much assistance in driving this release forward.




February 16, 2008: Development release Bftpd-2.1.1
This development release brings two small bug fixes to bftpd. The first is a problem with the way permissions are applied to new directories. Thanks to Thiemo for pointing this out.

The second problem is a memory error which can occure when bftpd loads its configuration file. Thanks to Athan for pointing out this bug and providing a fix.

As usual, the latest release can be found on the downloads page.


November 25, 2007: Documentation Update
I am happy to report that we have received a translation of the Bftpd install and setup tutorial in the Czech language. Thank you to Martin for submitting this new doocument. You can find it on our documentation page.


November 4, 2007: Stable release Bftpd-2.1
This release brings one little change since bftpd-2.0.3. This is that the SITE command is disable by default in the configuration file. This is to prevent denial of service attanks via the "site md5 filename" command. This command can take a lot of CPU cycles on the server and it seemed a good idea to not allow it by default.

Some other testing was done leading up to this release. The tests showed that turning "CHANGE_BUFSIZE" off improves transfer speeds by around 20% and reduces CPU usage a few percent. Also, increasing the XFER_BUFSIZE value vasty increases transfer speeds. When operating with a single client, doubling the buffer size can double the transfer speed. These may seem obvious to experienced admins, but for those of you looking for a performance boost, XFER_BUFSIZE should be the first place to look.




October 23, 2007: Development release Bftpd-2.0.3
A small bug was found in Bftpd-2.0.x which causes bftpd to not compile properly on some 64-bit computers. This problem was traced back to the md5 code, which tries to detect on what kind of computer the server is running. Detection for amd64 machines was added. Also, if the processor type cannot be detected, bftpd assumes little-endian, which should be fine for most home and small business setups. Thanks to Holli for pointing out this bug.


October 17, 2007: Development release Bftpd-2.0.2
This release introduces two changes to bftpd. The first is a reversal in policy. After testing bftpd with a variable sized transfer buffer and with a fixed buffer size, the fixed size showed to be notably faster and a little easier on CPU. For this reason, bftpd will now default to a fixed transfer buffer size. You can change the behavior to a variable buffer size by setting the config file option CHANGE_BUFSIZE to yes.

The second change is that bftpd can now display hidden files in directory listings. By default hidden files are not shown, for brevity and security. It can be activated by setting the config file option SHOW_HIDDEN_FILES to yes.



October 2, 2007: Documentation Update
I am happy to annouce we now have a tutorial for setting up Bftpd, written in Portuguese-Brazilian. Many thanks to Daniel Zilli for providing this helpful walk-through. Please see the documentation page for the new tutorial.



September 29, 2007: Development release Bftpd-2.0.1
This test release of bftpd introduces a two new features and minor bug fixes. The new features are...

1. Added command site md5 filename, which will give the md5sum of a file on the server. This allows the client to know their file is not corrupted during download/upload.

2. Added new config file option CHANGE_BUFSIZE which controls whether the transfer buffer size changes as more or less clients connect. It defaults to yes which helps throttle bandwidth. If you generally have few clients connected at one time and wish to save CPU usage, set this option to no.



August 19, 2007: Stable release Bftpd-2.0
I am pleased to annouce the release of Bftpd-2.0. The 2.0 release has no new features compared to 1.9, however, it does come with a number of bug fixes and sanity checks in the code. I would like to thank the Calysto community for their work in helping the Bftpd project hunt down these bugs.

Looking past the 2.0 release, we are hoping to add some new features, improve the error messages sent to the client and continue to squash bugs.



August 13, 2007: New Documentation
Good documentation is an important part of any project. Daniel Zilli knows this and was kind enough to provide a tutorial on how to get the Bftpd file server up and running. The tutorial is aimed at beginners who would like to get a simple file server running on their Linux computer, but do not know where to start. The tutorial can be found on the Documentation page. Thanks Daniel!


August 11, 2007: Development release Bftpd-1.9.3
This is another minor development release. The effort to stamp out small memory bugs and catch errors continues. No features have been added or changed. Hopefully, this will be the last test release before the stable 2.0.


July 22, 2007: Development release Bftpd-1.9.2
This release fixes the remaining potential problems that were found by Calysto. No features were added and no behavior changes were made. This should be a tame release.


June 18, 2007: Development release Bftpd-1.9.1
I was approached by a member of the Calysto community recently with the offer to check Bftpd for coding errors. In return, I was asked to put a link to the Calysto community website on the Bftpd site. This seemed like a fair trade to me, and so you see the green check to the left. This development release addresses most of the problems Calysto found in the Bftpd code.

Please test this new release and send me an e-mail if any problems were introduced with the bug fixes.


May 30, 2007: Stable release Bftpd-1.9
The release of Bftpd, version 1.9, is here. This release focuses on fixing some bugs, such as correctly displaying large file sizes, fixing some memory bugs and writing better error messages to the log file when something goes wrong. This release of Bftpd also improves compatibility with FreeBSD, which was broken in version 1.8. The FreeBSD patch from their Ports tree has also been merged to make Bftpd work with OpenPAM.

A lot of credit must be given to Beech of the FreeBSD team and Mats Erik for all their hard work in helping to find and fix bugs. Thanks folks!



May 24, 2007: Development release Bftpd-1.8.4
In the spirit of co-operation, this release focuses on making Bftpd build on FreeBSD. Also, directory listings now display file sizes larger than 4GB properly and Bftpd will detect dropped file transfers and log their occurance.


May 6, 2007: Development release Bftpd-1.8.3
This release is a minor update which makes small improvements to the Bftpd code. Changes include some updated documentation for xinetd setups. Also, when the bftpdutmp log file cannot be created, an error is written in the log file. Files in the directory listing which are larger than 1GB should be displayed properly, if your system supports large files.


April 17, 2007: Development release Bftpd-1.8.2
This development release contains a few minor bug fixes. A few memory leaks were fixed and a problem which could cause the server to crash has been fixed. As development releases go, this should be a fairly stable one. Please test and send me your feedback.


April 10, 2007: Bftpd-1.8
Important update!
There is a serious flaw in bftpd-1.7 which may cause Bftpd to crash during file transfers being sent to the client. This usually happens when the client issues an mget command, but can also occur in regular get cases. To correct this problem, and to address a few other minor bugs, Bftpd-1.8 has been released ahead of schedule. Please update to Bftpd-1.8 as soon as possible to correct this flaw.

It is believed that only Bftpd-1.7 and later development versions of Bftpd-1.6 were effected by this bug. Bftpd-1.6 and earlier should not be effected.



March 27, 2007: Bftpd-1.7
After several months of tweaks and improvements, the 1.7 stable release of Bftpd is ready for download. This release can be downloaded in source or rpm format.

Since the previous stable release, we've added better compatibility for large files, increased security, especially where chroot is concerned, and added the ability to have anonymous users when using plain-text file authentication. Some memory leaks were corrected and passive mode has been improved. Please take a look at the change log for more information.

If you find a bug in Bftpd, please let me know.




March 2, 2007: Bftpd-1.6.6
This development release of Bftpd tries to fix a few minor bugs, namely memory leaks and memory allocation. Hopefully this will make Bftpd lighter. Please keep in mind this is a development release and not recommended for production systems.


Feb 25, 2007: Website Update
You may have noticed the Bftpd website has a new, more simple look. Removing the PHP code and starting the site from scratch has been on my to-do list for some time. This change is partly to make the site more flexible, faster and more secure. I may add some graphics and a better layout later, but for now I just want to convert the site from PHP before the month of PHP bugs hits.



Feb 24, 2007: Bftpd-1.6.5
Due to some new development work and quick changes, the Bftpd team skipped the 1.6.4 release. We're jumping right in to 1.6.5 with some new features and fixes. Please note that this is a development release and is not recommended for production systems.

New to this release are:
When a chroot() call fails, Bftpd will no longer tell the client what directory we were trying to chroot to.

For systems using plain text file authorization, an important change. The password file will now accept wildcard passwords, effectively allowing for anonymous users. Please review the change log for a list of other changes in Bftpd.



Jan 20, 2007: Bftpd-1.6.3
The development package Bftpd-1.6.3 has been released. This is an unstable release which tests two new features. The first allows the admin to force Bftpd to send a specific IP address when the client requests passive mode. Please check the option override_ip in the bftpd.conf file. The second allows the server admin to run a script before and after each release. This may be handy if you wish to re-mount your file system before and after each write. Please see the bftpd.conf file, options pre_write_script and post_write_script.


Jan 14, 2007:
A spammer has flooded our news database with garbage. As a result, I am taking down the news posts that were previously here. If you'd like to share something with the developers, please e-mail it to jessefrgsmith@yahoo.ca. I will try to re-post the important news bullets here over the next week.


Jan 6, 2007: Bftpd-1.6.2
This development release corrects a problem when the server is using plain-text authentication. When using the FILE_AUTH option, the server now checks before performing a chroot().


Dec 31, 2006: Bftpd-1.6.1
Due to a compatiblity problem between 64-bit file sizes and some versions of the sendfile() function, the sendfile code has been replaced.


Nov 26, 2006: Bftpd-1.6
Released the Bftpd source package with updated Polish documentation. No code changes appeared in this release.


July 21, 2006: Bftpd-1.5
Added Polish documentation to website. Released stable version of Bftpd. No new features from 1.4.1.


July 4, 2006: Bftpd-1.4.1
This release adds the ability to use a plain-text file for user authentication. Please see the FILE_AUTH option in bftpd.conf for details.


April 25, 2006: Bftpd-1.4
This release fixes some issues in the default configuration. It also cleans up some compiler warnings for a vanilla config.