Skip to content
Follow
Ubuntu Linux

How to Install Pure-FTPd on Ubuntu 24.04

Richard
Written by
Richard
Feb 24, 2025 Updated Oct 13, 2026 6 min read
How to Install Pure-FTPd on Ubuntu 24.04
How to Install Pure-FTPd on Ubuntu 24.04

Pure-FTPd on Ubuntu 24.04 gives you a fast, secure file transfer server for moving files between your computer and a remote server. It lets you set up dedicated accounts for file sharing without giving people a full login to the whole system.

Advertisement

The server is lightweight, so it suits personal projects and team websites. You manage it with a few terminal commands, and you decide who gets in and who is kept out. This tutorial covers installing it, running it as a service, blocking accounts, and encrypting connections with SSL/TLS.

⚡ Quick Answer

To install Pure-FTPd on Ubuntu 24.04, run sudo apt update, then sudo apt-get install pure-ftpd in a terminal. Confirm with Y if prompted. The package starts the service automatically, and it can log in any system account not listed in /etc/ftpusers.

Advertisement

Install Pure-FTPd

Pure-FTPd is in the standard Ubuntu repositories, so you install it with the package manager. You need a user with sudo rights and an internet connection on the server.

  1. Open a terminal on the Ubuntu 24.04 machine.
  2. Run sudo apt update to refresh the package list. You should see apt contact the repositories and report how many packages can be upgraded.
  3. Run sudo apt-get install pure-ftpd to download and install the server. Confirm with Y if apt asks. When it finishes, the prompt returns with no errors.

The package normally starts the service as soon as it is installed. The next steps show how to control it yourself.

🐧Bash / Shell
sudo apt update 
sudo apt-get install pure-ftpd

Once Pure-FTPd is installed, you can use the commands below to stop it, start it, and enable it so it starts automatically every time the server boots.

  1. Run the stop command when you need to take the server offline, for example before maintenance.
  2. Run the start command to bring it back.
  3. Run the enable command so the service starts at boot. Without it, the server stays down after a reboot until you start it by hand.

Run each command with sudo. To undo the boot setting, use the matching disable command with systemctl.

Advertisement
🐧Bash / Shell
sudo systemctl stop pure-ftpd.service
sudo systemctl start pure-ftpd.service
sudo systemctl enable pure-ftpd.service
💡TipThe main configuration file is at [/etc/pure-ftpd/pure-ftpd.conf].

Open it as root if you want to review the settings. Make a backup copy before you edit anything, so you can restore it if a change breaks the service.

The default configuration is secure and suits most environments, so you don't need to change anything to get started. Restart the service after any change you do make, because Pure-FTPd only reads its settings when it starts.

Any user with an account on the Ubuntu system can log in to Pure-FTPd. To keep an account out, add it to the [/etc/ftpusers] file. This is useful for administrative or system accounts that should never log in over FTP.

To let someone back in later, remove their name from that file.

Advertisement

Pure-FTPd is now reachable from any FTP client. Every user account that is not listed in the ftpusers file can log in. If you can't connect from another machine, check that the service is running and that any firewall on the server allows FTP traffic. FTP normally uses port 21.

Pure-FTPd installation process on Ubuntu 24.04
Pure-FTPd installation process on Ubuntu 24.04

Access Pure-FTPd over SSL/TLS

Plain FTP sends everything unencrypted, including passwords. To keep your transfers private, run Pure-FTPd over SSL/TLS (Secure Sockets Layer/Transport Layer Security, the technologies that encrypt web traffic). Encryption stops anyone on your network from reading the data and credentials passing between the client and the server. You need an SSL certificate on the server before you start. A certificate from Let's Encrypt works, and so does a self-signed one.

For production use, install a public certificate like Let's Encrypt or a self-signed on your server. Clients trust these certificates automatically and show no warnings.

For this post, we'll create a self-signed certificate for Pure-FTPd. It encrypts the connection just as well, but clients can't verify it. They will show a warning the first time they connect. That is fine for testing or a private server, but use a trusted certificate for anything public.

