FTP

FTP

Introdution to FTP

  • File Transfer Protocol

  • Used to transfer data from one computer to another over the internet

  • Client-Server Architecture

  • Separated control/data connections

    • Control connection:
      • Created when an FTP session is established
      • Only for Control info
    • Data connection:
      • Each time that data is sent, a distinct TCP data connect is established
  • Security concern & Solutions

    • Need encryption for both Control and Data connection
    • S1:FTP over SSH
      • A normal FTP session tunneled through a SSH channel
    • S2:SSH File Transfer Protocol (SFTP)
      • Both commands and data are encrypted while transmitting
      • One Connection and poor performance
    • S3:FTP over TLS (ftps, ftpes)
      • Only commands are encrypted while transmitting
      • Better performance

Pure-FTBd

Introduction

  • A small, easy to set up, fast and secure FTP server
  • Support chroot
  • FTP over TLS
  • Virtual Users, and Unix authentication
  • Restrictions on clients, and system-wide

Installation

  • Use port or pkg install in Freebsd

Startup

  • Add pureftpd_enable="YES" in /etc/rc.conf

Configurations

  • File: /usr/local/etc/pure-ftpd.conf

Tools and Commands

  • pure-*
  • pure-ftpwho
    • List info of users who are currently connecting to the FTP server.
  • pure-pw
    • Manage Virtual Users in PureDB format

Real Implimented Products

  • FileZilla
    • A graphical cross-platform FTP client
    • Support TLS
  • Pure-FTPd WebUI
    • PHP based web interface for Pure-FTPd

Implimentation Reference