Linux Networking Opensource

How to Create FTP Server with ProFTPD in Linux/Ubuntu

In this tutorials i will discuss how to create an FTP server with ProFTP in Linux/Ubuntu Server/Destkop, What is ProFTPD.
ProFTPD is a proven, high-performance, scalable FTP server written from scratch, with a focus toward simplicity, security, and ease of configuration. Naturally, ProFTPD powers some of the largest sites on the Internet. It features a very Apache-like configuration syntax, modules, and a highly customizable server infrastructure, including support for multiple ‘virtual’ FTP servers, anonymous FTP, and permission-based directory visibility.
ProFTPD has been configured and designed to be more secure than WU-FTPD. ProFTPD was rewritten from scratch to provide greater security. The security features that it provides are:

  • directory access using .ftpaccess files
  • anonymous FTP root directory
  • support for hidden files
  • self-contained
  • uses an unprivileged user in stand-alone mode

To Install FTP Server with Prottpd in Ubuntu Server or Desktop. 1. Install proftpd (Secure way,Open terminal (ctrl+alt+t)with this command :

sudo apt-get install proftpd

2. Add this line in /etc/shellsfile

sudo gedit /etc/shells

to open the file


Create a /home/FTP-shared directory

cd /home
sudo mkdir FTP-shared

Create a /home/FTP-shared directory :

cd /home
sudo mkdir FTP-shared

Create a user named userftp which will be used only for ftp access.

sudo useradd userftp -p your_password -d /home/FTP-shared -s /bin/false
sudo passwd userftp

Example: useradd pr3p -p handsome -d /home/FTP-shared -s /bin/false In FTP-shared directory create a download and an upload directory :

cd /home/FTP-shared/
sudo mkdir download
sudo mkdir upload

Set the good permissions for these directories :

cd /home
sudo chmod 755 FTP-shared
cd FTP-shared
sudo chmod 755 download
sudo chmod 777 upload

Edit proftpd configuration file :

sudo gedit /etc/proftpd.conf
# To really apply changes reload proftpd after modifications.
AllowOverwrite on
AuthAliasOnly on
# Choose here the user alias you want !!!!
UserAlias sauron userftp
ServerName			"UbuntuPirates"
ServerType 			standalone
DeferWelcome			on
MultilineRFC2228 on
DefaultServer			on
ShowSymlinks			off
TimeoutNoTransfer 600
TimeoutStalled 100
TimeoutIdle 2200
DisplayChdir                    .message
ListOptions                	"-l"
RequireValidShell 		off
TimeoutLogin 20
RootLogin 			off
# It's better for debug to create log files ;-)
ExtendedLog 			/var/log/ftp.log
TransferLog 			/var/log/xferlog
SystemLog			/var/log/syslog.log
#DenyFilter			*.*/
# I don't choose to use /etc/ftpusers file (set inside the users you want to ban, not useful for me)
UseFtpUsers off
# Allow to restart a download
AllowStoreRestart		on
# Port 21 is the standard FTP port, so you may prefer to use another port for security reasons (choose here the port you want)
Port				1980
# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 8
# Set the user and group that the server normally runs at.
User                  nobody
Group                 nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask				022	022
PersistentPasswd		off
MaxClients 8
MaxClientsPerHost 8
MaxClientsPerUser 8
MaxHostsPerUser 8
# Display a message after a successful login
AccessGrantMsg "welcome !!!"
# This message is displayed for each access good or not
ServerIdent                  on       "you're at home"
# Lock all the users in home directory, ***** really important *****
DefaultRoot ~
MaxLoginAttempts    5
AllowUser userftp
Umask 022 022
AllowOverwrite off
Umask 022 022
AllowOverwrite off
Umask 022 022
AllowOverwrite on

After editing the proftpd configuration file, Save and exit. Server is on port 1980 (in this exemple) and the access parameters are user : pr3p password : the one you’ve set for userftp 3. To start/stop/restart your server :

sudo /etc/init.d/proftpd start
sudo /etc/init.d/proftpd stop
sudo /etc/init.d/proftpd restart

4. To perform a syntax check of your proftpd.conf file :

sudo proftpd -td5

5. After installation you may now try to access your ftp server with your FTP client: I’m using filezilla for ftp client. For more info visit the official site: Ubuntu forum and

Post Comment