Proftpd dengan SSL pada Ubuntu 20.04

FTP Server

Apa itu FTP server?, Sebelum kita lanjut membahas mengenai FTP Server. Kita pahami dulu FTP itu sebenarnya apa?.

FTP atau File Transfer Protocol merupakan suatu protokol yang digunakan untuk pertukaran informasi atau data antara komputer yang saling terhubung. Dengan protokol ini juga kita sebagai penggunan dapat mengelola file di suatu server, seperti membuat, menghapus dan memindahkan file tersebut. Nah, setelah kita memahami arti dari FTP itu sendiri, sekarang kita akan lanjutkan penjelasan tentang FTP Server itu sendiri. Seperti yang diketahui pada istilah FTP terdapat FTP Server dan juga FTP Klien. FTP Server mengacu pada komputer atau server yang memberikan layanan kepada permintaan FTP Klien. FTP Klien sendiri merupakan komputer yang biasa digunakan dalam berbagai aktivitas, seperti halnya laptop atau PC kamu. Dengan syarat komputer kamu dapat terhubung ke FTP server agar bisa mengelola file ataupun data yang ada didalamnya.

Pada FTP Klien terdapat 2 mode saat terjadinya pertukaran data dengan FTP Server yaitu Mode aktif dan pasif. Secara default FTP Klien banyak memilih metode pasif dan juga karena administrator juga menganggap metode ini lebih aman.

Cara Kerja FTP Server

Seperti yang sudah di jelaskan tadi pada FTP klien terdapat 2 mode, yaitu aktif dan pasif. Nah, untuk cara kerjanya, secara umum FTP klien akan meminta koneksi ke FTP server, jika sudah terhubug maka FTP Klien akan dapat melakukan pertukaran data. Kemudian, pada mode aktif dan pasif yang akan menentukan bagaimana koneksi data terbentuk. Pada kedua mode ini, klien akan membuat sebuah kontrol TCP dari Port menuju FTP Server port 21.

  • Pada mode aktif, klien akan mulai mendengarkan koneksi data yang datang dari port FTP Server. Kemudian, klien akan mengirimkan perintah FTP menuju port tersebut untuk diinformasikan ke FTP server, port mana yang harus didengar. FTP server kemudian akan melakukan channel data kepada klien dari port 20 menuju port FTP server.
  • Jika klien dalam situasi dimana berada dibalik firewall dan tidak mampu menerima koneksi TCP, kita dapat menggunakan mode pasif. Dalam mode ini, klien akan menggunakan kontrol koneksi untuk mengirim perintah PASV kepada FTP server dan kemudian menerima IP address server dan nomor port server.

Seperti halnya pada layanan server yang lain, pada FTP Server juga memiliki perangkat lunak yang sering digunakan sebagai FTP Server itu sendiri. Salah satunya adalah Proftpd.

PROFTPD

ProFTPd merupakan perangkat lunak yang digunakan sebagai layanan FTP Server. Proftpd ini merupakan perangkat lunak open source yang sering digunakan pada lingkungan Linux dan Unix. Selain Proftpd masih ada lagi perangkat lunak FTP Server yang open source, seperti vsftpd dan pureftpd. Namun pada Proftpd sendiri kaya akan fitur – fitur dan pilihan konfig untuk para pengguna. Pada dasarnya proftpd ini berfungsi sebagai media transfer antar komputer yang memiliki jara yang cukup jauh. Dengan media seperti ini dapat mempermudah pengguna saat melakukan transfer file tanpa harus melakukan kontak fisik secara langsung. Nah, pada kesempatan ini saya akan berfokus membahas mengenai Proftpd itu.

Topologi

Spesifikasi Server FTP yang digunakan:

  • IP address: 10.23.2.118/22
  • Ubuntu 20.04

Step 1 – Instalasi

  1. Masuk sebagai user sudo pada ubuntu server.$sudo su
  2. Lakukan update dan instal package proftpd.#apt update && apt -y install proftpd

Step 2 – Konfigurasi

  1. Lakukan perubahan pada file konfigurasi proftpd.conf#vim /etc/proftpd/proftpd.conf
  2. Lakukan perubahaan pada beberapa perintah – perintah yang ada pada file konfig. Ikuti intruksi pada perintah dibawah.# line 11: matikan penggunaan ipv6 UseIPv6 off # line 15: disini kalian dapa ubah menjadi domain atau hostname dari server ServerName "<nama ftp server>" # line 36: uncomment DefaultRoot ~Perintah DefaultRoot ini digunakan untuk mengarahkan ke direktori home pada user yang digunakan sebagai login ke FTP server.
  3. Buat user untuk digunakan sebagai pengetesan FTP user.#useradd -m tester #passwd tester
  4. Kemudian kita coba untuk membuat sebuah file baru pada direktori home tester.#cd /home/tester #touch tes.txt
  5. Setelah melakukan semua konfigurasi, restart layanan proftpd agar konfigurasi yang dilakukan dapat berjalan.#systemctl restart proftpd