Advertisement

Run the command below to generate a self-signed certificate for Pure-FTPd.

🐧Bash / Shell
sudo openssl req -x509 -nodes -newkey rsa:3072 -keyout pure-ftpd.pem -out pure-ftpd.pem -days 3650

When prompted, enter the certificate details, such as country, organization and the server's name. For a self-signed certificate the values aren't verified, but use the real hostname or IP address clients will connect to so that the certificate matches it.

💻Code
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:NY
Locality Name (eg, city) []:Brooklyn
Organization Name (eg, company) [Internet Widgits Pty Ltd]:GeekRewind
Organizational Unit Name (eg, section) []:IT
Common Name (e.g. server FQDN or YOUR name) []:pureftpd.example.com
Email Address []:
⚠️WarningAfter generating the certificate, copy it into the [/etc/ssl/private] directory.

This directory is restricted to root, which is where you want a private key to live. Don't leave copies of the key in a folder that other users can read.

🐧Bash / Shell
sudo cp pure-ftpd.* /etc/ssl/private
sudo chmod 600 /etc/ssl/private/pure-ftpd.pem

Once the server private key and certificate files are in place, configure Pure-FTPD to use the SSL/TLS certificate you just created.

Advertisement

To do that, run the commands below as root (sudo bash) to force Pure-FTPD to communicate over TLS. Working as root is needed because the files you are changing are owned by root. Type exit when you are done to leave the root shell.

🐧Bash / Shell
sudo bash
echo "2" > /etc/pure-ftpd/conf/TLS

After adding the highlighted lines to the file, save it. Then run the commands below to restart the Pure-FTPD server so it picks up the new settings. If the service fails to start, the most likely cause is a wrong certificate path or a typo in what you added, so recheck both.

🐧Bash / Shell
sudo systemctl restart pure-ftpd

With SSL/TLS configured, open your FTP client and set the site to use SSL/TLS. Most clients, such as FileZilla, have an encryption option in the site settings. Choose the option that requires encryption instead of plain FTP, then connect.

pure-ftpd ssl config
pure-ftpd ssl config

Because we used a self-signed certificate, the client will ask whether you trust it when you connect. Check that the details match your server, then click OK to accept it. A certificate from a public authority won't trigger this prompt.

Advertisement
ftp self-signed certificate
ftp self-signed certificate

Pure-FTPd is now communicating over SSL/TLS. Your client should show the connection as encrypted, and you can browse and transfer files as before.

Command line for installing Pure-FTPd on Ubuntu
Command line for installing Pure-FTPd on Ubuntu

That should do it!

Conclusion:

  • Installing Pure-FTPd on Ubuntu 24.04 provides a secure and efficient FTP server solution.
  • The process includes creating virtual users, allowing for better management in shared hosting scenarios.
  • Configuring SSL/TLS enhances security, ensuring encrypted data is transmitted over the FTP channel.
  • Generating a self-signed certificate is a straightforward way to secure your FTP connections.
  • Regular server updates and maintenance are essential for ongoing security and performance optimization.

This Pure-FTPd installation on Ubuntu 24.04 lets you manage your FTP needs effectively, with security and efficiency in mind for all your file transfers.

Have a question about this guide?

Answered by AI from this guide. Good questions may be added to this page — please don't include personal details.

Did this guide fix your problem?

Richard

About the Author

Richard

Tech Writer, IT Professional

Richard is a writer at Geek Rewind who turns complex IT tasks into clear, step-by-step guides. He draws on years of hands-on experience in system administration and enterprise IT operations, focusing on Windows, Linux and WordPress: the problems people actually run into, and the fixes that work. His server and WordPress guides come from systems he runs himself. Richard builds and maintains the platform behind Geek Rewind, from its Ubuntu servers and Nginx configuration to its custom WordPress plugins. Many new tutorials start with readers' questions, and he's always glad to answer them in the comments.

Advertisement

No comments yet — be the first to share your thoughts!

Leave a Comment

Your email address will not be published. Required fields are marked *