FTP, stands for File Transfer Protocol is a protocol designed to allow transferring files between computers over the internet or LAN. Over the time, it slowly became one of the most popular way to move data from/to a server.
In order to serve files from the disk through FTP, you need to install a FTP server. This article is going to round up a list of the best FTP server software for Linux.
One thing you need to keep in mind is the fact that FTP doesn't provide as much security measures as other network protocols. If you need to serve sensitive files, consider switching to SFTP - the more advanced version using the same core technology. SFTP runs file transfer through SSH connections, which enables a protected and reliable data stream.
ProFTPd - secure FTP server for Linux
ProFTPd is a popular open source, command-line based FTP server. It is designed with security and configurability in mind, and is widely known for its highly configurable settings.
Unlink most of the FTP servers for Linux and Unix, ProFTPd does not comes from the old
ftpd codebase, but written from scratch with a completely new implementation and design. ProFTPd is written in C, ensuring the high performance of the software.
ProFTPd is popular with many service providers for delivering update access to user web pages, without resorting to Unix shell accounts.
ProFTPd notable features
- ProFTPd is open source, audited and maintained by the community and released under GNU General Public License v2.0 license.
- Settings are stored in a single configuration file, with a syntax similar to the Apache web server.
- Each directory can be further configured with an
.ftpaccessconfiguration file inside, similar to how
.htaccessdeclare directory-specific settings in Apache.
- Can be ran either as a stand-alone server or from
- Multiple password files, supports shadow passwords and expired accounts.
- Users can authenticate using multiple methods, such as PAM, LDAP, SQL, and RADIUS.
- ProFTPd allows for multiple virtual FTP servers, as well as virtual users and anonymous FTP authentication.
- ProFTPd logging is extensible, also supports utmp/wtmp.
- As an additional security measures, ProFTPd does not allow executing any external program, nor calling any executable internally.
SITE EXECcommand removed, all file and directory listings are generated internally, without using calling
lscommand from the system.
- Anonymous FTP and other chroot directories do not require any specific directory structure, executable programs or other system files.
- Directories and files can be shown or hidden using the built-in Linux ownership or Unix style permissions.
- In supported platform, ProFTPd can be ran as a non-privileged user, which eliminates the chance for an elevated privileges attack.
- Runs on all major platforms, namely Linux, Mac OS X, NetBSD, Solaris, IRIX, AIX, and many others.
- ProFTPd was designed with a modular design. Available modules including SQL databases, LDAP servers, SSL/TLS encryption, RADIUS support, etc. Customized solutions can be easily developed by writing extended modules.
Pure-FTPd - modern, cross-platform FTP server
Pure-FTPd is a free, open source FTP server which aimed primarily at Unix/Linux operating system. The program has even been ported to Android. Pure-FTPd was designed with security in mind, and thanks to the open nature of it, the codebase is always up-to-date and audited for exploits by the community. Pure-FTPd installation is easy, in fact, a beginner can get a Pure-FTPd based FTP server up and running in under 5 minutes without much configuration other than the default values.
- Can be ran as non-root user as an extended security measure. Supports built-in chroot() emulation and virtual users.
- Pure-FTPd supports SSL/TLS encryption with OpenSSL library.
- Compiles and runs natively on Linux, MacOS, OpenBSD, NetBSD, DragonflyBSD, FreeBSD, Solaris and derivatives, Tru64, Irix, HPUX and AIX. Pre-built binary packages are available for many different operating systems.
- Server messages are available in many languages, including English, German, Romanian, French, Polish, Spanish, Danish, Dutch, Italian, Brazilian Portuguese, Slovak, Korean, Swedish, Norwegian, Russian, Traditional Chinese, Simplified Chinese, Czech, Turkish, Hungarian and Catalan. Users can further translate these messages into other languages easily.
- Automatically hide dot-files such as
.envfiles to anonymous users by default, avoiding common brute-forcing attacks against FTP server configuration files.
- Companion FTP server analytics program available. Running
pure-ftpwhocommand shows a table with active sessions, user bandwidth, filenames, locations, and many details about the server.
- Supports FXP (server-to-server) protocol, which is used to transfer data from one server to another from a client, without the client passing the data.
- Limitations to the number of simultaneous users, bandwidth, hide system files, upload/download ratios, custom login messages can be further managed by editing the configuration file.
- Disk quota feature allows defining the maximum percentage of disk the FTP server can fill up. New uploads will be disallowed once this percentage is reached.
- Configurations can be easily enabled/disabled using command line switches instead of editing config files.
- Supports advanced and modern features such as MLST/MLSD (extensible and mirror-safe directory listings), IPv6, EPSV/EPRT IPv6 protocol extensions,
ESTPto enhance connection stability.
- Pure-FTPd can restrict the port range for passive connections, force the announced IP for masquerading gateways, or disable passive connections to deal with broken port forwarders.
- Supports running multiple Pure-FTPd servers with different settings can run on the same host.
- Symbolic links can be followed when users are chrooted, even when they are pointing out of the chroot jail. This unique feature makes shared content easy to set up.
- And many other great features...
vsftpd - Very Secure FTP client for Linux
vsftpd, stands for very secure FTP daemon, is a CLI FTP server for Linux. It was so popular that it's now bundled as part of the standard packages on Ubuntu, CentOS, Fedora, NimbleX, Slackware and RHEL Linux distributions. vsftpd is freely released under the GNU General Public License.
- Stable, secure and extremely fast.
- Supports PAM (pluggable authentication modules) which allows managing multiple virtual users.
- Great scalability, in fact
ftp.redhat.comand many other Linux repository FTP mirror is powered by vsftpd.
- vsftpd can handle virtual IPD configurations, encryption support with SSL integration
- Can operate on its own or from
- Powerful per-user configurability
- Bandwidth throttling
- Configuration and limits can be customized to apply to specific IPs or users.
- Supports encryption through SSL integration.
Unfortunately, there is little development for a GUI for vsftpd configurations. Since vsftpd is extremely extendable, it's hard to integrate all the settings into a single GUI. However, you can check out vsftpdGUI to see if it fits your requirements. Also, if you're using Webmin, there are several vsftpd Webmin third party modules to choose from.
bftpd is a lightweight, versatile FTP server that is meant to function right out of the box with little or no setup. Beginners may simply install bftpd and get a FTP server up and running without any manual configuration.
bftpd is designed to run as smoothly and securely as possible. Thanks to its nifty size, bftpd can run on a wide range of platforms, including computers, servers, embedded devices, and media centers. The program may be futher configured to operate in read-only file systems, making it appropriate for use with live CDs. bftpd officially supported Linux, FreeBSD, NetBSD, Solaris, and MINIX.
bftpd can be ran in either standalone or
- Easy to use and user-friendly configuration.
- Written in C, ensuring stellar performance.
- Support most FTP commands according to RFC protocol standard.
- In-the-fly compression/archiving with .tar.gz files.
- Built in chroot support without user configuration.
- Extensive logging system, can log to logfile or syslog, supports wtmp logging/
- Support for SITE CHOWN/CHMOD.
- Runs natively on Linux, BSD/OS, FreeBSD, and many other operating systems.
We hope that the information above help you find the suitable Linux FTP Server software to install.
You may be interested in our Linux software roundups, including 8 Best Open Source CMDB software, Best Linux Video Converters, Best Linux Home Security Software.
If you have any suggestion, please feel free to leave a comment below.