Step 3 – Pengujian

Pada pengujian ini kita akan mencoba beberapa cara untuk melakukan pengetesan pada linux CLI dan juga windows. Simak cara pengujian dibawah untuk memahaminya.

  1. Pertama kita akan melakukan uji coba menggunakan perintah ftp pada klien linux CLI.#ftp 10.23.2.118 Connected to 10.23.2.118. 220 ProFTPD Server (FTP Server) [10.23.2.118] Name (10.23.2.118:syawal): tester 331 Password required for tester Password: //masukkan password user ftp 230 User tester logged in Remote system type is UNIX. Using binary mode to transfer files. ftp>Gunakan perintah ftp <ip atau domain ftp server> nantinya akan diminta untuk memasukkan user dan password untuk login ke FTP server.Jika login berhasil maka akan menampilkan nama user yang sudah login. Jika gagal terdapat log failed. Nah, selanjutnya kita coba untuk melihat apakah sudah ada file tes.txt yang tadinya sudah dibuat pada direktori home user tester. Jika sudah maka pengujian ftp klien sudah berhasil.ftp> lsSelanjutnya kita akan mencoba melakukan upload dari FTP klien menuju FTP server. sebelum melakukan pengujian, cobalah untuk membuat suatu file terlebih dahulu pada FTP klien.#touch /home/tes.txtSelanjutnya login lagi ke FTP server dan coba lakukan perintah put untuk mengupload file yang sudah dibuat.// upload: ftp> put <source> <tujuan> // contoh: ftp> put /home/tes.txt /tes_client.txtNah, setelah upload selesai, lakukan lagi perintah ls untuk meliha file tes yang sudah diupload apakah berhasil atau tidak. Jika, berhasil maka akan menampilkan file yang telah kita upload tadi.
  2. Cara kedua masih sama pada klien linux CLI, tapi sekarang kita akan menggunakan perintah lftp. Sebelum melakukan tes, instal terlebih dahulu package lftp.#apt install lftp #lftp -u <user> <ip atau domain ftp server> //contoh #lftp -u tester 10.23.2.118Kemudian login menggunakan perintah lftp. Gunakan perintah ls untuk melihat apakah file tes yang sudah di masukkan ke FTP server ada. Disini harusnya kita dapat melihat file tes.txt yang dibuat pada FTP server dan file tes_client.txt yang telah diupload pada cara pertama.Tadinya kita sudah melakukan pengujian upload, sekarang kita akan mencoba lakukan pengujian download.lftp tester@<ip atau domain ftp server>:/> get <nama file> // contoh lftp tester@10.23.2.118:/> get tes_client.txt lftp tester@10.23.2.118:/> exitSetelah didownload, keluar dari login lftp dan coba ls direktori tempat melakukan download file tes_client.txt. Jika berhasil maka akan menampilkan file yang telah didownload.
  3. Cara ketiga atau yang terakhir, kita akan melakukannya pada klien windows. Sebelum pengujian kalian harus download dan instal terlebih dahulu perangkat lunak filezilla client. Kalian dapat mendownload nya pada URL berikut https://filezilla-project.org/. Setelah berhasil di instal cukup isi beberapa form yang ada dibawah menunya.
    • Host: Di isi dengan IP atau Domain FTP Server.
    • Username: user FTP yang akan digunakan untuk uji coba.
    • Password: Password dari user FTP.
    • Port: Port yang akan digunakan untuk FTP, secara default akan melisten port 21.
    Jika koneksi berhasil pada bagian kanan kalian dapat melihat file tes yang tadinya kita lakukan uji coba. Nah, untuk melakukan download dan upload kalian cukup mengklik kanan file yang akan diupload atau download.

