How To Install an FTP Server on CentOS 7 With VSFTPD

Introduction

FTP (File Transfer Protocol) is a popular method of transferring files between two remote systems. It is a client-server protocol that allows users to upload and download files to and from a server over a network. If you are running a CentOS 7 server, you can easily install and configure an FTP server using VSFTPD (Very Secure FTP Daemon). VSFTPD is a secure and fast FTP server for Unix-like systems, including CentOS. In this tutorial, we will show you how to install and configure VSFTPD on a CentOS 7 server. We will also cover how to secure your FTP server and how to create FTP users.

How To Install an FTP Server on CentOS 7 With VSFTPD

1. Update the system:

sudo yum update

2. Install VSFTPD:

sudo yum install vsftpd

3. Start the VSFTPD service and enable it to start on boot:

sudo systemctl start vsftpd

sudo systemctl enable vsftpd

4. Configure the firewall to allow FTP traffic:

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

sudo firewall-cmd –reload

5. Create a new user for FTP access:

sudo useradd -m ftpuser

6. Set a password for the new user:

sudo passwd ftpuser

7. Configure VSFTPD to allow the new user to access the FTP server:

sudo vi /etc/vsftpd/vsftpd.conf

Add the following lines to the end of the file:

userlist_enable=YES

userlist_file=/etc/vsftpd/user_list

userlist_deny=NO

Save and close the file.

8. Create a file containing the list of users allowed to access the FTP server:

sudo vi /etc/vsftpd/user_list

Add the following line:

ftpuser

Save and close the file.

9. Restart the VSFTPD service:

sudo systemctl restart vsftpd

10. Test the FTP connection:

ftp localhost

You should be prompted for the username and password. Enter the username and password of the new user to log in.

Introduction

If you are looking to install an FTP server, you can’t beat the simplicity of VSFTPD.

FTP stands for File Transfer Protocol. It has been a standard method for transferring files between computers for decades.

Although security measures have been added, FTP is by nature an insecure method for transferring files. However, it can be useful when making files available to multiple users, or when working in a secure and private network.

This guide will show you how to configure and install an FTP server using VSFTPD on CentOS 7.

installing FTP on CentOS tutorial

Prerequisites

  • Access to a user account with sudo privileges
  • The yum package manager, installed by default
  • A text editor of your choice

Install FTP Server on CentOS 7

Step 1: Install FTP Service with VSFTPD

1. Start by updating the package manager:

sudo yum update

Allow the process to complete.

This guide uses the VSFTPD (VSFTPD stands for “Very Secure FTP Daemon software package”). It’s a relatively easy software utility to use for creating an FTP server.

2. Install VSFTPD software with the following command:

sudo yum install vsftpd

When prompted, type Y to allow the operation to complete.

Terminal command to install vsftpd on CentOS.

3. Start the service and set it to launch when the system boots with the following:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd
This image shows how to start and enable the vsftpd service upon install.

4. Next, create a rule for your firewall to allow FTP traffic on Port 21:

sudo firewall-cmd --zone=public --permanent --add-port=21/tcp
sudo firewall-cmd --zone=public --permanent --add-service=ftp
sudo firewall-cmd –-reload
Once vsftpd is installed, configure the firewall to allow traffic on Port 21.

Note: If you use a different firewall application, refer to the documentation to configure it correctly for Port 21. Also, some FTP clients use Port 20, so you may wish to include that rule as well. Simply copy the first line, and replace 21 with 20.

Step 2: Configuring VSFTPD

The behavior of the FTP service on your server is determined by the /etc/vsftpd/vsftpd.conf configuration file.

1. Before starting, create a copy of the default configuration file:

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.default

This ensures that you have a way to return to the default configuration, in case you change a setting that may cause issues.

2. Next, edit the configuration file with the following command:

sudo nano /etc/vsftpd/vsftpd.conf

3. Set your FTP server to disable anonymous users and allow local users.

Find the following entries in the configuration file, and edit them to match the following:

anonymous_enable=NO
local_enable=YES
The configuration file options in this image enhance vsftpd security on your server.

This is an important step. Anonymous access is a risky – you should avoid it unless you understand the risks.

4. Next, allow a logged-in user to upload files to your FTP server.

Find the following entry, and edit to match as follows:

write_enable=YES

Note: By default, this line starts with a # sign to indicate it’s a comment. Commenting is a useful way to turn commands on and off. The # sign can also be used to make notes in the file without the system interpreting them as instructions.

5. Limit FTP users to their own home directory. This is often called jail or chroot jail. Find and adjust the entry to match the following:

chroot_local_user=YES
allow_writeable_chroot=YES

Note: for test purposes, the allow_writeable_chroot=YES option will create a functioning FTP server that you can test and use. Some administrators advocate the use of the user_sub_token option for better security.

Refer to the vsftpd documentation for more information on this option.

6.The vsftpd utility provides a way to create an approved user list. To manage users this way, find the userlist_enable entry, then edit the file to look as follows:

userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO

