Probably the most secure and fastest FTP server for UNIX-like systems.

Jan 30, 2007 10:41 GMT  ·  By

FTP, or File Transfer Protocol, is used to connect two computers over a network or over the Internet, so that the user of one computer can transfer files and perform file commands on the other computer. A FTP Server listens on the network for connection requests from other computers. The client computer which is running a FTP Client, initiates the connection to the server. Once connected, the client can do a number of file manipulation operations such as uploading files to the server, download files from the server, rename or delete files on the server and so on.

A number of FTP Servers are available for Linux, each with their own up and down sides. When choosing a FTP server, a network administrator would first look for two main functions: speed and security. vsftpd (Very Secure File Transfer Protocol Daemon) is a FTP server for Unix and Linux systems that was built specifically to meet these requirements. Among the most important sites currently using vsftpd as their FTP server, we can mention: ftp.redhat.com, ftp.kernel.org, ftp.gnome.org and so on. This demonstrates that vsftpd is a stable, mature and trusted solution. vsftpd is also free, licensed under GPL.

Installing in Ubuntu:

code
apt-get install vsftpd
For other distributions, use your package manager (eg. Fedora: yum install vsftpd). Alternatively, get the source code package, compile and install it.

Configuring vsftpd

vsftpd can be configured through the configuration file located at /etc/vsftpd.conf. Every directive is well explained and has a value set as default (which suits all needs and systems). However, you should take a look over several options, which are more important than others:

ftpd_banner: Prints a welcome message when someone connects to the server. listen: If enabled, vsftpd will run in standalone mode. xferlog_enable: If enabled, a log file will store detailed uploads and downloads. connect_from_port_20: This option controls whether PORT style data connections use port 20 on the server machine. hide_ids: If enabled, all user and group info will be listed as "ftp". max_client: Sets the maximum number of clients allowed to be connected. Only works in standalone mode. max_per_ip: Sets the maximum number of clients allowed to be connected from the same IP address. Also, only works in standalone mode. anon_root: Sets the directory which vsftpd will try to change into when an anonymous user logs in. anonymous_enable: Enables or disables anonymous access. Use with caution. anon_upload_enable: If enabled, anonymous users will be permitted to upload files. anon_mkdir_write_enable: If enabled, anonymous users will be permitted to create new folders. However, for this option to work, your server needs to have the option anonymous upload enabled and the ftp *NIX user must write permissions on the parent directory.

Web Interface or GUI tool

If you want to manage vsftpd from a graphical environment, either install the vsftpd module for Webmin (download here) or the vsftpd module for KDE Control Center (download here).