How to setup an ftp server with three possible options. What am I talking about?

There are three different ways to set up an ftp server:

(1) * Anonymous FTP :

People can access the server only with the anonymous account and without a password. Of course, the server administrator will set a limit for uploads to prevent users from putting illegal files like pirated music/films/games.

(2) * FTP with both anonymous access and users with a passworded account:

This method lets both anonymous and passworded account users to enter the server. They will only have access to a specified directory, except for the user root who can view/modify/delete all files and/or folders.

(3) *FTP with mysql support for virtual users authentication :

This method allows access to the server only for some user groups that haven't got a virtual users authentication shell account on the system. It uses an external mysql server that stores user information.

First Option : Anonymous FTP

Before starting the creation of an anonymous ftp server, you have to add a user called ftp into your system, with a home directory too. This step is really easy, just follow these commands:

useradd -d /home/ftp -s /bin/false ftp
mkdir -p /home/ftp/upload

Doing this permits only this account to write in this folder. You can use more variables to specify what the ftp server will do. Here are some examples:

  • -e Allow access to the server only by anonymous users

  • -B Start the server with background demon

  • -i Anonymous users can't upload files

  • -M Let anonymous users create folders

  • -s ftp user files cannot be downloaded

Second Option : '''Both anonymous and passworded account users'''

To make it possible to have both anonymous and passworded account users in the same server, follow this small guide :

  • -B ,-i ,M, -r, -s same of before

  • -u <uid> Enable users with a specified user id (uid) to access the server

  • -V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode

Third Option : '''Virtual Users with Mysql'''

To create a server with mysql support follow this steps :

More options to add before launch the server process

  • -c <num> Max client that can connect to the server

  • -C <num> Max connections for a IP

  • -T <bandwitdh> Max bandwitdh disponible for each connection

  • -n <MBytes> Max MB that a user can have into its home folder

  • -m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value

Thats all.

FtpServer (last edited 2012-09-09 17:13:58 by wagzz)