Dalam tutorial ini, kami akan menjelaskan cara mengamankan FTP pelayan (VSFTPD berdiri untuk "Daemon FTP Sangat Aman") menggunakan SSL/TLS di dalam Ubuntu 16.04/16.10.
Jika Anda ingin mengatur server FTP yang aman untuk distribusi berbasis CentOS, Anda dapat membaca – Amankan 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 sangat penting.
Sebelum melangkah lebih jauh, pastikan semua perintah di artikel ini akan dijalankan sebagai root atau akun istimewa sudo.
1. Kami akan mulai dengan membuat subdirektori di bawah: /etc/ssl/ untuk menyimpan SSL/TLS sertifikat dan file kunci jika 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 untuk memasukkan nilai yang sesuai dengan skenario Anda.
Nama Negara (kode 2 huruf) [XX]:DI DALAM
Nama Negara Bagian atau Provinsi (nama lengkap) []:Parel Bawah
Nama Lokalitas (mis., kota) [Kota Default]:Mumbai
Nama Organisasi (misalnya, perusahaan) [Default Company Ltd]:TecMint.com
Nama Unit Organisasi (misalnya, bagian) []:Linux dan Sumber Terbuka
Nama Umum (misalnya, nama Anda atau nama host server Anda) []:dekat
Alamat email []:[dilindungi email]
3. Sebelum kita melakukan apapun VSFTPD konfigurasi, bagi mereka yang memiliki Firewall UFW diaktifkan, Anda harus membuka port 990 dan 40000-50000 untuk mengizinkan koneksi TLS dan kisaran port dari port pasif untuk masing-masing diatur dalam file konfigurasi VSFTPD:
$ sudo ufw izinkan 990/tcp. $ sudo ufw izinkan 40000:50000/tcp. $ sudo ufw status.
4. Sekarang, buka file konfigurasi VSFTPD dan tentukan detail SSL di dalamnya:
$ sudo vi /etc/vsftpd/vsftpd.conf. ATAU. $ sudo nano /etc/vsftpd/vsftpd.conf.
Kemudian, tambahkan atau temukan opsi ssl_aktifkan
dan atur nilainya menjadi YA untuk mengaktifkan penggunaan SSL, sekali lagi, karena TLS lebih aman daripada SSL, kami akan membatasi VSFTPD untuk menggunakan TLS sebagai gantinya, dengan mengaktifkan ssl_tlsv1
pilihan:
ssl_enable=YA. ssl_tlsv1=YA. ssl_sslv2=TIDAK. ssl_sslv3=TIDAK.
5. Selanjutnya, beri komentar pada baris di bawah ini 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, kemudian memaksa semua login non-anonim untuk menggunakan koneksi SSL aman untuk transfer data dan untuk mengirim kata sandi saat login:
allow_anon_ssl=TIDAK. force_local_data_ssl=YA. force_local_logins_ssl=YA.
7. Selanjutnya, kita dapat menggunakan opsi di bawah ini untuk menambahkan lebih banyak fitur keamanan di server FTP. Dengan pilihan require_ssl_reuse=YA
, 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=TIDAK.
Selain itu, kami dapat mengatur sandi SSL mana yang akan diizinkan VSFTPD untuk koneksi SSL terenkripsi dengan ssl_cipher
pilihan. Ini akan membantu menggagalkan upaya penyerang yang mencoba memaksa sandi tertentu yang mungkin mereka temukan kerentanannya di:
ssl_ciphers=TINGGI.
8. Kemudian, 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: debug_ssl
pilihan:
debug_ssl=YA.
Terakhir simpan file dan tutup. Kemudian restart layanan VSFTPD:
$ systemctl restart vsftpd.
10. Setelah melakukan semua konfigurasi di atas, uji apakah VSFTPD sekarang menggunakan koneksi SSL/TLS dengan mencoba gunakan FTP dari baris perintah seperti di bawah ini.
Dari output di bawah ini, ada pesan kesalahan yang memberi tahu kami bahwa VSFTPD hanya dapat mengizinkan pengguna (non-anonim) untuk masuk dari klien aman yang mendukung layanan enkripsi.
$ftp 192.168.56.10 Terhubung ke 192.168.56.10 (192.168.56.10). 220 Selamat datang di layanan FTP TecMint.com. Nama (192.168.56.10:root): ravi. 530 Sesi non-anonim harus menggunakan enkripsi. Gagal masuk. 421 Layanan tidak tersedia, server jarak jauh telah menutup koneksi. ftp>
Baris perintah tidak mendukung layanan enkripsi sehingga mengakibatkan kesalahan di atas. Oleh karena itu, untuk terhubung dengan aman ke server FTP dengan layanan enkripsi diaktifkan, kami memerlukan klien FTP yang mendukung koneksi SSL/TLS secara default, seperti FileZilla.
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.
Di Debian/Ubuntu $ sudo apt-get install filezilla Di CentOS/RHEL/Fedora # yum install epel-release filezilla Di Fedora 22+ $ sudo dnf instal filezilla.
12. Setelah instalasi selesai, buka dan pergi ke File => Manajer Situs atau (tekan Ctrl+S) untuk mendapatkan Manajer situs antarmuka di bawah ini.
13. Sekarang, tentukan nama host/situs, tambahkan alamat IP, tentukan protokol yang akan digunakan, enkripsi dan jenis logon seperti pada tangkapan layar di bawah ini (gunakan nilai yang berlaku untuk skenario Anda):
Klik Situs Baru tombol untuk mengonfigurasi koneksi situs/host baru.
Tuan rumah: 192.168.56.10 Protokol: FTP – Protokol Transfer File Enkripsi: Memerlukan FTP eksplisit over #Jenis Logon yang direkomendasikan: Minta kata sandi #Pengguna yang direkomendasikan: nama pengguna
14. Kemudian klik Menghubung dari antarmuka di atas untuk memasukkan kata sandi, lalu verifikasi sertifikat yang digunakan untuk SSL/TLS koneksi, dan klik oke sekali lagi untuk terhubung ke server FTP:
15. Sekarang, Anda seharusnya berhasil masuk ke server FTP melalui koneksi TLS, periksa bagian status koneksi untuk informasi lebih lanjut dari antarmuka di bawah ini.
16. Terakhir, ayo mentransfer file dari mesin lokal ke server FTP di folder file, lihat bagian bawah antarmuka FileZilla untuk melihat laporan tentang transfer file.
Itu saja! Selalu ingat 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 ini untuk berbagi masalah atau pemikiran Anda tentang tutorial/topik ini.