You can now edit the /etc/vsftpd/user_list file, and add your list of users. (List one per line.) The userlist_deny option lets you specify users to be included; setting it to yes would change the list to users that are blocked.

7. Once you’re finished editing the configuration file, save your changes. Restart the vsftpd service to apply changes:

sudo systemctl restart vsftpd

Step 3: Create a New FTP User

1. To create a new FTP user enter the following:

sudo adduser testuser
sudo passwd testuser

The system should prompt you to enter and confirm a password for the new user.

2. Add the new user to the userlist:

echo “testuser” | sudo tee –a /etc/vsftpd/user_list

3. Create a directory for the new user, and adjust permissions:

sudo mkdir –p /home/testuser/ftp/upload
sudo chmod 550 /home/testuser/ftp
sudo chmod 750 /home/testuser/ftp/upload
sudo chown –R testuser: /home/testuser/ftp
How to assign permissions to an ftp user.

This creates a home/testuser directory for the new user, with a special directory for uploads. It sets permissions for uploads only to the /uploads directory.

4. Now, you can log in to your FTP server with the user you created:

ftp 192.168.01

Replace this IP address with the one from your system. You can find your IP address in Linux with the  ip addr  command.

The system should prompt you for a username – enter whatever username you created earlier. Type the password, and the system should log you in.

Note: phoenixNAP Knowledge Base also features the following FTP server setup guides using VSFTPD:

Step 4: Test the FTP Server

To test the FTP server locally, use the command:

ftp localhost
output after testing ftp server on CentOS 7

To test remotely, use the command:

ftp your.ftp.server.com
Installing VSftpd FTP Server on CentOS

Note: While some security measures have been included in this guide, it is strongly recommended that you familiarize yourself with the latest security protocols before implementing an FTP server in a production environment. This is especially important if you’re creating an FTP server that’s open to the internet – many security breaches originate through the FTP protocol.

Conclusion

Now you know how to set up and install an FTP server on Centos 7 with VSFTPD. You should be able to login to your server via FTP and start transferring files.

How To Install an FTP Server on CentOS 7 With VSFTPD

FTP (File Transfer Protocol) is a popular protocol for transferring files over the Internet. It is used to upload and download files from a remote server. In this tutorial, we will show you how to install and configure an FTP server on CentOS 7 using VSFTPD.

Prerequisites

  • A server running CentOS 7.
  • A root user or a user with sudo privileges.

Step 1: Install VSFTPD

First, we will install VSFTPD (Very Secure FTP Daemon) on our server. VSFTPD is an open source FTP server for Unix-like systems, including CentOS.

You can install VSFTPD using the yum package manager. To do so, run the following command:

sudo yum install vsftpd

Once the installation is complete, start the VSFTPD service and enable it to start at boot time:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

Step 2: Configure VSFTPD

Now that VSFTPD is installed, we need to configure it. The configuration file for VSFTPD is located at /etc/vsftpd/vsftpd.conf.

Open the configuration file in your text editor:

sudo nano /etc/vsftpd/vsftpd.conf

By default, anonymous users are allowed to access the FTP server. To disable this, set the following directive to NO:

anonymous_enable=NO

Next, we need to set the local user to be able to access the FTP server. To do this, set the following directive to YES:

local_enable=YES

Save and close the file when you are finished. Then, restart the VSFTPD service for the changes to take effect:

sudo systemctl restart vsftpd

Step 3: Create FTP Users

Now that VSFTPD is configured, we need to create FTP users. To do this, we will use the adduser command. For example, to create a user named ftpuser, run the following command:

sudo adduser ftpuser

You will be asked to enter and confirm a password for the user. Once the user is created, you can set the home directory for the user. To do this, edit the /etc/passwd file:

sudo nano /etc/passwd

Find the line that starts with ftpuser and change the home directory to the directory you want the user to access. For example:

ftpuser:x:1001:1001::/home/ftpuser:/bin/bash

Save and close the file when you are finished. Then, restart the VSFTPD service for the changes to take effect:

sudo systemctl restart vsftpd

Step 4: Test the FTP Server

At this point, the FTP server is ready to use. To test it, you can use an FTP client such as FileZilla. Connect to the FTP server using the username and password you created earlier.

If the connection is successful, you should be able to upload and download files from the FTP server.

Conclusion

In this tutorial, we have shown you how to install and configure an FTP server on CentOS 7 using VSFTPD. You should now be able to upload and download files from the FTP server.

Jaspreet Singh Ghuman

Jaspreet Singh Ghuman

Jassweb.com/

Passionate Professional Blogger, Freelancer, WordPress Enthusiast, Digital Marketer, Web Developer, Server Operator, Networking Expert. Empowering online presence with diverse skills.

jassweb logo

Jassweb always keeps its services up-to-date with the latest trends in the market, providing its customers all over the world with high-end and easily extensible internet, intranet, and extranet products.

Contact
San Vito Al Tagliamento 33078
Pordenone Italy
Item added to cart.
0 items - 0.00
Open chat
Scan the code
Hello 👋
Can we help you?