Installing and Configuring VSFTPD Server in Ubuntu

Posted on February 23rd, 2014

Posted By Muktesh Ashdhir | Comments


VSFTPD stands for “Very Secure FTP Daemon” is a GPL licensed FTP server for UNIX systems. It is licensed under the GNU General Public License. It supports IPv6 and SSL.vsftpd supports explicit (since 2.0.0) and implicit (since 2.1.0) FTPS. vsftpd is the default FTP server in the Ubuntu, CentOS, Fedora, NimbleX, Slackware and RHEL Linux distributions. It is secure and extremely fast. It is stable. VSFTPD is a very trusted solution which supports virtual users with PAM (pluggable authentication modules). A virtual user is a user login which does not exist as a real login on the system in /etc/passwd and /etc/shadow file. Virtual users can therefore be more secure than real users, because a compromised account can only use the FTP server but cannot login to system to use other services such as SSH or SMTP.

The FTP is using is the connection controlling TCP (Transmission Control Protocol) as transmission protocol which assures the arrival of the data at the recipient. Therefore there is no need for FTP to be concerned about paket loss or error checking during the data transfer. Simply expressed TCP makes sure that each data paket is arriving only once – without errors and in the correct (2)

Advantages of VSFTPD Server

  • Virtual IP configurations
  • Virtual users
  • Standalone or inetd operation
  • Powerful per-user configurability
  • Bandwidth throttling
  • Per-source-IP configurability
  • Per-source-IP limits
  • IPv6
  • Encryption support through SSL integration…


How To Install FTP Server in linux

Its not very hard to install VSFTPD in ubuntu, all you need to do is to just run the following command given below:

apt-get install vsftpd


How To Configure FTP Server

The configuration file may be found under “/etc/vsftpd.conf”. Like with most configuration files comments are being marked with an initial hash key.

# Comment line

An examplary configuration could look like this:

# Anonymus FTP-access permitted? YES/NO

# Permit anonymus upload? YES/NO

# Permission for anonymus users to make new directories? YES/NO

# Permission for anonymus users to do other write operations – like renaming or deleting? YES/NO

# Log on by local users permitted? YES/NO

# Shall local users be locked into their home directory? YES/NO

# Highest permitted data transfer rate in bytes per second for local logged on users. Default = 0 (unlimited)

# General write permission? YES/NO

# Enable messages when changing directories? YES/NO

# Welcome banner at users logon.
ftpd_banner=”Welcome to neo5k’s FTP service.”

# Activate logging? YES/NO

# Logging of all FTP activities? YES/NO
# Careful! This can generate large quantities of data.

# Confirm connections are established on port 20 (ftp data) only. YES/NO

# Timeout during idle sessions

# Data connection timeout

# Access through Pluggable Authentication Modules (PAM)

# Standalone operation? YES/NO – depending on operation mode (inetd, xinetd, Standalone)
# The author’s FTP service is being startet with xinetd, therefore the value here is NO.


Get Started with the FTP-service

vsftpd may operate in three different ways. One is through inetd or xinetd, the third is standalone operation. 


If the FTP service shall be operated with inetd we open the configuration file “/etc/inetd.conf” with an editor:

root@domain> vi /etc/inetd.conf

We search for the lines pertaining to the FTP services and remove the comment mark in front of the vsftpd entry. If there is no such entry we may enter it. After that we have to restart inetd. The entry should look like this:

# ftp   stream   tcp   nowait   root   /usr/sbin/tcpd   in.ftpd
ftp   stream   tcp   nowait   root   /usr/sbin/tcpd   vsftpd


It is recommended to start the vsftp daemon with xinetd which is more up to date than inetd. Some updates are e.g. logging of requests, access control, binding of the service to a specific network interface and so on. A very good introduction to xinetd can be found under [7]. After the modification restart of xinetd is necessary. The configuration of xinetd could look like this:
# vsftp daemon.
service ftp
     disable = no
     socket_type = stream
     wait = no
     user = root
     server = /usr/sbin/vsftpd
     per_source = 5
     instances = 200
     no_access =
     banner_fail = /etc/vsftpd.busy_banner
     log_on_success += PID HOST DURATION
     log_on_failure += HOST
     nice = 10


There is also the possibility to operate the vsftp daemon in standalone mode. For this we open again the file “/etc/vsftpd.conf” and make the following changes:

# Shall the vsftp daemon run in standalone operation? YES/NO

After that entry the daemon can be startet with following entry

root@domain> /usr/sbin/vsftpd &

If the search path has been entered correctly this entry will do the start

root@domain> vsftpd &

With the next entry we can check if the search path was entered correctly:

root@domain> echo $PATH

In standalone mode we have, of course, to watch that the vsftp daemon is not startet with inetd or xinetd.



After successful installation and configuration we are able to access our FTP server for the first time.

root@domain> ftp phobos
Connected to phobos
220 "Welcome to neo5k's FTP service."
Name (phobos:neo5k): testuser
331 Please specify the password.
230 Login successful
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -l
229 Entering Extended Passive Mode
150 Here comes the directory listing
drwxr-xr-x      11  500      100        400  May 07 16:22  docs
drwxr-xr-x       9  500      100        464  Feb 01 23:05  hlds
drwxr-xr-x      39  500      100       4168  May 10 09:15  projects
226 Directory send OK.


As we see that VSFTPD is quite easy to install and configure and it also offers many features and high security.


If you have any query related to article so, you can always contact us through ticket/phone and please do not forget to share or the like the article.

About Muktesh Ashdhir - Muktesh Ashdhir is a B.Com graduate student with economics and currently preparing for the entrance exams for M.B.A