Konfigurasi vsftpd menggunakan SSL/TLS - FTP adalah salah satu protokol yang digunakan untuk transfer file antara komputer local dengan remote komputer dan berjalan pada dua port; port 21 untuk command port, dan port 20 untuk data port.
Banyak layanan FTP server yang tersedia untuk GNU/Linux, salah satunya vsftpd (Very Secure FTP Daemon).
Pada tutorial ini, vsftpd akan difungsikan dengan SSL agar komunikasi data antara local komputer dengan remote computer dapat dilindungi dengan enkripsi
Sebelum melakukan instalasi, pastikan sudah masuk mode root dengan perintah su pada debian atau sudo su pada ubuntu
Install vsftpd
apt-get install vsftpd -y
Tunggu hingga proses instalasi selesai.
Konfigurasi file vsftpd
File vsftpd hanya memiliki satu file konfigurasi utama, yang berada di direktori /etc
nano /etc/vsftpd.conf
cari dan nonaktifkan parameter anonymous_enable pada file konfigurasi, agar user anonymous tidak bisa login ke layanan ftp server
anonymous_enable=NO
atau anda dapat mengganti parameter tsb, menjadi YES jika ingin user anonymous bisa mengakses layanan ftp server. Tapi ini bisa mengancam keamanan daripada layanan ftp sendiri.
Tidak jauh dari parameter anonim, ada parameter local_enable, berfungsi agar user local yang ada di sistem bisa login ke layanan ftp server.
local_enable=YES
Agar user yang telah login bisa melakukan modifikasi terhadap file sistem ubah parameter berikut
write_enable=YES
Dan juga pastikan user akan di redirect ke directory home nya masing - masing dengan mengubah parameter chroot_local_user
chroot_local_user=YES
Simpan dan tutup file konfigurasi Ctrl+O lalu Ctrl+X.
Konfigurasi SSL dengan vsftpd
Pertama, kita perlu membuat sertifikat SSL/TLS, anda bisa memasukkan command dibawah berikut ini
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -out /etc/ssl/private/vsftpd.pem -keyout /etc/ssl/private/vsftpd.pem
Dari command diatas system akan membuat sertifikat SSL selama 1 tahun, dimana sertifikat tsb disimpan di direktori /etc/ssl
Kemudian, tambahkan sedikit konfigurasi pada file /etc/vsftpd.conf tadi agar layanan ftp server dapat berjalan dengan SSL
nano /etc/vsftpd.conf
Cari pada bagian paling bawah file, ada parameter SSL yang sudah diaktifkan
rsa_cert_file=/etc/ssl/private/vsftpd.pem
Ketika membuat sertifikat SSL tadi, sebenarnya kita membuat dua sertifikat maka kita hanya perlu menambahkan satu sertifikat lagi
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
Setelah itu kita tambahkan paramater agar user dipaksa untuk login menggunakan sertifikat SSL/TLS
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
Dari parameter diatas, bisa dipastikan user anonim tak akan bisa login menggunakan sertifikat SSL, namun anda bisa mengubahnya sesuai keperluan.
Terakhir, anda perlu menambahkan beberapa opsi agar proses handshake antara client dengan server bisa dilakukan
require_ssl_reuse=NO
ssl_ciphers=HIGH
ssl_ciphers=HIGH
Simpan dan tutup file konfigurasi.
Pengujian dari client via Filezilla
Sekarang ini, sebagian besar client telah menggunakan Aplikasi ftp modern Filezilla disamping menggunakan browser bawaan.Buka aplikasi filezilla, kemudian pilih Site Manager pada tab File (pojok kiri atas)
Kemudian akan terbuka jendela Site Manager, pilih New Site lalu isi informasi yang diperlukan di sebelah kanan. Pada "Encryption" menu, pilih Require explisit FTP over TLS. Sedangkan "Logon Type" plih Ask for password, serta jangan lupa untuk mengisi user yang digunakan untuk login.
Setelah user diminta memasukkan password, akan muncul informasi sertifikat milik server ftp
Sekarang user sudah terkoneksi dengan ftp server yang disertai enkripsi SSL/TLS.
Sekian & Terimakasih




5 comments
Write commentsinfo yang sangat berkelas gan makasih
Replykebetulan gan lagi nyri buat bikin tugas, tkj ya.. ?
Replyakhirnya nemuin ini turorialnya :)
ReplyMantap makasih gan tutornya
ReplyUser sma pass'a kok slah ya wktu di msukkan? Pdahal sudah saya buat user'a. Adduser ftptest, tpi pas di isi di filezilla malah ngk bsa
ReplyEmoticonEmoticon