Settingup an FTP Server on Ubuntu with ProFTPD

Sponsored Link
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 Features

  • Single main configuration file, with directives and directive groups which are intuitive to any administrator who has ever used the Apache web server.
  • Per directory ".ftpaccess" configuration similar to Apache's ".htaccess".
  • Easy to configure multiple virtual FTP servers and anonymous FTP services.
  • Designed to run either as a stand-alone server or from inetd/xinetd, depending on system load.
  • Anonymous FTP root directories do not require any specific directory structure, system binaries or other system files.
  • No SITE EXEC command. In modern Internet environments, such commands are a security nightmare. ProFTPD does not execute any external programs at any time. The source is available (and must always be available) for administrators to audit.
  • Hidden directories and files, based on Unix-style permissions or user/group ownership.
  • Runs as a configurable non-privileged user in stand-alone mode in order to decrease chances of attacks which might exploit its "root" abilities. Note: This feature is dependent on the capabilities of the host Unix system.
  • Logging and utmp/wtmp support. Logging is compatible with the wu-ftpd standard, with extended logging available.
  • Shadow password suite support, including support for expired accounts.
  • Modular design, allowing server to be extended easily with modules. Modules have been written for SQL databases, LDAP servers, SSL/TLS encryption, RADIUS support, etc.
  • IPv6 support.

Install Proftpd Server in Ubuntu

If you want to install proftpd in ubuntu use the following command

sudo apt-get install proftpd

This will start the installation this time it will ask one question you want to run proftp server from inetd or standalone here select standalone and press enter after this installation will be completed.

Configuring ProFTPD Server

By default proftp configuration file is located under /etc i.e /etc/proftpd.conf

If you want to check the default proftpd.conf file check here

We are going to change the basic configuration for proftp server this includes security configuration also.

Now you need to edit the /etc/proftpd.conf file using vi or any other editor and you need to change the following Directives or add the following directives for proftp server configuration these are only some of basic directives if you want to know available directives check here
sudo vi /etc/proftpd.conf

Change the following directives

ServerName — Configure the name displayed to connecting users

ServerName “proftp server”

ServerIdent — Set the message displayed on connect

ServerIdent on “Welcome to proftp server”

UseReverseDNS — Toggle rDNS lookups

UseReverseDNS off

IdentLookups — Toggle ident lookups

IdentLookups off

DefaultRoot — Sets default chroot directory

DefaultRoot ~

RequireValidShell --- Allow connections based on /etc/shells

RequireValidShell off

MaxClients — Limits the number of users that can connect

DenyFilter --- Regular expression of command arguments to be blocked

DenyFilter \*.*/

Maxclients 30

MaxClientsPerHost — Limits the connections per client machine

MaxClientsPerHost 50

After adding these directives you need to restrat your proftpd server to take these changes effect.

sudo /etc/init.d/proftpd restart

Now your Basic server configuration is ready To perform a syntax check of your proftpd.conf file use the following command

sudo proftpd -td5

Proftp Client Installation

If you want to use commnd line ftp client in debian you need to install the ftp package using the following command

sudo apt-get install ftp

By default users can FTP in to their own home directories only

Sponsored Link

You may also like...

