FTP

How To Set Up vsftpd on CentOS 8: A Step-by-Step Guide

In today’s digital age, transferring files between servers and clients securely is critical for any organization. One of the most reliable and robust solutions for file transfer is the File Transfer Protocol (FTP). In this blog post, we will walk you through setting up vsftpd (Very Secure FTP Daemon) on CentOS 8. This lightweight and secure server is popular for its simplicity and configuration options.

Prerequisites

Before we begin the installation process, make sure you have the following:

  • A CentOS 8 server with root or sudo privileges.
  • Access to the command line interface (CLI).
  • An actively running firewall to secure your server.

With these prerequisites in place, let’s get started on setting up vsftpd!

Step 1: Update Your System

First, update your CentOS system to make sure all existing packages are up to date. Open the terminal and run the following command:

sudo dnf update

Once the update is complete, reboot your server if necessary.

Step 2: Install vsftpd

Now, we’ll install the vsftpd package. To do this, execute:

sudo dnf install vsftpd -y

After the installation is complete, start the vsftpd service:

sudo systemctl start vsftpd

To ensure vsftpd starts automatically upon system boot, run:

sudo systemctl enable vsftpd

Step 3: Configure vsftpd

The configuration file for vsftpd is located at /etc/vsftpd/vsftpd.conf. We’ll modify this file to enhance security and usability. First, create a backup of the original configuration file:

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

Now edit the configuration file:

sudo nano /etc/vsftpd/vsftpd.conf

Here are some important settings to consider:

  1. Enable Anonymous Access: Modify the line anonymous_enable=NO to anonymous_enable=YES if you want to allow anonymous users. For security reasons, it’s generally recommended to keep this disabled.
  2. Enable Local Users: Set local_enable=YES to allow local system users to log in.
  3. Enable File Uploads: Set write_enable=YES to allow users to upload files.
  4. Chroot Local Users: To enhance security by restricting local users to their home directories, set chroot_local_user=YES.
  5. Consider Disable SSL Settings: For security, it is recommended to use secure connections. Uncomment the following lines for SSL settings:
   # Uncomment the following lines to enable SSL
   ssl_enable=YES
   allow_anonymous_ssl=NO
   force_local_data_ssl=YES
   force_local_logins_ssl=YES

After making the changes, save and exit the editor (CTRL + O, then Enter to save, and CTRL + X to exit).

Step 4: Configure Firewall

If you have a firewall running, you will need to allow FTP traffic. Execute the following commands to open the FTP ports (21 for control and 20 for data transfer) in your firewall:

sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=20/tcp
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --reload

Step 5: Restart vsftpd

After making all configurations and setting up the firewall, restart vsftpd to apply the changes:

sudo systemctl restart vsftpd

Step 6: Create FTP Users (Optional)

If you want to create specific users for FTP access, you can do so with the following commands. Replace username with the desired username:

sudo useradd -m username
sudo passwd username

This command creates a new user and assigns a password.

Step 7: Test the FTP Server

Finally, let’s verify that our FTP server is functioning correctly. You can do this using an FTP client like FileZilla or the command line. To test using the command line, type:

ftp localhost

Enter the username and password that you created in the previous step. If the connection is successful, you will see the FTP prompt, and you can issue commands to transfer files.

Conclusion

Congratulations! You have successfully installed and configured vsftpd on CentOS 8. With the ability to transfer files securely and manage user access, vsftpd is a reliable choice for handling FTP needs. Always remember to keep your software updated and regularly check the configurations to maintain security.

If you have any questions or run into issues, feel free to leave a comment below. Happy file transferring!


By following these steps, you’re well on your way to a fully operational FTP server with vsftpd on CentOS 8, allowing you to securely manage file transfers for your applications and clients!