• sudo apt-get install vsftpd
  • vi /etc/vsftpd.conf
  • write_enable=YES
  • local_enable=YES
  • pam_service_name=ftp
  • sudo /etc/init.d/vsftpd restart
  • Setting the default permissions for files uploaded via FTP to a directory

    change your umask setting to 022   Additional configuration on ec-2 insatnce https://www.gosquared.com/blog/fix-ftp-passive-mode-problems-on-amazon-ec2-instances   For a while I was forced to connect to FTP (an installation of VSFTP) on our EC2 server using Active mode, because passive mode refused to work. While this is OK for FTP clients that can be configured to use active mode, other utilities such as screen capture (e.g. Jing) and the wordpress auto-upgrade could not work with active mode, causing all sorts of erroneous malarky. If you’re getting errors such as “227 entering passive mode… Connection [Failed/Timed out]” this may work for you   I decided enough was enough and set about problem-solving: the developer’s favourite. It turns out, as usual, the problem relates to the ports the EC2 firewall opens for its instances, namely, none at all. Since passive mode connects to any random port > 1023, this is a problem. So, what you will need to do is define a fixed port range for VSFTP to use for PASV connections and then allow these in your “Security Groups” firewall rules. Note: This method will probably work on any server, just add the config settings and then open the correct ports in your software firewall or router 1. Specify a port range in which VSFTP will run PASV connections Add the following lines to your vsftpd.conf file: pasv_enable=YES pasv_max_port=12100 pasv_min_port=12000 port_enable=YES You also need to add an extra line to specify which IP address VSFTP will advertise in response to a passive connection, so underneath the lines you’ve already pasted in vsftpd.conf, put: pasv_address={your public IP address} OR if you don’t have a fixed elastic IP address: pasv_addr_resolve={your public domain or DNS} 2. Authorise required ports in a security group that applies to your instance This can be done via the AWS management console (Amazon’s EC2 web control panel), or in your own console: ec2-authorize default -p 20-21 ec2-authorize default -p 12000-12100 Now restart vsftpd by typing /etc/init.d/vsftpd restart in your server’s terminal. If all goes well and it’s your lucky day, passive connections should now work properly.