Cyberithub

How to Install and configure FTP server(vsftpd) in Linux (RHEL/Centos 7/8) Using 8 Easy Steps

In this article, I will take you through the steps to install and configure FTP Server in Linux. FTP is known as File Transfer Protocol used for transferring files over the network insecurely. Since FTP transferred data is in plain text and not in encrypted form so it is usually recommended to use the secure version of FTP protocol known as VSFTP. It is also known as Very Secure File Transfer Protocol.

How to Install and configure FTP server(vsftpd) in Linux (RHEL/Centos 7/8) Using 8 Easy Steps 1

Install and Configure FTP Server in Linux

Also Read: 40 Best Examples of find command in Linux

Step 1: Prerequisites

a)You need a running RHEL/CentOS 7/8 System.

b)You should have yum installed in your system. You can check Top 22 YUM Command Examples in RedHat /CentOS 7 to know more about yum command.

c)You should have sudo access to run privileges command. You can check How to add User to Sudoers to know more about providing sudo access to the User.

Step 2: Update Your System

Sometimes it might happen that installation of new packages requires few of the dependencies to be updated hence you need to first update your system packages to the latest version before proceeding with the steps to configure FTP Server(vsftpd). This can be performed by using simple yum update -y command as shown below. This command might take sometime to update all the packages depends on the last time you have updated your system. Since in this case there is only one file so it won’t take much time to complete the update.

[root@localhost ~]# yum update -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.piconets.webwerks.in
* epel: mirror.xeonbd.com
* extras: mirrors.piconets.webwerks.in
* updates: mirrors.piconets.webwerks.in
Resolving Dependencies
--> Running transaction check
---> Package microcode_ctl.x86_64 2:2.1-61.el7 will be updated
---> Package microcode_ctl.x86_64 2:2.1-61.6.el7_8 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================================================
Updating:
microcode_ctl x86_64 2:2.1-61.6.el7_8 updates 2.6 M

Transaction Summary
========================================================================================================================================================================
Upgrade 1 Package

Total download size: 2.6 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
microcode_ctl-2.1-61.6.el7_8.x86_64.rpm | 2.6 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : 2:microcode_ctl-2.1-61.6.el7_8.x86_64 1/2
Cleanup : 2:microcode_ctl-2.1-61.el7.x86_64 2/2
Verifying : 2:microcode_ctl-2.1-61.6.el7_8.x86_64 1/2
Verifying : 2:microcode_ctl-2.1-61.el7.x86_64 2/2

Updated:
microcode_ctl.x86_64 2:2.1-61.6.el7_8

Complete!

Step 3: Install FTP(vsftpd) Package

After updating your system successfully you can install vsftpd package using yum install -y vsftpd command as shown below. This command will check and install all the dependencies required by vsftpd package. Installation size of the package is quiet small and should not take much time to complete the installation.

[root@localhost ~]# yum install -y vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 7.6 kB 00:00:00
* base: mirrors.piconets.webwerks.in
* epel: mirror.xeonbd.com
* extras: mirrors.piconets.webwerks.in
* updates: mirrors.piconets.webwerks.in
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:3.0.2-27.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================================================
Installing:
vsftpd x86_64 3.0.2-27.el7 base 172 k

Transaction Summary
========================================================================================================================================================================
Install 1 Package

Total download size: 172 k
Installed size: 353 k
Downloading packages:
vsftpd-3.0.2-27.el7.x86_64.rpm | 172 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : vsftpd-3.0.2-27.el7.x86_64 1/1
Verifying : vsftpd-3.0.2-27.el7.x86_64 1/1

Installed:
vsftpd.x86_64 0:3.0.2-27.el7

Complete!

Step 4: Enable FTP(vsftpd) Server

If you check the vsftpd status immediately after installing the package then it will show in disabled state as you can see below. So you need to first enable the service by using systemctl enable vsftpd command and then again if you check the status using systemctl status vsftpd command it will show in enabled state.

[root@localhost ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[root@localhost ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: inactive (dead)

Step 5: Configure FTP Server

To configure FTP Server you need to perform below changes in the /etc/vsftpd/vsftpd.conf. This is the basic setting you can do to configure vsftpd server. You need to change anonymous_enable to YES if it is not already changed.

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES

Step 6: Start FTP(vsftpd) Server

After saving the configuration file you can start the vsftpd service by using systemctl start vsftpd command as shown below. If all the saved configuration is correct and then it will start successfully without any error and you can confirm the same by running systemctl status vsftpd command as specified in the below output.

[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-06-13 10:31:19 EDT; 2s ago
Process: 19048 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 19049 (vsftpd)
Tasks: 1
CGroup: /system.slice/vsftpd.service
└─19049 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Jun 13 10:31:19 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
Jun 13 10:31:19 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.

Step 7: Install FTP(lftp) Client

If you want to test the FTP Server Connection then you need to install a FTP Client Package using yum install lftp -y command as shown below.

[root@localhost ~]# yum install lftp -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.piconets.webwerks.in
* epel: mirror.xeonbd.com
* extras: mirrors.piconets.webwerks.in
* updates: mirrors.piconets.webwerks.in
Resolving Dependencies
--> Running transaction check
---> Package lftp.x86_64 0:4.4.8-12.el7_8.1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================================================================
Package Arch Version Repository Size
========================================================================================================================================================================
Installing:
lftp x86_64 4.4.8-12.el7_8.1 updates 752 k

Transaction Summary
========================================================================================================================================================================
Install 1 Package

Total download size: 752 k
Installed size: 2.4 M
Downloading packages:
lftp-4.4.8-12.el7_8.1.x86_64.rpm | 752 kB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : lftp-4.4.8-12.el7_8.1.x86_64 1/1
Verifying : lftp-4.4.8-12.el7_8.1.x86_64 1/1

Installed:
lftp.x86_64 0:4.4.8-12.el7_8.1

Complete!

Step 8: Test FTP Server Connection

Finally, you can test the FTP Server Connection by connecting it through FTP Client using lftp localhost command as you can see below.

[root@localhost ~]# lftp localhost
lftp localhost:~> ls
drwxr-xr-x 2 0 0 6 Apr 01 04:55 pub

 

 

 

 

Popular Recommendations:-

Install and Configure FTP Server in Ubuntu

How to Enable or Disable SELinux Temporarily or Permanently on RedHat/CentOS 7/8

10 Popular Examples of sudo command in Linux(RedHat/CentOS 7/8)

9 useful w command in Linux with Examples

12 Most Popular rm command in Linux with Examples

Create a Self Signed Certificate using OpenSSL

Install and Configure FTP Server in RedHat/CentOS in Linux

Install, Secure and Configure FTP Server in Linux

Leave a Comment