ProFTPd is a free, open-source, popular FTP server for the Linux operating system. It is used to transfer files from one server to another over the network. ProFTPd is simple, easy to install, highly configurable, secured, and specially designed for web hosting environments. It is famous for its flexibility and security. ProFTPD also supports FTP over TLS, so the connection is encrypted using TLS/SSL.

Features

  • Supports IPv4 and IPv6.
  • Supports per-directory “.ftpaccess” configuration.
  • Allows configuring multiple virtual FTP servers and anonymous FTP services.
  • Configured to run as a stand-alone server or from inetd/xinetd.
  • Supports shadow password suite.

In this post, we will show you how to install the ProFTPD FTP server on Oracle Linux 8.

Step 1 – Install ProFTPD

By default, ProFTPD is not included in the Oracle Linux default repo, so you will need to install the EPEL repo to your system. You can install it using the following command:

dnf install epel-release -y

Once the EPEL repository is installed, run the following command to install the ProFTPD package:

dnf install proftpd -y

After the installation, start the ProFTPD service and enable it to start at system reboot:

systemctl start proftpd
systemctl enable proftpd

You can verify the status of ProFTPD using the following command:

systemctl status proftpd

You will get the following output:

● proftpd.service - ProFTPD FTP Server
   Loaded: loaded (/usr/lib/systemd/system/proftpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-06-28 11:36:39 EDT; 7s ago
  Process: 17085 ExecStartPre=/usr/sbin/proftpd --configtest (code=exited, status=0/SUCCESS)
 Main PID: 17086 (proftpd)
    Tasks: 1 (limit: 11409)
   Memory: 28.1M
   CGroup: /system.slice/proftpd.service
           └─17086 proftpd: (accepting connections)

Jun 28 11:36:39 oraclelinux8 systemd[1]: Starting ProFTPD FTP Server...
Jun 28 11:36:39 oraclelinux8 proftpd[17085]: Checking syntax of configuration file
Jun 28 11:36:39 oraclelinux8 proftpd[17085]: daemon[17085]: processing configuration directory '/etc/proftpd/conf.d'
Jun 28 11:36:39 oraclelinux8 systemd[1]: Started ProFTPD FTP Server.
Jun 28 11:36:39 oraclelinux8 proftpd[17086]: daemon[17086]: processing configuration directory '/etc/proftpd/conf.d'
Jun 28 11:36:39 oraclelinux8 proftpd[17086]: daemon[17086] 208.117.81.145: ProFTPD 1.3.6e (maint) (built Wed Sep 15 2021 11:43:51 PDT) standa>

You can verify the ProFTPD version using the following command:

proftpd -v

You will get the following output:

ProFTPD Version 1.3.6e

Step 2 – Create an FTP User

Next, you will need to create a user for FTP. You can create a new user named ftpuser with the following command:

useradd ftpuser

Next, set a password for ftpuser using the command below:

passwd ftpuser

Set the password as shown below:

Changing password for user ftpuser.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

Next, log in to ftpuser with the following command:

su - ftpuser

Next, create some files and directories using the following command:

touch file1 file2 
mkdir sun mon tue

Next, exit from ftpuser with the following command:

exit

Step 3 – Access ProFTPD Server

There are two ways to access the FTP server: using a command-line and or an FTP client.

Access FTP Via Command Line

On the remote machine, open the command-line interface and run the following command to connect to the ProFTPD server.

ftp proftpd-ip

You will be asked to provide your FTP username and password:

Connected to proftpd-ip.
220 FTP Server ready.
Name (proftpd-ip:vyom): ftpuser
331 Password required for ftpuser
Password:

Once you are connected, you should get the following output:

230 User ftpuser logged in
Remote system type is UNIX.
Using binary mode to transfer files.

Now, run the following command to list all files and directories on the FTP server:

ftp> ls

You will get the following output:

229 Entering Extended Passive Mode (|||17093|)
150 Opening ASCII mode data connection for file list
-rw-rw-r--   1 ftpuser  ftpuser         0 Jun 28 15:38 file1
-rw-rw-r--   1 ftpuser  ftpuser         0 Jun 28 15:38 file2
drwxrwxr-x   2 ftpuser  ftpuser         6 Jun 28 15:39 mon
drwxrwxr-x   2 ftpuser  ftpuser         6 Jun 28 15:39 sun
drwxrwxr-x   2 ftpuser  ftpuser         6 Jun 28 15:39 tue
226 Transfer complete

Access FTP Via FTP Client

Open the FileZilla FTP client and click on the Site manager to create a new FTP connection:

Open filezilla connection manager

Provide your FTP server IP, username, and password and click on the connect button. Once you are connected, you should see the following screen:
FTP connection established

Conclusion

In this post, you learned how to install the ProFTPD FTP server on Oracle Linux 8. You also learned how to access FTP via command-line and FTP client. You can now set up an FTP server on your production server to download and upload website pages. Try it on VPS hosting from Atlantic.Net!