• Linux
  • Networking
  • How to Create FTP Server with ProFTPD in Linux/Ubuntu

    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

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    4 mins