Installing and Configuring Pure-FTPD on RHEL / CentOS 7

This article will teach you how to install and configure Pure-FTPD on CentOS 7 without a control panel (such as CPanel). Pure-FTPD is a simple File Transfer Protocol (FTP) server. It is designed to use resources efficiently and supports useful features like secure connections, IPv6, and virtual users (for jailing security).

*Important Note: Do not follow this guide if you are using a control panel such as CPanel or DirectAdmin! Pure-FTPD is already installed and can easily be configured with a point-and-click interface. 

Before we get started, you will need a CentOS 7 installation with either root or sudo access. The entire installation will take approximately 15 minutes.

Step 1: When you are ready to begin, go ahead and install Pure-FTPD using yum.

yum install pure-ftpd

Step 2: Edit the default configuration (/etc/pure-ftpd/pure-ftpd.conf) and make the changes below.

-PAMAuthentication yes

+#PAMAuthentication yes

-#PureDB /etc/pure-ftpd/pureftpd.pdb

+PureDB /etc/pure-ftpd/pureftpd.pdb

Save and close the file.

Step 3: Configure Service

systemctl enable pure-ftpd

systemctl start pure-ftpd

Step 4: Create a new user account using pure-pw.

pure-pw useradd $USERNAME -u $USER -g $GROUP -d /path/to/ftp/directory

$USERNAME = FTP username

$USER = System username (such as apache or www-data)

$GROUP = System group name (such as apache or www-data)

/path/to/ftp/directory = Directory location for the FTP to jail to (such as /var/www/htdocs/)

Step 5: Save Pure-FTPD user database

pure-pw mkdb

systemctl reload pure-ftpd

You should now be able to connect using the new FTP user you setup!

Troubleshooting Note: If everything above was setup correctly but the user cannot log in, make sure that the system username/groupname you used is higher than 500.

You may also like...