Pure FTPD Installation Process Dissection on Ubuntu Linux Server

On an Ubuntu server, installing PureFTPd is very easy. Start by updating your Ubuntu system using the update command to ensure all packages are up-to-date.

• Iwan Setiawan SysAdmin · 9 mins read

Pure-FTPd is a free, secure, and actively developed FTP server software popular in the Unix and Linux communities. It is designed with a focus on simplicity, efficiency, and security. Pure-FTPd supports various authentication methods, including Unix system accounts, virtual users, and LDAP. It also offers comprehensive features such as TLS/SSL encryption, IPv6 support, bandwidth limiting, and virtual hosting.

Its configuration options are flexible, making it suitable for both personal and corporate use. Additionally, Pure-FTPd provides logging capabilities to track FTP activity for security and auditing purposes. Overall, this software is a reliable choice for setting up FTP services on Unix-like operating systems.

This server software is admired for its lightweight nature and compatibility with a wide range of operating systems, including various Linux distributions like Ubuntu. Installing PureFTPd is a straightforward process. For those using Ubuntu Server, the command sudo apt install pure-ftpd will start the process. But before we discuss the Pure-FTPD installation process, it’s a good idea to first get to know some of the features it has.

Fure FTPD Installation Process Dissection on Ubuntu Linux Server


1. Pure-FTPd Features

  • Supports SSL/TLS encryption to protect passwords and commands.
  • Runs on most Unix-like systems: Linux, BSD, Solaris, Darwin, HPUX, AIX, and even the iPhone.
  • Available in 21 languages.
  • Allows you to monitor active sessions.
  • Supports a virtual quota system.
  • Easy installation process.

2. Installing and Managing Pure FTPd on Ubuntu

On an Ubuntu server, installing PureFTPd is very easy. Start by updating your Ubuntu system using the update command to ensure all packages are up to date.

$ sudo apt update

After the update process is complete, you can immediately continue with the Pure-FTPD installation process, run the command below to start the installation process.

$ sudo apt install pure-ftpd

Once installed, Pure-FTPd will automatically start, you can check Ubuntu systemd with the following command to check the status of Pure-FTPD.

$ systemctl status pure-ftpd

You can also run Pure-FTPD manually with the following command.

$ sudo systemctl start pure-ftpd

Once the Pure-FTPD server is running normally, to be sure, check whether port 21 is open. If it is, Pure-FTPD is ready to use.

$ sudo ss -lnpt | grep pure-ftpd

2.1. Create a User and Group

Once Pure-FTPD is installed, you may want to add an FTP user separate from your system account. Run the commands below to create a Pure-FTPD user and group.

$ sudo groupadd ftpgroup
$ sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser

After that, you run the chown command to give file ownership rights, as follows.

$ sudo chown -R ftpuser:ftpgroup /home/ftpuser

2.2. Pure-FTPd Configuration

Now it’s time to configure it. After installing the server, you can find all Pure-FTPd configuration files in the /etc/pure-ftpd/conf directory. Furthermore, one of the main differences between Pure-FTPd and other FTP servers is that there is no single configuration file for Pure-FTPd. Instead, different settings have their own files.

We can run the command below to configure Pure-FTPd and enable basic security. This command will also set individual settings for the server.

$ sudo bash
$ echo “yes” > /etc/pure-ftpd/conf/Daemonize
$ echo “yes” > /etc/pure-ftpd/conf/NoAnonymous
$ echo “yes” > /etc/pure-ftpd/conf/ChrootEveryone
$ echo “yes” > /etc/pure-ftpd/conf/IPV4Only
$ echo “yes” > /etc/pure-ftpd/conf/ProhibitDotFilesWrite

After you run the command above, the individual files below will be created in the default conf directory.

  • Daemonize = Runs Pure-FTPd as a daemon
  • NoAnonymous = Disables anonymous logins
  • ChrootEveryone = Keep everyone in their home directory
  • IPV4Only = Only allow IPv4 connections
  • ProhibitDotFilesWrite = Don’t edit dot files

Then, run the command below to restart the Pure-FTPD server.

$ sudo systemctl restart pure-ftpd

Now, we can connect using the server’s hostname or IP address. Here are some configuration files we can create.

$ echo ‘yes’ > BrokenClientsCompatibility
$ echo ’50’ > MaxClientsNumber
$ echo ‘5’ > MaxClientsPerIP
$ echo ‘no’ > VerboseLog
$ echo ‘yes’ > DisplayDotFiles
$ echo ‘yes’ > NoChmod
$ echo ‘no’ > AnonymousOnly
$ echo ‘no’ > PAMAuthentication
$ echo ‘no’ > UnixAuthentication
$ echo ‘/etc/pure-ftpd/pureftpd.pdb’ > PureDB
$ echo ‘yes’ > DontResolve
$ echo ’15’ > MaxIdleTime
$ echo ‘2000 8’ > LimitRecursion
$ echo ‘yes’ > AntiWarez
$ echo ‘no’ > AnonymousCanCreateDirs
$ echo ‘4’ > MaxLoad
$ echo ‘no’ > AllowUserFXP
$ echo ‘no’ > AllowAnonymousFXP
$ echo ‘no’ > AutoRename
$ echo ‘yes’ > AnonymousCantUpload
$ echo ‘yes’ > NoChmod
$ echo ’80’ > MaxDiskUsage
$ echo ‘yes’ > CustomerProof

3. Create a self-signed SSL/TLS certificate

Next, you need to create a self-signed certificate for Pure FTPd. You can create one with the following command.

$ Create a Self-signed SSL/TLS certificateopenssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 365

3.1. Configuring Pure FTPd to use an SSL/TLS certificate

To run the Pure-FTPD server with an SSL/TLS certificate, you need to configure Pure FTPd to use the certificate we created above. You can configure this by editing the pure-ftpd.conf file with the nano command.

$ nano /etc/pure-ftpd/pure-ftpd.conf
TLS                          2
TLSCipherSuite               HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3
CertFile                     /etc/ssl/private/pure-ftpd.pem

Save and close the file when finished. Then, restart the Pure FTPd service to apply the changes.

Restart Pure-FTPD
$ sudo systemctl restart pure-ftpd

4. How to Connect to an FTP Server from a Client

Next, you need to connect to the Pure FTPd server from the client machine using the FileZilla FTP client. First, open the FileZilla client and click on Site Manager. You will see the following screen.

Fure FTPD Installation Process Dissection on Ubuntu Linux Server
Process of Connecting FTPD Server with Client


Provide your Pure FTPd server IP address, select the FTP protocol, select "Require explicit FTP over TLS" provide your FTP username and password, and click the Connect button. You will be prompted to accept the certificate, after which you can simply click the OK button.

Congratulations! You have successfully installed Pure FTPd with SSL/TLS support on your Ubuntu server. You can also deploy the installed Pure-FTPD server in Remmin, Putty, or WinSCP.