Create FTP user for VSFTPD (Very Secure File Transfer Protocol Daemon) server
Prerequisites
- AWS console access
- EC2 Instance access
Let’s start
- We need to install VSFTPD package if you have already installed then you can skip the installation steps.
Amazon Linux and CentOS
sudo yum install vsftpd -y
Ubuntu and Debain
sudo apt install vsftpd -y
- Now we need to modify the configuration file created by vsftpd as below
-
- You can get the conf file at /etc/vsftpd/vfstpd.conf in Amazon linux and Centos
-
- And for Ubuntu and Debian the conf file is located at /etc/vsftpd.conf
- Once you get the file location you can edit the using vi or vim editor as below
sudo vi /etc/vsftpd.conf
- Change the variables in the conf file as needed for your environment
anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=NO xferlog_std_format=YES chroot_local_user=YES allow_writeable_chroot=YES chroot_list_file=/etc/vsftpd/chroot_list listen=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO listen_port=8021 pasv_enable=YES pasv_min_port=8000 pasv_max_port=8050 pasv_addr_resolve=YES
pasv_address=yourdomain.com - replace it with our domain
Important:
The default FTP port is 21. I have configured the custom FTP port 8021 in the above configuration file. You can configure the value of your own choice and make sure you that you listen_port is not commented and set connect_from_port_20 to NO. And also verify that the port that you are using is also active in your firewall and added in the Security Groups.
- Now Run the following command to add the FTP use
sudo adduser --home /home/usr_1 usr_1
Note: usr_1 is the username I have created. You can use of your choice
- Run the following command to create a password for the user:
sudo passwd usr_1
- Run the following command to change the ownership of the /home/usr_1 file. This command makes usr_1 the file owner.
sudo chown usr_1:usr_1 -R /home/usr_1/
- Run the following command to add the new user to the vsftpd user_list. Use the -a flag to append to the file.
Amazon Linux 2 and CentOS
sudo echo "usr_1" | sudo tee -a /etc/vsftpd/user_list
Debian and Ubuntu
Run the following command to create the userlist file and add the new user to the file:
sudo echo "usr_1" | sudo tee -a /etc/vsftpd.userlist
- Restart the vsftpd service:
sudo systemctl restart vsftpd
- Connect to the FTP server.