Installing VSFTPD on Ubuntu 14.04 Amazon EC2 Instance

Note: I had a brand new server and needed to run sudo apt-get dist-upgrade before installing the server to get all packages up to date. These steps don't take into account best practice security considerations. These are merely basic steps to get an FTP server up and running quickly.

Install the server.

sudo apt-get install vsftpd

Let's check to make sure the server is up and running before making any changes.
sudo netstat -a | grep ftp

If you see this after running the netstat command then life is good. If not, you'll need to troubleshoot why the server is not starting.

tcp        0      0 *:ftp                   *:*                     LISTEN

Make a backup copy of the config file just in case
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup

Add the following to the end of the /etc/vsftpd.conf file

pasv_enable=YES
pasv_min_port=13000
pasv_max_port=13100
port_enable=YES
pasv_address=[public dns from the amazon EC2 instance]
pasv_addr_resolve=YES

Now time to edit a couple other variables in the config file. The first one is write_enable which defaults to NO. Change this to YES so that you can upload files to the server. If you don't do this and try to upload something (i.e. from FileZilla) you will likely see an error message like, "Error: Critical file transfer error"

# Uncomment this to enable any form of FTP write command.
write_enable=YES

And if you want local users the ability to login, uncomment the local_enable line
# Uncomment this to allow local users to log in.
local_enable=YES

Save the file and restart the server.
sudo service vsftpd restart

Should see something like this
vsftpd stop/waiting
vsftpd start/running, process 1649

You will need to open up ports both on your server instance and via the Amazon security group to be able to connect. In this example:

TCP Ports 13000 - 13100
TCP Ports 20 - 21

References