Today's article is about one of the most popular FTP server on Linux, ProFTPd, it's a free and open-source program. The primary design goal of ProFTPD is to be a highly feature rich FTP server, exposing a large amount of configuration options to the user.
ProFTPD includes a number of options that are not available with many other FTP daemons. The configuration of ProFTPD is performed in a single main configuration file that is very similar to the configuration file of Apache HTTP Server, so it is intuitively understandable to someone who uses this popular web server.
Most important features are:
- 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.
- No SITE EXEC command. In modern Internet environments, such commands are a security nightmare.
- Hidden directories and files, based on Unix-style permissions or user/group ownership.
- 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.
Installing ProFTPd is easy because it's available in most Linux distributions available today, on Ubuntu you can install it either using the Application Manager if it's on your desktop or if you wish to install it on your server you can use the following command:
$ sudo apt-get install proftpd-basic
If you get asked to install it as inetd or standalone we suggest you choose the standalone version.
Now that you have it installed and running you can change settings by editing the "/etc/proftpd/proftpd.conf" file. Open it in your favorite text editor and pay attention to the following settings
- UseIPv6 - You can set this to "Off" if you don't wish to have IPv6 support.
- ServerName - Setup the name of your server.
- ServerType - "standalone" if you wish for proftpd to run as a standalone daemon or "inetd" if you wish to run it though inetd.
- DefaultRoot - if you uncomment this line users will be restricted to their home folders.
- RequireValidShell - if you uncomment this line it removes the constrain of users require a valid shell listed in /etc/shells to login.
- Port - the default port for ftp is 21, if for some reason you wish to change this, you can do so here.
Connecting to the FTP server
There are a various number of programs that can access ftp server. One of the most handy and easy would be a web browsers since most of them like Firefox or Chrome support connecting to FTP servers. You can do this simply by typing the address of the server with "ftp://" in front like this:
You will be prompted with a password login, use a local username and password to login:
Then your files will be shown like this:
A more user friendly way to connect that we suggest is FileZilla, one of the most popular ftp clients, that can be easily installed on most Linux distribution, with it just enter your login details and connect: