How to configure vsftpd in EC2

Vsftpd, is an FTP server for Unix-like systems, including Linux. It is licensed under the GNU General Public License. It supports IPv6, TLS and FTPS. It is the default FTP server in the Ubuntu, CentOS, Fedora, NimbleX, Slackware and RHEL Linux distributions.

This article explains the detailed steps to install and configure vsftpd in AWS EC2 instance.

Step1: Login to your AWS EC2 instance via ssh

Step2: Switch to root user

sudo su -

Step3: Install vsftpd

yum install vsftpd

Step4: Modify the following line in configuration file '/etc/vsftpd/vsftpd.conf' to disable anonymous FTP.


Step5: Add the following lines to configuration file '/etc/vsftpd/vsftpd.conf' inorder to enable passive mod.

pasv_address=<Public IP of instance>

Here we have to replace the public ipaddress of the EC2 instance.

Step6: Modify the following line in configuration file '/etc/vsftpd/vsftpd.conf' to restrict the users to their home directories.


Step7: restart vsftpd service

/etc/init.d/vsftpd restart

Step8: Create a user for ftp

adduser awsftpuser

Step9: Change the user's home directoy to document root

usermod -d /var/www/html awsftpuser

Step10: Add ftp user to the httpd service group

usermod -a -G awsftpuser

Here we need to update the name of the httpd service group accordingly.

Step11: Open up the FTP ports on your EC2 instance security group

Log in to the AWS EC2 Management Console and select Security Groups from the navigation tree on the left. Select the security group assigned to your EC2 instance. Then select the Inbound tab, then click Edit:. Add two Custom TCP Rules with port ranges 20–21 and 1024–1048. For Source, you can select 'Anywhere'.

That's all...

Leave a Reply