File Transfer Protocol (FTP) adalah standar protokol jaringan pada layer application yang digunakan untuk melakukan transfer file antara client dan server, dengan nomor port 21. Ada 3 aplikasi FTP server yang umum digunakan di Unix-like yaitu Pure-FTPd, VsFTPd, dan ProFTPd. Pada tutorial ini saya menggunakan VsFTPd (Very secure FTP daemon) di Ubuntu 16.04.
-Install vsftpd-
[INPUT]1 sudo apt-get install vsftpd
-Konfigurasi-
Konfigurasi dasar
Buka file konfigurasi *vsftpd.conf*
[INPUT]1 sudo nano /etc/vsftpd.conf
Aktifkan opsi *write_enable* dengan menghapus karakter # dan ubah nilainya menjadi YES. Opsi ini agar dapat melakukan penulisan file (upload/create/delete) pada server.
[INPUT]1 write_enable=YES
Restart service dan cek statusnya
[INPUT]1 2 sudo systemctl restart vsftpd sudo systemctl status vsftpd
Uji konfigurasi dengan menggunakan aplikasi FTP client seperti FileZilla. Login menggunakan username dan password yang terdapat di sistem server dan upload file.
Konfigurasi chroot_local
Konfigurasi sebelumnya sudah bisa berjalan dengan baik, tapi user yang login bisa mengakses folder yang lain. Untuk itu perlu dikonfigurasi agar user yang login hanya berada pada folder home-nya saja */home/user*, tidak bisa lagi mengakses folder lain atau disebut juga *chroot jail*.
Buka kembali file vsftpd.conf, lalu aktifkan *chroot_local_user* dan tambahkan opsi *allow_writeable_chroot*. Setelah konfigurasi, restart service.
[INPUT]1 2 chroot_local_user=YES allow_writeable_chroot=YES
Uji kembali konfigurasi. Jika berhasil yang tampil hanya folder / (root), tapi sebenarnya itu adalah folder /home/user.
Konfigurasi local_root
Pada saat berhasil login secara default folder yang dituju adalah folder */home/user*. Nah, sekarang bagaimana caranya jika mau diarahkan ke folder lain, misalnya */var/www/user*. Hal ini dapat dilakukan dengan melakukan konfigurasi *local_root*.
Buka file konfigurasi dan tambahkan pada baris paling bawah opsi berikut ini. Jangan lupa restart service setelah konfigurasi.
[INPUT]1 2 user_sub_token=$USER local_root=/var/www/$USER
Buat direktori sesuai nama user pada */var/www* dan buat file di dalamnya sebagai penanda bahwa itu folder */var/www/user*.
[INPUT]1 2 3 4 5 sudo mkdir /var/www/namauser cd /var/www/namauser touch folder_var_www_namauser.txt sudo chown -R namauser:namauser /var/www/namauser sudo chmod -R 775 /var/www/namauser
Uji kembali konfigurasi
Konfigurasi Passive Mode
Tambahkan konfigurasi di bawah ini
[INPUT]1 2 3 pasv_enable=Yes pasv_min_port=10090 pasv_max_port=10100
Konfigurasi dot file (hidden file)
Pada sistem operasi Unix-like, file/folder yang diawali dengan karakter titik (.) menjadi tersembunyi (hidden). Contoh filenya adalah .htaccess. Jika ingin VsFTPd langsung menampilkan dot file tambahkan opsi di bawah ini.
[INPUT]1 force_dot_files=YES
Konfigurasi FTP over TLS
Pada log terdapat pesan *Status: Insecure server, it does not support FTP over TLS*, yang artinya belum ada enkripsi.
Langkah pertama adalah dengan melakukan generate key
[INPUT]1 openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Lalu isi identitas sertifikat
[INPUT]1 2 3 4 5 6 7 Country Name (2 letter code) [AU]: ID State or Province Name (full name) [Some-State]:Sulawesi Selatan Locality Name (eg, city) []:Makassar Organization Name (eg, company) [Internet Widgits Pty Ltd]:MusaAmin.Web.ID Organizational Unit Name (eg, section) []:Lab MusaAmin.Web.ID Common Name (e.g. server FQDN or YOUR name) []:musaamin.web.id Email Address []:mail@musaamin.web.id
Ubah nilai opsi konfigurasi di bawah ini
[INPUT]1 2 3 rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES
Dan tambahkan opsi
[INPUT]1 2 3 4 5 6 7 ssl_ciphers=HIGH ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO force_local_data_ssl=YES force_local_logins_ssl=YES require_ssl_reuse=NO
Restart service dan uji kembali konfigurasinya. Jika berhasil ditampilkan informasi sertifikat dan *Status: TLS connection established*.
Sekian dulu tutorial kali, semoga bisa membantu teman-teman sekalian.
selamat mencoba ð