28 Responses

  1. Vincent says:

    How do you allow users to access /var/www?


  2. Rasmus says:

    How do you give different users access to different libraries, which are not the home directory. Eg. a sub directory of /var/www

  3. boe_dye says:

    I have proftpd running without any problems, except I cannot define the default directory that I want to be used.

    I am running this off of an Asus eeepc under xubuntu, with an attached 80gig external drive.

    I want to be able to access that drive via FTP. But I cannot seem to direct the home directory to it.

    help please!

  4. admin says:


    This is an example.If you want to change the default directory of FTP to /music of each user follow this

    edit /etc/proftpd.conf file look for

    DefaultRoot ~

    change to

    DefaultRoot ~/music

    Save and exit the file

    Restart your proftpd server using the following command

    sudo /etc/init.d/proftpd restart

  5. Bill says:

    Hi, We’ve started using ProFTPD and noticed that the response to a download that the line which states “226 Transfer complete” does not contain the period like many/most FTP programs. The statement from other FTP applications read: “226 Transfer complete.” The missing punctuation mark is causing a client to my ftp server fail to recognize a successful transfer because their software is configured to read only the “226 Transfer complete.” Can anyone provide assistance on how to modify the message on my server? Thanks, Bill

  6. Erik says:

    ease of configuration says the description for proftpd, i find it rather difficult to configure. No graphical user interface that is easy to rely to. How to configure new users? and how to manage at make directories for these users?

  7. Robert says:

    @ Eric
    probably too late, but there is a graphical interface. It’s in the repositories, just apt-get gproftpd.

  8. chika.tambun says:

    how abt vsftpd? which more simple n robust

  9. chika.tambun says:

    why softlink on the http://ftp.server can’t be displayed on http://ftp.client?

  10. Guido Diaz says:

    I installed ProFTPD On a Ubuntu box and I having issues with restricted to one directory. Right now the user that I created during the set up has access to the entire OS ..
    Thanks .. Guido

  11. joshua peen says:

    how to i access my files on different computer with thes

  12. admin says:

    If you want to access files from different computer you can use samba for this.If you want to upload/download any files mainly ftp you can use ofcourse you can download some files from ftp server to use it

  13. Is the proFTPD version 32 bit legacy or is it true 64 bit when installing on a 64 bit server edition of Ubuntu? And performance wise is there a huge gap between the 32 bit and the 64 bit versions?

  14. gb007 says:

    I could not start the service – “ProFTPd warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration.”

    This is on a fresh ubuntu server install. that was the first message i saw after installing proftpd. i chose not to check the configuration. removed it. and move along with other ftp service that worked. good bye proftpd! next time greet users with “up and running!”

  15. jimfuture12345 says:

    hi ,

    ineed help please ,
    i install proftpd with their accessories , but i can not save changes to proftpd directories in teminal my code:sudo vi /etc/proftpd.conf then teminal ask me for password , but keyboad not writing anything .

  16. Matt098 says:

    @ jimfuture12345

    When you type in your password it isn’t being displayed(it wont show you typing any information in) for security reasons. so just type in your password hit enter then you should be good to go 😀

    Regards Matt

  17. new says:

    Hi,please help me how could I access ftp ipv6 via firefox?and where default location when I start ftp server.pleasee help me I really confused.thank you very much

  18. Thisguybb says:

    Hi, I have installed proftpd many times on 9.10, using this guide to help me out. I just did a clean install with the 10.04 and now when I log in with a ftp client it gets to where it should list the files and then times out. Ive looked everywhere and cant seem to find out how to fix this. Thanks

  19. Matt098 says:

    @ Thisguybb,

    Did you assign the proper file permissions to the main Ftp Folder (ex: r-read, w-write, x-execute) and or change the group to i think it is called “www-data” or “data-www”? To check what permissions are on what files/folders use the “ls -l” command
    Here is an example sudo ls -l /var/www/ftp


    you can use “chmod” to change the user permissions and “chown” to change the group.

    O, also make sure there isnt a firewall blocking the port you are using to connect to the ftp server

    Hope this helps, im still kinda a newb my self

  20. MARTiN says:

    Hi, I’m not so sure that you should just set the to www-data. Check what user proftpd is run as. Run “ps -aux | grep proftpd” and check at beginning of line first.

  21. thiyagi says:

    thanks for the help guys…

  22. pizaul says:

    Hi guys, thanks for this guide…I’ve a question I’m hoping you maybe able to shed some light on. I’m running a fedora build. I’ve installed and configured proftp, and use Webmin to manage it. Whenever I try to connect, the following happens:

    This is the log from my client (fireftp):

    200 Type set to A
    PORT |2|fe80::fd3d:76a1:4385:8f40%12|52379|
    220 Welcome to the cloud, ya’ll!
    USER user
    331 Password required for user
    PASS (password not shown)
    230 User user logged in
    CWD /
    250 CWD command successful
    TYPE A
    200 Type set to A
    PORT |2|fe80::fd3d:76a1:4385:8f40%12|52381|

    I then get kicked off and the whole process begins again. Any idea why?

  23. mknarr says:

    Just currious did you set the proper R/W previllages to the directory? You are trying to access. Also double check your config files.

  24. jrthor2 says:

    I have proftp setup, but if I want to ftp something from a website to my ftp server, what do I use for the FTP hostname?

    Also, how can I allow the ftp to put files in /var/www/joomla16?


  25. Matt098 says:

    @ jrthor2
    You would need to use your Wan IP, you can find out your wan IP by going to on your home network.

    Connect to your FTP server like so:
    ftp://(wan ip here)
    – Then enter your credentials


    Simply use FileZilla (free download)
    – Connect to your server and pretty much drag and drop 😀

    If i recall you can setup ProFTPD to allow specific users to login to specific folders. I think you can make a symbolic link from your default ftp folder to “/var/www/joomla16”.

    I’m still kinda new to this as well, hope this helps

    PS: i haven’t used proftpd for quite some time

  26. edl says:

    I have a similar problem. I want to be able to ftp /www/var/wordpress but I havn’t been able to find any information to help me do this. I am using proftpd also.

    I’m fairly new to setting up wordpress on an ubuntu server using commands and I would really appreciate any help anyone could give me on this…I have managed to get this far but I feel I’ve hit a block wall!


  27. Matt098 says:

    @ edl

    If i recall you can create a new user say”wordpress” then set the home directory of the wordpress user to/www/var/wordpress then when you login to the ftp server use the wordpress user and password and it should log you into /www/var/wordpress.

    Hope this helps
    Best Regards and luck,

  28. narendra says:

    Hi , I had installed the VFTO and made necessary changes in conf file. but when am trying to connect to ftp am getting error as fto connection refused.

    Anyone can help me on this..

Leave a Reply

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