How to Install ProFTPD on Ubuntu 22.04 Server (Step by Step)

How to Install ProFTPD on Ubuntu 22.04 Server (Step by Step). In this post, we introduce ProFTPD, its features, advantages then show you how to install ProFTPD with TLS/SSL on Ubuntu 22.04.

What is ProFTPD?

First of all, ProFTPD (Pro FTP Daemon) is a popular open source FTP server software that allows users to transfer files over the internet securely. Widely used on Unix and Linux systems and is available for Windows platforms. Well, ProFTPD was developed in 1997 and has become a widely trusted and reliable FTP server solution.

Features of ProFTPD

​​ProFTPD has a range of features that make it a popular choice for FTP server software. Some of these features include:

1. Virtual hosting: ProFTPD allows users to host multiple FTP servers on a single physical machine. Useful for hosting multiple websites or hosting different users on a single server.

2. Modular architecture: With a modular architecture, users easily add or remove features as needed. This allows users to customize their FTP server to meet their specific needs.

3. Advanced security: Includes a range of security features to protect against potential threats. It supports SSL/TLS encryption, firewalls, and password authentication.

4. User based access controls: ProFTPD allows users to set up user based access controls, which means that different users have different levels of access to the FTP server. This is useful for controlling who has access to specific files or directories.

5. Advanced logging: This FTP server software includes advanced logging features that allow users to track the activity on the FTP server. This is useful for monitoring usage and identifying potential security issues.

6. Bandwidth throttling: It allows users to set bandwidth limits for different users or groups of users. Useful for ensuring that the FTP server does not consume too much bandwidth.

Advantages of ProFTPD

There are several advantages to using ProFTPD as an FTP server software:

1. Open source: This is open source software, which means that it is freely available for users to download and use. This makes it an affordable option for small businesses or individuals who may not have the budget for more expensive FTP server software.

2. Reliability: It has been around for more than 20 years and is widely trusted as a reliable FTP server software. Actively developed and maintained, so users are confident that it continues to work well over time.

3. Customization: ProFTPD’s modular architecture allows users to customize their FTP server to meet their specific needs. This is useful for businesses that need to set up an FTP server with specific features or access controls.

4. Advanced security: It includes a range of advanced security features, including SSL/TLS encryption, firewalls, and password authentication. This makes it an ideal choice for businesses that need to ensure the security of their data transfer.

Up next with this article blog about how to Install ProFTPD on Ubuntu 22.04 Server is to move to the install phase. 

How to Install ProFTPD on Ubuntu 22.04 Server

In this section, we navigate to installation of ProFTPD FTP server on Ubuntu 22.04. We also show you how to access ProFTPD via command line and graphical client.

Prerequisites

  • An Ubuntu 22.04 server installed on your server.
  • A root user or a user with sudo privileges.

Step 1 - Update the System

First, log in to your server and update all the system packages to the latest version using the following command.

				
					apt update -y
apt upgrade -y
				
			

After updating all the packages, you can proceed to install ProFTPD server.

Step 2 - Install ProFTPD Server

The PoFTPD package is included in the default Ubuntu repository. You also install it by just running the following command.

				
					apt install proftpd -y
				
			

After installing ProFTPD server, start the ProFTPD service using the following command.

				
					systemctl start proftpd
				
			

Please check the status of the ProFTPD service using the following command.

				
					systemctl status proftpd
				
			

