How to Set Up an FTP Server with vsftpd

File Transfer Protocol (FTP) allows for the easy transfer of files between a client and a server. In this guide, we will walk through the process of setting up an FTP server on Ubuntu using the lightweight and secure vsftpd (Very Secure FTP Daemon).

← Back

Step 1: Install vsftpd

First, you need to install the vsftpd package. Open your terminal and run the following command:

sudo apt update

Once the package list is updated, install vsftpd:

sudo apt install vsftpd

Step 2: Start and Enable vsftpd

After installation, you need to start the vsftpd service and ensure it starts automatically on boot:

sudo systemctl start vsftpd

To enable it to start on boot:

sudo systemctl enable vsftpd

Step 3: Check vsftpd Status

To check if the vsftpd service is running properly, use the following command:

sudo systemctl status vsftpd

If everything is configured correctly, you should see an output indicating that the service is active and running.

Step 4: Configure vsftpd

Now that the service is running, you can configure the FTP server by editing the vsftpd configuration file located at /etc/vsftpd.conf. Open the file with a text editor:

sudo nano /etc/vsftpd.conf

Some common settings to modify include:

Once you've made the changes, save and exit the file.

Step 5: Restart vsftpd

To apply the changes you've made to the configuration, restart the vsftpd service:

sudo systemctl restart vsftpd

Step 6: Allow FTP Through the Firewall

If you have a firewall enabled on your server, you'll need to allow FTP traffic. For UFW, you can allow FTP by running:

sudo ufw allow ftp

To allow secure FTP over TLS/SSL, use the following command:

sudo ufw allow ftp-secure

Step 7: Create a User for FTP Access

If you haven't already created a user for FTP access, you can do so with the following command:

sudo adduser username

Replace username with the desired username. You'll be prompted to set a password and additional information for the user.

Step 8: Testing FTP Access

Finally, test the FTP server by connecting to it from another machine or using the ftp command on your server. Run the following command from your local machine:

ftp server_ip_address

Replace server_ip_address with the actual IP address of your FTP server. When prompted, enter the username and password of the FTP user you created.

Conclusion

You've now set up an FTP server using vsftpd on Ubuntu, configured it for secure file transfers, and ensured it’s accessible through your firewall. Remember to regularly check for security updates and follow best practices for FTP security, such as disabling anonymous access and using secure FTP methods when possible.

← Back