RHEL BasedRocky Linux

How To Install FTP Server on Rocky Linux 9

Install FTP Server on Rocky Linux 9

In this tutorial, we will show you how to install FTP Server on Rocky Linux 9.  File Transfer Protocol (FTP) is a standard network protocol used to transfer files between a client and server over a computer network. FTP is widely used for transferring files due to its simplicity and efficiency. This guide will walk you through the process of installing and configuring an FTP server on Rocky Linux 9 using VSFTPD (Very Secure FTP Daemon), known for its performance and security features.

Understanding FTP and VSFTPD

FTP operates on a client-server model, where the client initiates a connection to the server to upload or download files. The protocol runs on TCP/IP, typically using ports 21 for commands and 20 for data transfer. One of the most popular FTP servers is VSFTPD, which stands out due to its emphasis on security and speed.

VSFTPD is designed to be secure, stable, and fast, making it an excellent choice for both personal and enterprise environments. It supports various features such as virtual users, SSL/TLS encryption, and bandwidth limiting, allowing administrators to tailor the server to their specific needs.

Prerequisites for Installation

Before installing an FTP server on Rocky Linux 9, ensure that you have the following prerequisites:

  • A server running Rocky Linux 9.
  • Root or sudo privileges to install packages and configure services.
  • Basic knowledge of Linux commands and terminal usage.
  • An SSH client or terminal access to your server.

Step 1: Update Your System

Keeping your system updated is crucial for security and performance. Before installing any new software, update your package list by running:

sudo dnf update -y

This command ensures that all existing packages are up-to-date, minimizing potential conflicts during the installation of new software.

Step 2: Install VSFTPD

To install VSFTPD on Rocky Linux 9, execute the following command:

sudo dnf install vsftpd -y

This command downloads and installs the VSFTPD package along with any necessary dependencies. Once the installation is complete, start the VSFTPD service:

sudo systemctl start vsftpd

To ensure that VSFTPD starts automatically at boot time, enable it with this command:

sudo systemctl enable vsftpd

Step 3: Configure VSFTPD

The default configuration file for VSFTPD is located at /etc/vsftpd/vsftpd.conf. It’s essential to back up this configuration file before making any changes:

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

Edit the configuration file using your preferred text editor:

sudo nano /etc/vsftpd/vsftpd.conf

In this file, you’ll want to adjust several key settings:

    • Disable Anonymous Logins: By default, anonymous logins may be enabled. Disable them for security reasons by setting:
anonymous_enable=NO
    • Enable Local Users: Allow local users to log in by setting:
local_enable=YES
    • Enable Write Access: If you want users to upload files, enable write access with:
write_enable=YES
    • Chroot Local Users: To enhance security by restricting users to their home directories, add:
chroot_local_user=YES

After making these changes, save the file (in nano, press Ctrl + O followed by Enter) and exit (Ctrl + X).

Step 4: Secure Your FTP Server

Securitizing your FTP server is paramount. Start by configuring the firewall to allow FTP traffic. Use the following commands:

sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload

This command opens port 21 for FTP connections. Next, consider enabling FTPS (FTP Secure) to encrypt data transfers. In your vsftpd.conf file, add or modify these lines:

    • Enable SSL/TLS:
ssl_enable=YES
    • Force Local Data SSL:
force_local_data_ssl=YES
    • Force Local Logins SSL:
force_local_logins_ssl=YES
  • Create SSL Certificate:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem
chmod 600 /etc/ssl/private/vsftpd.pem
chmod 600 /etc/ssl/certs/vsftpd.pem

You will be prompted to enter details like country name and organization name; fill these out as needed. Finally, point VSFTPD to your SSL certificate in the configuration file by adding these lines:

# SSL Configuration
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Step 5: Create FTP Users

User management is critical for maintaining security on your FTP server. To create a new user who will have access to the FTP server, use the following commands:

sudo adduser ftpuser
sudo passwd ftpuser

This creates a new user named “ftpuser” and prompts you to set a password. Ensure that this user has appropriate permissions in their home directory. You can set permissions using the following commands:

sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser

Step 6: Testing the FTP Server

The next step is testing your FTP server to ensure it’s functioning correctly. You can test it using command-line tools or GUI clients like FileZilla or WinSCP.

  • If using command-line tools, connect using this command:
ftp your_server_ip
  • If using FileZilla or WinSCP, enter your server’s IP address and user credentials in the respective fields.
  • You should be able to log in successfully and perform upload/download operations.

Troubleshooting Common Issues

If you encounter issues while setting up or connecting to your FTP server, consider these common problems and solutions:

  • No Connection Established: Ensure that the firewall allows traffic on port 21 (FTP). Verify with:
    sudo firewall-cmd --list-all
  • Error: “Connection Refused”: Check if the VSFTPD service is running:
    sudo systemctl status vsftpd
  • User Authentication Failed: Ensure that you are entering correct credentials. Check if the user exists:
    wget --spider ftp://ftpuser@your_server_ip/
  • No Permission Errors: If users cannot upload files, ensure write permissions are set correctly on their home directories.
    Use:

    sud chmod 755 /home/ftpuser
  • SFTP vs FTPS Confusion: Remember that FTPS uses port 21 while SFTP uses port 22 (SSH). Ensure you’re connecting with the right protocol.

Congratulations! You have successfully installed the FTP server. Thanks for using this tutorial for installing the FTP server on Rocky Linux 9 system. For additional help or useful information, we recommend you check the official VSFTPD website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button