You should see the following output.

				
					● proftpd.service - ProFTPD FTP Server
     Loaded: loaded (/lib/systemd/system/proftpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-12-24 14:39:44 UTC; 10s ago
   Main PID: 54931 (proftpd)
      Tasks: 1 (limit: 1030)
     Memory: 4.2M
        CPU: 22ms
     CGroup: /system.slice/proftpd.service
             └─54931 "proftpd: (accepting connections)" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Dec 24 14:39:44 ubuntu2204 systemd[1]: Starting ProFTPD FTP Server...
Dec 24 14:39:44 ubuntu2204 systemd[1]: proftpd.service: Can't open PID file /run/proftpd.pid (yet?) after start: Operation not permitted
Dec 24 14:39:44 ubuntu2204 systemd[1]: Started ProFTPD FTP Server.

				
			

At this point, ProFTPD server is installed and listens on port 21. You can check it with the following command.

				
					ss -antpl | grep 21
				
			

Hence, you should see the ProFTPD listening port in the following output.

				
					LISTEN 0      128                *:21              *:*    users:(("proftpd",pid=54931,fd=0))                                                                                                                                                                                                                                                                              
				
			

Step 3 - Configure ProFTPD

By default, the ProFTPD main configuration file is located at /etc/proftpd directory. You need to configure it to change the default settings.

				
					nano /etc/proftpd/proftpd.conf
				
			

Change the following settings.

				
					ServerName Ubuntu2204
UseIPV6 on
Port 21
SystemLog /var/log/proftpd/proftpd.log
DefaultRoot ~
				
			

Save and close the file when you are done. Then, restart the ProFTPD service to apply the changes.

				
					systemctl restart proftpd
				
			

Step 4 - Create an FTP User

Also, you need to create a FTP user to access the ProFTPD. Let’s create a new user named testuser with the following command.

				
					adduser testuser
				
			

Set your user’s password as shown below:

				
					Adding user `testuser' ...
Adding new group `testuser' (1001) ...
Adding new user `testuser' (1001) with group `testuser' ...
Creating home directory `/home/testuser' ...
Copying files from `/etc/skel' ...
New password: 
Retype new password: 
passwd: password updated successfully
Changing the user information for testuser
Enter the new value, or press ENTER for the default
	Full Name []: 
	Room Number []: 
	Work Phone []: 
	Home Phone []: 
	Other []: 
Is the information correct? [Y/n] 

				
			

After creating an FTP user, log in with testuser with the following command.

				
					su - testuser
				
			

Next, create some files and directories with the following command.

				
					mkdir ftpdir test 
touch myfile1 myfile2
				
			

Step 5 - Access FTP Via Command Line

Now, you are able to access the ProFTPD server either via command line or graphical client. In this section, we connect ProFTPD server via command line.

Go to the remote Linux machine, open your command line interface and run the following command to connect the ProFTPD server.

				
					ftp ftp-server-ip
				
			

You will be asked to provide your FTP username and password as shown below.

				
					Connected to ftp-server-ip.
220 ProFTPD Server (Ubuntu2204) [::ffff:ftp-server-ip]
Name (ftp-server-ip:vyom): testuser
331 Password required for testuser
Password:
				
			

Once you are log in to the FTP server, you will get in to the FTP shell as shown below.

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

				
			

Now, verify your files and directories which you have created in previous step using the following command.

				
					ftp> ls 
				
			

You should see the following output.

				
					drwxrwxr-x 2 testuser testuser 4096 Dec 24 14:43 ftpdir
-rw-rw-r-- 1 testuser testuser    0 Dec 24 14:43 myfile1
-rw-rw-r-- 1 testuser testuser    0 Dec 24 14:43 myfile2
drwxrwxr-x 2 testuser testuser 4096 Dec 24 14:43 test
				
			

Step 6 - Secure ProFTPD with SSL/TLS

For production environment, it is recommended to secure your FTP server with SSL/TLS. Firstly, install the SSL tool with the following command.

				
					apt-get install openssl -y
				
			

Next, generate an SSL certificates with the following command.

				
					openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
				
			

Provide all certificate information as shown below.

				
					.........++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
..........................................++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:MAH
Locality Name (eg, city) []:MUM
Organization Name (eg, company) [Internet Widgits Pty Ltd]:TEST
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:server
Email Address []:test@gmail.com

				
			

Next, set proper permission on the generated certificates with the following command.

				
					chmod 600 /etc/ssl/private/proftpd.key
chmod 600 /etc/ssl/certs/proftpd.crt
				
			

Then, edit the ProFTPD configuration file and define the path of the TLS configuration file.

				
					nano /etc/proftpd/proftpd.conf
				
			

Add the following line.

				
					Include /etc/proftpd/tls.conf
				
			

Save and close the file then edit the TLS configuration file.

				
					nano /etc/proftpd/tls.conf
				
			

Define your TLS certificates and other configuration as shown below:

				
					TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRequired on
TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient off

				
			

Save and close the file then restart the ProFTPD service to apply the changes.

				
					systemctl restart proftpd
				
			

Once you are done, you can proceed to the next step.

Step 7 - Access ProFTPD via Graphical Client

In this section, we connect ProFTPD server via FileZilla graphical FTP client.

First, install the FileZilla client on your remote machine and open it as shown below.

Next, click on create new connection. You should see the FTP connection page.

Provide your FTP IP, username, password and click on the connect button. Once you are connected to the FTP server, you should see your files and directories on the following page.

Thank you for reading How to Install ProFTPD on Ubuntu 22.04 Server (Step by Step). We shall conclude this article. 

How to Install ProFTPD on Ubuntu 22.04 Server (Step by Step) Conclusion

In this post, you have learned how to install ProFTPD server on Ubuntu 22.04. You also learned how to secure PROFTPD with SSL/TLS. Summarizing, ProFTPD is a popular open source FTP server software that is widely used on Unix and Linux systems. It has a range of features, including virtual hosting, modular architecture, advanced security, and user based access controls. Its open source nature and reliability make it an affordable and trusted choice for businesses and individuals looking for an FTP server solution.

In order to read more content about FTP and file transfers, please check out this section of our blog. 

Avatar for Hitesh Jethva
Hitesh Jethva

I am a fan of open source technology and have more than 10 years of experience working with Linux and Open Source technologies. I am one of the Linux technical writers for Cloud Infrastructure Services.

5 2 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x