Menyiapkan Server FTP Aman menggunakan SSL/TLS di Ubuntu


Dalam tutorial ini, kami akan menjelaskan cara mengamankan server FTP (VSFTPD adalah singkatan dari “Very Secure FTP Daemon ”) menggunakan SSL /TLS di Ubuntu 16.04/16.10.

Jika Anda ingin menyiapkan server FTP yang aman untuk distribusi berbasis CentOS, Anda dapat membaca – Mengamankan Server FTP Menggunakan SSL/TLS di CentOS

Setelah mengikuti berbagai langkah dalam panduan ini, kita akan mempelajari dasar-dasar mengaktifkan layanan enkripsi di server FTP untuk transfer data yang aman sangatlah penting.

Persyaratan

  1. Anda harus Menginstal dan Mengonfigurasi Server FTP di Ubuntu

Sebelum melangkah lebih jauh, pastikan semua perintah dalam artikel ini akan dijalankan sebagai akun istimewa root atau sudo.

Langkah 1: Menghasilkan Sertifikat SSL/TLS untuk FTP di Ubuntu

1. Kita akan mulai dengan membuat subdirektori di bawah: /etc/ssl/ untuk menyimpan sertifikat dan file kunci SSL/TLS jika tidak tidak ada:

sudo mkdir /etc/ssl/private

2. Sekarang mari buat sertifikat dan kunci dalam satu file, dengan menjalankan perintah di bawah ini.

sudo openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048

Perintah di atas akan meminta Anda untuk menjawab pertanyaan di bawah ini, jangan lupa memasukkan nilai yang sesuai dengan skenario Anda.

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email 

Langkah 2: Mengonfigurasi VSFTPD untuk Menggunakan SSL/TLS di Ubuntu

3. Sebelum kami melakukan konfigurasi VSFTPD apa pun, bagi mereka yang mengaktifkan firewall UFW, Anda harus membuka port 990 dan 40000 -50000 untuk mengizinkan koneksi TLS dan rentang port dari port pasif diatur masing-masing dalam file konfigurasi VSFTPD:

sudo ufw allow 990/tcp
sudo ufw allow 40000:50000/tcp
sudo ufw status

4. Sekarang, buka file konfigurasi VSFTPD dan tentukan detail SSL di dalamnya:

sudo vi /etc/vsftpd/vsftpd.conf
OR
sudo nano /etc/vsftpd/vsftpd.conf

Kemudian, tambahkan atau cari opsi ssl_enable dan atur nilainya menjadi YES untuk mengaktifkan penggunaan SSL, sekali lagi, karena TLS lebih aman daripada SSL, kami akan membatasi VSFTPD untuk gunakan TLS sebagai gantinya, dengan mengaktifkan opsi ssl_tlsv1:

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

5. Selanjutnya, beri komentar pada baris di bawah ini dengan menggunakan karakter # sebagai berikut:

#rsa_cert_file=/etc/ssl/private/ssl-cert-snakeoil.pem
#rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Setelah itu, tambahkan baris di bawah ini untuk menentukan lokasi sertifikat SSL dan file kunci:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

6. Sekarang, kita juga harus mencegah pengguna anonim menggunakan SSL, lalu memaksa semua login non-anonim untuk menggunakan koneksi SSL aman untuk transfer data dan mengirim kata sandi saat login:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

7. Selanjutnya, kita dapat menggunakan opsi di bawah ini untuk menambahkan lebih banyak fitur keamanan di server FTP. Dengan opsi require_ssl_reuse=YES, semua koneksi data SSL diperlukan untuk menunjukkan penggunaan kembali sesi SSL; membuktikan bahwa mereka mengetahui rahasia utama yang sama dengan saluran kontrol. Jadi, kita harus menonaktifkannya.

require_ssl_reuse=NO

Selain itu, kita dapat mengatur cipher SSL mana yang akan diizinkan oleh VSFTPD untuk koneksi SSL terenkripsi dengan opsi ssl_ciphers. Hal ini akan membantu menggagalkan segala upaya penyerang yang mencoba memaksakan sandi tertentu yang mungkin mereka temukan kerentanannya:

ssl_ciphers=HIGH

8. Lalu, mari kita tentukan rentang port (port min dan maks) dari port pasif.

pasv_min_port=40000
pasv_max_port=50000

9. Untuk mengaktifkan debugging SSL, artinya diagnostik koneksi openSSL dicatat ke file log VSFTPD, kita dapat menggunakan opsi debug_ssl:

debug_ssl=YES

Terakhir simpan file dan tutup. Kemudian restart layanan VSFTPD:

systemctl restart vsftpd

Langkah 3: Verifikasi FTP dengan Koneksi SSL/TLS di Ubuntu

10. Setelah melakukan semua konfigurasi di atas, uji apakah VSFTPD sekarang menggunakan koneksi SSL/TLS dengan mencoba menggunakan FTP dari baris perintah seperti di bawah ini.

Dari keluaran di bawah, terdapat pesan kesalahan yang memberitahukan bahwa VSFTPD hanya dapat mengizinkan pengguna (non-anonim) untuk masuk dari klien aman yang mendukung layanan enkripsi.

ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>

Baris perintah tidak mendukung layanan enkripsi sehingga mengakibatkan kesalahan di atas. Oleh karena itu, untuk terhubung secara aman ke server FTP dengan layanan enkripsi diaktifkan, kita memerlukan klien FTP yang mendukung koneksi SSL/TLS secara default, seperti FileZilla.

Langkah 4: Instal FileZilla Pada Klien untuk Menghubungkan FTP dengan Aman

FileZilla adalah klien FTP lintas platform yang kuat dan banyak digunakan yang mendukung FTP melalui SSL/TLS dan banyak lagi. Untuk menginstal FileZilla di mesin klien Linux, gunakan perintah berikut.

--------- On Debian/Ubuntu ---------
sudo apt-get install filezilla   

--------- On CentOS/RHEL/Fedora --------- 
yum install epel-release filezilla

--------- On Fedora 22+ --------- 
sudo dnf install filezilla

12. Setelah instalasi selesai, buka dan buka File=>Sites Manager atau (tekan Ctrl+S) untuk mendapatkan Pengelola Situs di bawah.

13. Sekarang, tentukan nama host/situs, tambahkan alamat IP, tentukan protokol yang akan digunakan, enkripsi, dan jenis logon seperti pada cuplikan layar di bawah ini (gunakan nilai yang sesuai dengan skenario Anda):

Klik tombol Situs Baru untuk mengonfigurasi koneksi situs/host baru.

Host:  192.168.56.10
Protocol:  FTP – File Transfer Protocol
Encryption:  Require explicit FTP over   #recommended 
Logon Type: Ask for password	        #recommended 
User: username

14. Kemudian klik Hubungkan dari antarmuka di atas untuk memasukkan kata sandi, lalu verifikasi sertifikat yang digunakan untuk koneksi SSL/TLS, dan klik OK sekali lagi untuk terhubung ke server FTP:

15. Sekarang, Anda seharusnya sudah berhasil masuk ke server FTP melalui koneksi TLS, periksa bagian status koneksi untuk informasi lebih lanjut dari antarmuka di bawah.

16. Terakhir, mari kita transfer file dari mesin lokal ke server FTP di folder file, lihat bagian bawah antarmuka FileZilla untuk melihat laporan mengenai transfer file.

Itu saja! Ingatlah selalu bahwa menginstal server FTP tanpa mengaktifkan layanan enkripsi memiliki implikasi keamanan tertentu. Seperti yang kami jelaskan dalam tutorial ini, Anda dapat mengonfigurasi server FTP untuk menggunakan koneksi SSL/TLS untuk menerapkan keamanan di Ubuntu 16.04/16.10.

Jika Anda menghadapi masalah dalam menyiapkan SSL/TLS di server FTP, gunakan formulir komentar di bawah untuk menyampaikan masalah atau pemikiran Anda mengenai tutorial/topik ini.