How To Set Up a FTP server with ProFTPD in Ubuntu

File Transfer Protocol (FTP) is a network protocol used to exchange and manipulate files over a TCP/IP-based network. FTP is built on a client-server architecture and utilizes separate control and data connections between the client and server applications.

ProFTPD is a high-performance and scalable FTP server written from scratch, with a focus toward simplicity, security, and ease of configuration.

ProFTPD Features:

  • Single main configuration file, with directives and directive groups
  • Per directory “.ftpaccess” configuration similar to Apache's ".htaccess".
  • Easy to configure multiple virtual FTP servers and anonymous FTP services.
  • Anonymous FTP root directories do not require any specific directory structure, system binaries or other system files.
  • Designed to run either as a stand-alone server or from inetd/xinetd, depending on system load.
  • 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
  • Logging and utmp/wtmp support 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, SSL/TLS encryption, LDAP servers, RADIUS support, etc.
  • IPv6 support.

1. Install ProFTPD Server in Ubuntu

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.

2. Configuring ProFTPD Server

By default the configuration file is located under /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 have to edit /etc/proftpd.conf using vi or any other editor and you need to change the following Directives or add the following directives for proftp server configuration.

# sudo vi /etc/proftpd.conf

Change the following directives

ServerName — Configure the name displayed

ServerName “proftpd 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 have to restart the proftpd.

# sudo /etc/init.d/proftpd restart

Now your Basic server configuration is ready.

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

To perform a syntax check of your proftpd.conf file use the following command

# sudo proftpd -td5

3. ProFTP Client Installation

If you want to use commnd line ftp client you need to install the ftp package:

# sudo apt-get install ftp

Print This Post Print This Post
Comments (0) Trackbacks (0)

No comments yet.

Leave a comment


No trackbacks yet.