1. Install ftp server menggunakan paket vsftpd
    $ sudo apt-get update
    $ sudo apt-get install vsftpd
  2. Backup file konfigurasi terlebih dahulu
    $ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
  3. Cek firewall jika aktif bisa di disable atau allow port dari ftp
    $ sudo ufw status
    $ sudo ufw allow 20/tcp
    $ sudo ufw allow 21/tcp
    $ sudo ufw allow 990/tcp
    $ sudo ufw allow 40000:50000/tcp
    $ sudo ufw status
  4. Tambahkan user ftp
    $ sudo adduser ftpuser
  5. Buat direktori yang akan berfungsi sebagai chroot dan sebuah direktori yang dapat ditulis dan dihapus
    $ sudo mkdir /home/ftpuser/ftp
    $ sudo chown nobody:nogroup /home/ftpuser/ftp
    $ sudo chmod a-w /home/ ftpuser /ftp
  6. Buat direktori yang dapat ditulis (writeable) dan buatkan ownership pada ftpuser
    $ sudo mkdir /home/ftpuser/ftp/files
    $ sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files
  7. Kemudian edit file /etc/vsftpd.conf
    ...
    anonymous_enable=NO
    ...
    local_enable=YES
    ...
    write_enable=YES
    ...
    chroot_local_user=YES
  8. Tambahkan user_sub_token untuk memasukkan username di lokal folder root ftp. Hal ini berlaku untuk user lainnya yang akan ditambahkan kedepannya
    ...
    user_sub_token=$USER
    local_root=/home/$USER/ftp
    pasv_min_port=40000
    pasv_max_port=50000
  9. Untuk 2 baris terakhir di atas untuk membatasi jarak port yang dapat digunakan oleh FTP
  10. Buat userlist yang akan mengizinkan akses ke ftp
    userlist_enable=YES
    userlist_file=/etc/vsftpd.userlist
    userlist_deny=NO
  11. Tambahkan nama user (ftpuser) pada file userlist
    $ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist
  12. Restart service vsftpd
    $ sudo systemctl restart vsftpd