Cara Mengamankan Server FTP Menggunakan SSL/TLS Untuk Transfer File Aman di Centos 7

Cara Mengamankan Server FTP Menggunakan SSL/TLS Untuk Transfer File Aman di Centos 7

Dengan desain aslinya, Ftp (Protokol transfer file) tidak aman, artinya tidak mengenkripsi data yang ditransmisikan antara dua mesin, bersama dengan kredensial pengguna. Ini menimbulkan ancaman besar terhadap data serta keamanan server.

Dalam tutorial ini, kami akan menjelaskan cara mengaktifkan layanan enkripsi data secara manual di server FTP di CentOS/RHEL 7 dan Fedora; Kami akan melalui berbagai langkah mengamankan Vsftpd (Daemon FTP yang sangat aman) Layanan menggunakan SSL/TLS sertifikat.

Prasyarat:

  1. Anda harus menginstal dan mengonfigurasi server FTP di CentOS 7

Sebelum kita mulai, perhatikan bahwa semua perintah dalam tutorial ini akan dijalankan sebagai akar, Jika tidak, gunakan perintah sudo untuk mendapatkan hak istimewa root jika Anda tidak mengontrol server menggunakan akun root.

Langkah 1. Menghasilkan Sertifikat SSL/TLS dan Kunci Pribadi

1. Kita perlu mulai dengan membuat subdirektori di bawah: /etc/ssl/ dimana kita akan menyimpan SSL/TLS Sertifikat dan file kunci:

# mkdir/etc/ssl/private 

2. Kemudian jalankan perintah di bawah ini untuk membuat sertifikat dan kunci vsftpd Dalam satu file, berikut adalah penjelasan dari setiap bendera yang digunakan.

  1. req - adalah perintah untuk x.509 Manajemen Permintaan Penandatanganan Sertifikat (CSR).
  2. x509 - berarti x.509 Manajemen Data Sertifikat.
  3. hari -hari - mendefinisikan jumlah hari sertifikat berlaku untuk.
  4. Newkey - Menentukan prosesor kunci sertifikat.
  5. RSA: 2048 - Prosesor kunci RSA, akan menghasilkan kunci pribadi 2048 bit.
  6. keyout - Mengatur file penyimpanan kunci.
  7. keluar - Menetapkan file penyimpanan sertifikat, perhatikan bahwa baik sertifikat dan kunci disimpan dalam file yang sama: /etc/ssl/private/vsftpd.PEM.
# 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, ingatlah untuk menggunakan 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

3. Sebelum kita melakukan konfigurasi VSFTPD, mari kita buka port 990 Dan 40000-50000 Untuk mengizinkan koneksi TLS dan rentang port port pasif untuk menentukan masing -masing dalam file konfigurasi VSFTPD:

# firewall-cmd --zone = public --permanent --add-port = 990/tcp # firewall-cmd --zone = public --permanent --add-port = 40000-50000/tcp # firewall-cmd- Muat ulang 

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

# vi/etc/vsftpd/vsftpd.conf 

Cari opsinya ssl_enable dan mengatur nilainya YA Untuk mengaktifkan penggunaan SSL, di samping itu, karena TSL lebih aman daripada SSL, kami akan membatasi VSFTPD untuk menggunakan TLS sebagai gantinya, menggunakan ssl_tlsv1_2 pilihan:

ssl_enable = ya ssl_tlsv1_2 = ya ssl_sslv2 = tidak ssl_sslv3 = tidak 

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

allow_anon_ssl = no force_local_data_ssl = ya force_local_logins_ssl = ya 

7. Selain itu, kami dapat menambahkan opsi di bawah ini untuk meningkatkan keamanan server FTP. Saat opsi membutuhkan_ssl_reuse diatur ke YA, Kemudian, semua koneksi data SSL diperlukan untuk menunjukkan penggunaan kembali sesi SSL; membuktikan bahwa mereka tahu rahasia utama yang sama dengan saluran kontrol.

Karena itu, kita harus mematikannya.

membutuhkan_ssl_reuse = tidak 

Sekali lagi, kita perlu memilih SSL Cipher VSFTPD mana yang akan mengizinkan koneksi SSL terenkripsi dengan SSL_CIPHERS pilihan. Ini dapat sangat membatasi upaya penyerang yang mencoba memaksa sandi tertentu yang mungkin mereka temukan kerentanan dalam:

ssl_ciphers = tinggi 

8. Sekarang, atur rentang port (min dan port max) dari port pasif.

pasv_min_port = 40000 pasv_max_port = 50000 

9. Secara opsional, izinkan SSL Debugging, yang berarti diagnostik koneksi openssl dicatat ke file log VSFTPD dengan debug_ssl pilihan:

debug_ssl = ya 

Simpan semua perubahan dan tutup file. Lalu mari kita restart layanan vsftpd:

# Systemctl Restart vsftpd 

Langkah 3: Menguji server FTP dengan koneksi SSL/TLS

10. Setelah melakukan semua konfigurasi di atas, uji jika VSFTPD menggunakan koneksi SSL/TLS dengan mencoba menggunakan FTP dari baris perintah sebagai berikut:

# 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> 
Verifikasi Koneksi Aman SSL FTP

Dari bidikan layar di atas, kita dapat melihat bahwa ada kesalahan yang memberi tahu kami bahwa VSFTPD hanya dapat memungkinkan pengguna untuk masuk dari klien yang mendukung layanan enkripsi.

Baris perintah tidak menawarkan layanan enkripsi sehingga menghasilkan kesalahan. Jadi, untuk terhubung dengan aman ke server, kami membutuhkan klien FTP yang mendukung koneksi SSL/TLS seperti FileZilla.

Langkah 4: Instal FileZilla untuk terhubung dengan aman ke server FTP

11. FileZilla adalah klien FTP lintas platform modern, populer, dan penting yang mendukung koneksi SSL/TLS secara default.

Untuk menginstal FileZilla di Linux, jalankan perintah di bawah ini:

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

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

Klik Situs baru Tombol untuk Menambahkan Situs Baru/Detail Koneksi Host.

Tambahkan Situs FTP Baru di FileZilla

13. Selanjutnya, atur 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):

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 
Tambahkan Detail Server FTP di FileZilla

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

Verifikasi Sertifikat SSL FTP

Pada tahap ini, kita 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 melalui TLS/SSL

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

Transfer file dengan aman menggunakan FTP

Itu saja! Selalu ingat bahwa FTP tidak aman secara default, kecuali kami mengkonfigurasinya untuk menggunakan koneksi SSL/TLS seperti yang kami tunjukkan dalam tutorial ini. Bagikan pemikiran Anda tentang tutorial/topik ini melalui formulir umpan balik di bawah ini.