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