Step 4 – Membuat SSL

  1. Membuat direktori untuk menyimpan file SSL yang akan dibuat. Pergi ke direktori /ssl yang telah dibuat.#mkdir /ssl #cd /ssl
  2. Gunakan perintah dibawah untuk membuat private key dan sertifikat SSL dengan nama proftpd.pem. File tersebut akan di isi secara private key dan sertifikat secara langsung, tanpa harus membuat file private key terpisah.#openssl req -x509 -nodes -newkey rsa:2048 -keyout proftpd.pem -out proftpd.pem -days 365 Generating a 2048 bit RSA private key ....................................+++ ................................+++ writing new private key to 'proftpd.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:<kode negara> State or Province Name (full name) [Some-State]:<nama provinsi> Locality Name (eg, city) []:<nama kota> Organization Name (eg, company) [Internet Widgits Pty Ltd]:<nama organisasi> Organizational Unit Name (eg, section) []:<nama unit organisasi> Common Name (e.g. server FQDN or YOUR name) []:<isi dengan IP atau domain ftp server> Email Address []:Nantinya akan diminta untuk mengisi suatu form tertentu, kalian dapat menyesuaikan sesuai kebutuhan yang ada. Pada form common name isikan dengan alamat IP atau domain FTP server yang digunakan.
  3. Selanjutnya ubah permission pada file proftpd.pem yang telah dibuat.#chmod 600 proftpd.pem

Step 5 – Konfigurasi SSL ProFTPd

  1. Selanjuta kita akan melakukan perubahan pada file tls.conf.#vim /etc/proftpd/tls.conf
  2. Lakukan intruksi dibawah untuk beberapa perintah yang harus di uncomment dan diubah.# line 10-12: uncomment perintah dibawah untuk mengaktifkan SSL TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol TLSv1.2 # line 27-28: uncomment dan berikan path tempat meletakkan file SSL tadi TLSRSACertificateFile /ssl/proftpd.pem TLSRSACertificateKeyFile /ssl/proftpd.pem # line 42: uncomment dan edit TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired # line 46: uncomment TLSVerifyClient off # line 50: uncomment TLSRequired on
  3. Lakukan perubahan pada file konfigurasi proftpd.conf.#vim /etc/proftpd/protftpd.conf
  4. Tambahkan baris perintah dibawah pada file proftpd.conf. Baris perintah ini berguna agar file tls.conf dapat berjalan.Include /etc/proftpd/tls.conf
  5. Restart layanan proftpd jika semua konfigurasi sudah dilakukan, agar konfigurasi dapat berjalan.#systemctl restart proftpd

Step 6 – Pengujian

  1. Cara pertama kita akan menggunakan perinta lftp, sebelum itu pergi ke direktori home kalian. Kemudian buat file baru dengan nama .lftprc.#cd /home/syawal #vim .lftprc
  2. Masukkan perintah dibawah pada file .lftprc yang telah dibuat.set ftp:ssl-auth TLS set ftp:ssl-force true set ftp:ssl-protect-list yes set ftp:ssl-protect-data yes set ftp:ssl-protect-fxp yes set ssl:verify-certificate no
  3. Coba tes kembali dengan menggunakan perinta lftp -u <user> <ip atau domain ftp>.#lftp -u tester 10.23.2.118Jika berhasil maka kita dapat login ke FTP server dan juga dapat melihat file tes yang telah dibuat tadi
  4. Cara kedua kita akan mencoba menggunakan filezilla kembali. Klik menu File dan pilih Site Manager.
  5. Pertama kita akan klik New site dan buat site baru dengan IP atau Domain FTP server. Isikan Form dengan ketentuan dibawah:
    • Host: isikan dengan alamat IP atau Domain FTP server.
    • Encryption: Pilih Require explicit FTP over TLS.
    • Logon Type: Pilih yang Ask for password.
    • User: isikan user yang akan digunakan untuk login ke FTP server.
    Kemudian klik connect untuk menghubungkan ke server FTP.
  6. Nantinya akan tampil Credential dari sertifikat SSL kita, ini wajar karena kita menggunakan Self Signed SSL. Cukup klik always trust this certificate in future sessions, dan klik ok.
  7. Jika berhasil kalian dapat melihat file tes yang telah dibuat tadi.

Kesimpulan

FTP atau yang dikenal File Transfer Protocol merupakan protokol pertukaran file antara server yang disebut FTP Server dengan klien. FTP Server ini merupakan server yang menjalankan layanan FTP untuk pertukaran file data antara server dan klien. Dengan menggunakan FTP Server klien dapat dengan mudah melakukan pertukaran data dengan syarat server dan klien saling terhubung pada suatu jaringan. Mungkin ini saja yang dapat saya jelaskan, semoga dengan artikel ini dapat membantu kalian dalam melakukan konfigurasi Proftpd di server ubuntu 20.04~.

Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkapnya.

Penulis : M. Syawal Saputra