Menyiapkan server FTP yang aman menggunakan SSL/TLS di Ubuntu

Menyiapkan server FTP yang aman menggunakan SSL/TLS di Ubuntu

Dalam tutorial ini, kami akan menjelaskan cara mengamankan a Ftp Server (Vsftpd berdiri untuk "Daemon FTP yang 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, kami akan mempelajari dasar -dasar memungkinkan layanan enkripsi di server FTP untuk transfer data yang aman sangat penting.

Persyaratan

  1. Anda harus menginstal dan mengkonfigurasi server FTP di Ubuntu

Sebelum kita melangkah lebih jauh, pastikan bahwa semua perintah dalam artikel ini akan dijalankan sebagai ROOT atau SUDO Privileged Account.

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

1. Kami akan mulai dengan membuat subdirektori di bawah: /etc/ssl/ untuk menyimpan SSL/TLS Sertifikat dan file utama jika tidak ada:

$ sudo mkdir/etc/ssl/private 

2. Sekarang mari kita 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 berlaku untuk skenario Anda.

Nama Negara (2 Kode Surat) [xx]:DI DALAM Nama Negara Bagian atau Provinsi (Nama Lengkap) []:Parel yang lebih rendah Nama Lokalitas (mis. Kota) [Kota Default]:Mumbai Nama Organisasi (mis. Perusahaan) [Default Company Ltd]:Tecmint.com Nama Unit Organisasi (misalnya, bagian) []:Linux dan Open Source Nama Umum (mis. Nama Anda atau nama host server Anda) []:tecmint Alamat email []:[Email dilindungi] 

Langkah 2: Mengkonfigurasi VSFTPD untuk menggunakan SSL/TLS di Ubuntu

3. Sebelum kami melakukan apapun Vsftpd Konfigurasi, bagi mereka yang mengaktifkan UFW Firewall, Anda harus membuka port 990 Dan 40000-50000 Untuk mengizinkan koneksi TLS dan rentang port port pasif untuk diatur masing -masing dalam file konfigurasi VSFTPD:

$ sudo ufw izinkan 990/tcp $ sudo ufw izinkan 40000: 50000/tcp $ sudo status UFW 

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_enable dan mengatur nilainya 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, komentari 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.kunci 

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, kami juga harus mencegah pengguna anonim menggunakan SSL, kemudian memaksa semua login non-anonim untuk menggunakan koneksi SSL yang aman untuk transfer data dan untuk mengirim kata sandi selama login:

allow_anon_ssl = no force_local_data_ssl = ya force_local_logins_ssl = ya 

7. Selain itu, kami dapat menggunakan opsi di bawah ini untuk menambahkan lebih banyak fitur keamanan di server FTP. Dengan opsi membutuhkan_ssl_reuse = ya, Semua koneksi data SSL diperlukan untuk menunjukkan penggunaan kembali sesi SSL; membuktikan bahwa mereka tahu rahasia utama yang sama dengan saluran kontrol. Jadi, kita harus menonaktifkannya.

membutuhkan_ssl_reuse = tidak 

Selain itu, kami dapat mengatur SSL Cipher VSFTPD mana yang akan mengizinkan koneksi SSL terenkripsi dengan SSL_CIPHERS pilihan. Ini akan membantu membuat frustrasi setiap upaya oleh penyerang yang mencoba memaksa sandi tertentu yang mungkin mereka temukan kerentanan dalam:

ssl_ciphers = tinggi 

8. Kemudian, mari kita tentukan rentang port (port min dan max) dari port pasif.

pasv_min_port = 40000 pasv_max_port = 50000 

9. Untuk mengaktifkan debugging SSL, yang berarti diagnostik koneksi OpenSSL direkam ke file log VSFTPD, kami dapat menggunakan debug_ssl pilihan:

debug_ssl = ya 

Akhirnya 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 jika VSFTPD sekarang menggunakan koneksi SSL/TLS dengan mencoba menggunakan FTP dari baris perintah seperti di bawah ini.

Dari output di bawah ini, ada pesan kesalahan yang memberi tahu kami VSFTPD hanya dapat mengizinkan pengguna (non-anonim) untuk masuk dari klien yang aman yang mendukung layanan enkripsi.

$ ftp 192.168.56.10 Terhubung ke 192.168.56.10 (192.168.56.10). 220 Selamat Datang di Tecmint.Layanan Com FTP. Nama (192.168.56.10: root): ravi 530 sesi non-anonim harus menggunakan enkripsi. Gagal masuk. Layanan 421 Tidak tersedia, server jarak jauh memiliki koneksi tertutup FTP> 

Baris perintah tidak mendukung layanan enkripsi sehingga menghasilkan 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.

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 lebih dari SSL/TLS dan banyak lagi. Untuk menginstal FileZilla pada mesin klien Linux, gunakan perintah berikut.

--------- Di debian/ubuntu --------- $ sudo apt-get install filezilla --------- Di centos/rhel/fedora --------- # YUM Instal Epel-Release FileZilla --------- Di Fedora 22+ --------- $ sudo dnf menginstal filezilla 

12. Setelah instalasi selesai, buka dan buka File => Situs Manajer atau (tekan Ctrl+s) untuk mendapatkan Manajer situs antarmuka di bawah ini.

Manajer Situs FileZilla

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

Klik Situs baru Tombol untuk Mengkonfigurasi Situs Baru/Host Koneksi.

Tuan rumah: 192.168.56.10 Protokol: FTP - Protokol Transfer File Enkripsi: Membutuhkan FTP eksplisit #RECECECEPEDY LOGON TYPE: Minta Kata Sandi Pengguna #Rekomisi: nama belakang 
Konfigurasikan Situs FTP Baru di FileZilla

14. Kemudian klik Menghubung dari antarmuka di atas untuk memasukkan kata sandi, dan kemudian verifikasi sertifikat yang digunakan untuk SSL/TLS koneksi, dan klik OKE Sekali lagi untuk terhubung ke server FTP:

Verifikasi Sertifikat SSL FTP

15. Sekarang, Anda harus berhasil masuk ke server FTP melalui koneksi TLS, periksa bagian Status Koneksi untuk informasi lebih lanjut dari antarmuka di bawah ini.

Terhubung ke server FTP ubuntu

16. Terakhir, mari kita mentransfer file dari mesin lokal ke FTP Sever di folder file, lihat di ujung bawah antarmuka FileZilla untuk melihat laporan tentang transfer file.

Amankan Transfer File FTP Menggunakan FileZilla

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 mengimplementasikan 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.