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
1 | sudo apt-get install vsftpd |
Konfigurasi
Konfigurasi dasar
Buka file konfigurasi vsftpd.conf
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.
1 | write_enable=YES |
Restart service dan cek statusnya
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.
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.
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.
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 |
Konfigurasi Passive Mode
Tambahkan konfigurasi di bawah ini
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.
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
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
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
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
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 🙂
sangat membatu om, buat ngerjain tugas SOBJ dari pak musa 🙂
Terimakasih ,akhirnya bisa akses file vps