Daemon FTP yang Sangat Aman, atau cukup vsFTPd adalah perangkat lunak ringan dengan kemampuan luar biasa untuk menyesuaikan. Dalam tutorial ini kita akan mengamankan instalasi yang sudah ada pada sistem Debian menggunakan sertifikat SSL/TLS yang kita tanda tangani sendiri. Meskipun ditulis untuk Debian, itu harus bekerja pada sebagian besar distribusi Linux seperti Ubuntu dan CentOS misalnya.
Instalasi vsFTPd
Pada VPS Linux yang baru, Anda harus menginstal vsFTPd terlebih dahulu. Meskipun Anda akan menemukan langkah-langkah dasar untuk menginstal vsFTPd dalam tutorial ini saya menyarankan Anda untuk membaca dua tutorial yang lebih mendetail ini juga:Setup vsFTPd di Debian/Ubuntu dan Menginstal vsFTPd di CentOS. Semua langkah mengenai penginstalan dijelaskan lebih hati-hati di sana.
Instalasi di Debian/Ubuntu:
apt-get install vsftpd
Instalasi di CentOS:
yum install epel-release
yum install vsftpd
Konfigurasi Buka file konfigurasi:/etc/vsftpd.conf di editor teks favorit Anda, dalam tutorial ini kami menggunakan nano
.
nano /etc/vsftpd.conf
Rekatkan baris berikut ke dalam konfigurasi:
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
Selesaikan dengan memulai ulang daemon vsFTPd Anda:
/etc/init.d/vsftpd restart
Sekarang Anda seharusnya dapat masuk sebagai pengguna lokal mana pun melalui FTP, sekarang mari kita lanjutkan dan mengamankan perangkat lunak ini.
Buat sertifikat yang ditandatangani sendiri
Sertifikat yang ditandatangani sendiri biasanya digunakan dalam protokol perjanjian kunci publik, Anda sekarang akan menggunakan openssl
untuk menghasilkan kunci publik dan kunci pribadi yang sesuai. Pertama-tama kita perlu membuat direktori untuk menyimpan dua file kunci ini, sebaiknya di lokasi yang aman yang tidak dapat diakses oleh pengguna biasa.
mkdir -p /etc/vsftpd/ssl
Sekarang untuk pembuatan sertifikat yang sebenarnya, kita akan menyimpan kedua kunci dalam file yang sama (/etc/vsftpd/ssl/vsftpd.pem ):
openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/vsftpd/ssl/vsftpd.pem -out /etc/vsftpd/ssl/vsftpd.pem
Setelah menjalankan perintah, Anda akan ditanya beberapa pertanyaan seperti kode negara, negara bagian, kota, nama organisasi, dll. Gunakan informasi Anda sendiri atau organisasi Anda. Sekarang baris yang paling penting adalah Nama umum yang harus cocok dengan alamat IP VPS Anda, atau nama domain yang mengarah ke sana.
Sertifikat ini akan berlaku selama 365 hari (~1 tahun), akan menggunakan protokol perjanjian kunci RSA dengan panjang kunci 4096 bit, dan file yang berisi kedua kunci tersebut akan disimpan di direktori baru yang baru saja kita buat. Untuk detail selengkapnya tentang panjang kunci dan hubungannya dengan keamanan, lihat ini:Rekomendasi Enkripsi II.
Instal sertifikat baru di dalam vsFTPd
Untuk mulai menggunakan sertifikat baru kami dan dengan demikian menyediakan enkripsi, kami perlu membuka file konfigurasi lagi:
nano /etc/vsftpd.conf
Kita perlu menambahkan jalur ke sertifikat dan file kunci baru kita. Karena mereka disimpan dalam file yang sama, itu juga harus sama di dalam konfigurasi.
rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/ssl/vsftpd.pem
Kita harus menambahkan baris ini untuk memastikan SSL akan diaktifkan:
ssl_enable=YES
Secara opsional, kami dapat memblokir pengguna anonim untuk menggunakan SSL, karena enkripsi tidak diperlukan pada server FTP publik.
allow_anon_ssl=NO
Selanjutnya kita perlu menentukan kapan harus menggunakan SSL/TLS, ini akan mengaktifkan enkripsi baik untuk transfer data dan kredensial login
force_local_data_ssl=YES
force_local_logins_ssl=YES
Kami juga dapat menentukan versi dan protokol apa yang akan digunakan. TLS umumnya lebih aman daripada SSL dan oleh karena itu kami dapat mengizinkan TLS dan pada saat yang sama memblokir versi SSL yang lebih lama.
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
Memerlukan penggunaan kembali SSL dan penggunaan sandi yang tinggi juga akan membantu meningkatkan keamanan. Dari halaman manual vsFTPd:
memerlukan_ssl_reuse Jika disetel ke ya, semua koneksi data SSL diperlukan untuk menunjukkan penggunaan kembali sesi SSL (yang membuktikan bahwa mereka mengetahui rahasia utama yang sama dengan saluran kontrol). Meskipun ini adalah default yang aman, ini dapat merusak banyak klien FTP, jadi Anda mungkin ingin menonaktifkannya. Untuk diskusi tentang konsekuensinya, lihat http://scarybeastsecurity.blogspot.com/2009/02/vsftpd-210-released.html (Ditambahkan di v2.1.0).
ssl_ciphers Opsi ini dapat digunakan untuk memilih sandi SSL vsftpd mana yang akan mengizinkan koneksi SSL terenkripsi. Lihat halaman manual cipher untuk detail lebih lanjut. Perhatikan bahwa membatasi cipher dapat menjadi tindakan pencegahan keamanan yang berguna karena mencegah pihak jauh yang jahat memaksa cipher yang mereka temukan bermasalah.
require_ssl_reuse=YES
ssl_ciphers=HIGH
Selesaikan dengan memulai ulang vsftpd
daemon
/etc/init.d/vsftpd restart
Konfirmasi pemasangan
Dan hanya itu, Anda sekarang harus dapat terhubung ke server Anda dan mengonfirmasi bahwa semuanya berfungsi. Jika Anda menggunakan FileZilla, dialog yang berisi informasi organisasi Anda (atau apa pun yang Anda masukkan saat membuat sertifikat sebelumnya) akan terbuka saat tersambung. Outputnya akan terlihat seperti ini:
Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Untuk mempelajari lebih lanjut tentang vsFTPd, lihat halaman manualnya:
man vsftpd