In this tutorials i will discuss how to create an FTP server with ProFTP in Linux/Ubuntu Server/Destkop, What is ProFTPD.
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 has been configured and designed to be more secure than WU-FTPD. ProFTPD was rewritten from scratch to provide greater security. The security features that it provides are:
- directory access using .ftpaccess files
- anonymous FTP root directory
- support for hidden files
- self-contained
- uses an unprivileged user in stand-alone mode
To Install FTP Server with Prottpd in Ubuntu Server or Desktop. 1. Install proftpd (Secure way,Open terminal (ctrl+alt+t)with this command :
sudo apt-get install proftpd
2. Add this line in /etc/shellsfile
sudo gedit /etc/shells
to open the file
/bin/false
Create a /home/FTP-shared directory
cd /home sudo mkdir FTP-shared
Create a /home/FTP-shared directory :
cd /home sudo mkdir FTP-shared
Create a user named userftp which will be used only for ftp access.
sudo useradd userftp -p your_password -d /home/FTP-shared -s /bin/false sudo passwd userftp
Example: useradd pr3p -p handsome -d /home/FTP-shared -s /bin/false In FTP-shared directory create a download and an upload directory :
cd /home/FTP-shared/ sudo mkdir download sudo mkdir upload
Set the good permissions for these directories :
cd /home sudo chmod 755 FTP-shared cd FTP-shared sudo chmod 755 download sudo chmod 777 upload
Edit proftpd configuration file :
sudo gedit /etc/proftpd.conf
# To really apply changes reload proftpd after modifications. AllowOverwrite on AuthAliasOnly on # Choose here the user alias you want !!!! UserAlias sauron userftp ServerName "UbuntuPirates" ServerType standalone DeferWelcome on MultilineRFC2228 on DefaultServer on ShowSymlinks off TimeoutNoTransfer 600 TimeoutStalled 100 TimeoutIdle 2200 DisplayChdir .message ListOptions "-l" RequireValidShell off TimeoutLogin 20 RootLogin off # It's better for debug to create log files ;-) ExtendedLog /var/log/ftp.log TransferLog /var/log/xferlog SystemLog /var/log/syslog.log #DenyFilter *.*/ # I don't choose to use /etc/ftpusers file (set inside the users you want to ban, not useful for me) UseFtpUsers off # Allow to restart a download AllowStoreRestart on # Port 21 is the standard FTP port, so you may prefer to use another port for security reasons (choose here the port you want) Port 1980 # To prevent DoS attacks, set the maximum number of child processes # to 30. If you need to allow more than 30 concurrent connections # at once, simply increase this value. Note that this ONLY works # in standalone mode, in inetd mode you should use an inetd server # that allows you to limit maximum number of processes per service # (such as xinetd) MaxInstances 8 # Set the user and group that the server normally runs at. User nobody Group nogroup # Umask 022 is a good standard umask to prevent new files and dirs # (second parm) from being group and world writable. Umask 022 022 PersistentPasswd off MaxClients 8 MaxClientsPerHost 8 MaxClientsPerUser 8 MaxHostsPerUser 8 # Display a message after a successful login AccessGrantMsg "welcome !!!" # This message is displayed for each access good or not ServerIdent on "you're at home" # Lock all the users in home directory, ***** really important ***** DefaultRoot ~ MaxLoginAttempts 5 #VALID LOGINS AllowUser userftp DenyALL Umask 022 022 AllowOverwrite off DenyAll Umask 022 022 AllowOverwrite off DenyAll Umask 022 022 AllowOverwrite on DenyAll AllowAll
After editing the proftpd configuration file, Save and exit. Server is on port 1980 (in this exemple) and the access parameters are user : pr3p password : the one you’ve set for userftp 3. To start/stop/restart your server :
sudo /etc/init.d/proftpd start sudo /etc/init.d/proftpd stop sudo /etc/init.d/proftpd restart
4. To perform a syntax check of your proftpd.conf file :
sudo proftpd -td5
5. After installation you may now try to access your ftp server with your FTP client: I’m using filezilla for ftp client. For more info visit the official site: Ubuntu forum and Proftpd.org