GNU/Linux >> Belajar Linux >  >> Linux

Cara mengamankan layanan email Linux Anda dengan SSL/TLS

Secara tradisional, layanan email mengirim data dengan cara yang tidak terlindungi—apakah Anda mengirim email melalui SMTP atau menerimanya melalui IMAP atau POP, defaultnya adalah teks yang jelas. Dengan lebih banyak aplikasi online yang menerapkan enkripsi dan konsensus umum untuk melindungi data Anda, yang terbaik adalah mengamankan layanan email Anda dengan sertifikat keamanan Secure Sockets Layer/Transport Layer Security (SSL/TLS).

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Pertama, tinjauan singkat tentang layanan dan protokol email. Email dikirim melalui layanan yang disebut Simple Mail Transport Protocol (SMTP) menggunakan TCP port 25. Protokol ini mengirimkan email dari server ke server berdasarkan pencarian record DNS mail exchanger (MX). Setelah email di server email, itu diambil menggunakan salah satu dari dua layanan:Internet Message Access Protocol (IMAP) menggunakan port TCP 143, atau Post Office Protocol (POP3) menggunakan port TCP 110. Semua layanan ini, secara default, kirim email dan autentikasi Anda ke/dari layanan ini dalam teks biasa—dengan demikian, sangat tidak terlindungi!

Untuk melindungi data email dan otentikasi, layanan ini telah menambahkan fitur keamanan di mana mereka dapat menggunakan sertifikat SSL/TLS untuk membungkus aliran data dan komunikasi dengan enkripsi. Cara enkripsi SSL/TLS mengamankan informasi berada di luar cakupan artikel ini, tetapi artikel keamanan internet Bryant Son membahasnya dengan sangat mendetail. Pada tingkat tinggi, enkripsi SSL/TLS adalah algoritma enkripsi publik/pribadi.

Dengan menambahkan fitur keamanan ini ke dalam layanan, mereka dapat mendengarkan pada port TCP baru:

Layanan Port TCP Default Port SSL/TLS
SMTP 25 587
IMAP 143 993
POP3 110 995

Buat sertifikat SSL/TLS

Sertifikat SSL/TLS dapat dibuat secara gratis menggunakan alat seperti OpenSSL, atau dapat dibeli dengan kisaran harga dari otoritas sertifikat publik (CA). Di masa lalu, membuat sertifikat Anda sendiri mudah dan berhasil dalam banyak kasus, tetapi dengan meningkatnya permintaan akan keamanan yang lebih baik, sebagian besar klien email tidak mempercayai sertifikat SSL/TLS yang dibuat sendiri tanpa pengecualian manual.

Jika kasus penggunaan Anda bersifat pribadi atau untuk pengujian, menghemat uang dengan sertifikat yang dibuat sendiri masuk akal. Namun, jika Anda meluncurkan ini ke grup besar atau memiliki pelanggan yang membayar, lebih baik Anda membeli sertifikat dari perusahaan publik tepercaya yang menjualnya.

Dalam kedua kasus tersebut, proses untuk mulai meminta sertifikat baru adalah dengan menggunakan alat OpenSSL di sistem Linux Anda untuk membuat permintaan penandatanganan sertifikat (CSR):

$ openssl req -new -newkey rsa:2048 -nodes -keyout mail.mydomain.key -out mail.mydomain.csr 

Perintah ini akan membuat CSR dan kunci pribadi baru secara bersamaan untuk layanan yang Anda coba amankan. Proses ini akan menanyakan sejumlah pertanyaan yang terkait dengan sertifikat:detail lokasi, nama domain yang sepenuhnya memenuhi syarat server (FQDN), informasi kontak email, dll. Setelah Anda mengisi informasi, kunci dan CSR akan dibuat.

Jika Anda membuat sertifikat sendiri

Jika Anda ingin membuat sertifikat Anda sendiri, Anda harus membuat CA root Anda sendiri sebelum mengeluarkan perintah CSR di atas. Anda dapat membuat CA root Anda sendiri dengan:

$ openssl genrsa -des3 -out myCA.key 2048 

Ini akan meminta Anda untuk menambahkan frasa sandi. Harap berikan frasa sandi yang aman dan jangan sampai hilang—ini adalah kunci CA root pribadi Anda, dan seperti yang disebutkan namanya, ini adalah akar dari semua kepercayaan pada sertifikat Anda.

Selanjutnya, buat sertifikat CA root:

$ openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem 

Setelah menjawab beberapa pertanyaan lagi, Anda akan membuat sertifikat CA root dengan masa pakai lima tahun.

Dengan menggunakan file CSR dari langkah-langkah di atas, Anda dapat meminta sertifikat baru untuk dibuat dan ditandatangani oleh CA root yang baru saja Anda buat:

$ openssl x509 -req -in mail.mydomain.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out mail.mydomain.pem -days 1825 -sha256 

Masukkan frasa sandi kunci CA root pribadi Anda untuk membuat dan menandatangani sertifikat.

Sekarang Anda memiliki dua file yang diperlukan untuk mengonfigurasi layanan email Anda untuk keamanan yang ditingkatkan:file kunci pribadi, mail.domainsaya.key , dan file sertifikat publik, mail.domainsaya.pem .

Jika Anda membeli sertifikat

Jika Anda membeli sertifikat dari vendor, itu akan meminta Anda untuk mengunggah CSR itu ke sistemnya, karena digunakan sebagai input untuk menghasilkan sertifikat SSL/TLS. Sertifikat akan dapat diakses sebagai file (seperti mail.domainsaya.pem ). Banyak vendor SSL juga mengharuskan Anda mengunduh sertifikat perantara. Jika demikian, Anda harus menggabungkan dua file sertifikat menjadi satu, sehingga layanan email dapat memproses keduanya secara bersamaan. Anda dapat menggabungkan sertifikat Anda dengan sertifikat perantara pihak ketiga dengan:

$ cat mail.mydomain.pem gd_bundle-g2-g1.crt > mail.mydomain.pem 

Perhatikan bahwa ekstensi file keluaran adalah .pem , yang merupakan singkatan dari Privacy-Enhanced Mail.

Sekarang Anda memiliki dua file yang Anda perlukan untuk mengonfigurasi layanan email Anda untuk keamanan yang ditingkatkan:file kunci pribadi, mail.domainsaya.key , dan file sertifikat gabungan publik, mail.domainsaya.pem .

Buat direktori aman untuk file Anda

Baik Anda membuat kunci sendiri atau membelinya dari vendor, buat direktori aman milik root untuk dua file yang Anda buat di atas. Contoh alur kerja untuk membuat permainan aman adalah:

$ mkdir /etc/pki/tls
$ chown root:root /etc/pki/tls
$ chmod 700 /etc/pki/tls

Pastikan untuk mengatur izin pada file Anda setelah Anda menyalinnya ke /etc/pki/tls dengan:

$ chmod 600 /etc/pki/tls/* 

Konfigurasikan layanan SMTP dan IMAP Anda

Selanjutnya, konfigurasikan layanan SMTP dan IMAP untuk menggunakan sertifikat keamanan baru. Program yang digunakan dalam contoh ini untuk SMTP dan IMAP adalah postfix dan merpati .

Sunting / dst / postfix/main.cf di editor teks pilihan Anda. Tambahkan baris berikut:

smtpd_use_tls =yes
smtpd_tls_cert_file =/etc/pki/tls/mail.mydomain.pem
smtpd_tls_key_file =/etc/pki/tls/mail.mydomain.key

Sesuaikan konfigurasi Anda

Opsi berikut memungkinkan Anda untuk menonaktifkan/mengaktifkan sandi yang berbeda, protokol, dll.:

smtpd_tls_eecdh_grade =kuat
smtpd_tls_protocols=!SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_protocols=!SSLv3, !_SSLv1, !SSLv1, ! tinggi
smtpd_tls_security_level=mungkin
smtpd_tls_ciphers =tinggi
tls_preempt_cipherlist =ya
smtpd_tls_mandatory_exclude_ciphers =aNULL, MD5 , DES, ADH, RC4, ,clude_ =aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
smtp_tls_mandatory_protocols =!SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols =!SSLv2 =! TLSv1, !TLSv1.1

Edit /etc/dovecot/dovecot.conf dengan menambahkan tiga baris ini:

ssl =diperlukan
ssl_cert =ssl_key =

Tambahkan opsi berikut untuk menonaktifkan/mengaktifkan cipher, protokol, dan lainnya yang berbeda (saya akan menyerahkan pemahaman dan mempertimbangkannya kepada Anda):

ssl_cipher_list =EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSEC:EECDH+aRSA +aRSA:ALL:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SSLv2
ssl_prefer_server_ciphers =yes
ssl_protocols =!SSLv2 !SSLv3 !TLSv1 !TLSv1.1
ssl_min_protocol =TLSv1.2

Setel konteks untuk SELinux

Jika distribusi Linux Anda telah mengaktifkan SELinux, atur konteks SELinux yang benar untuk file sertifikat baru Anda.

Untuk SELinux Postfix:

$ chcon -u system_u -t cert_t mail.mydomain.* 

Untuk Dovecot SELinux:

$ chcon -u system_u -t dovecot_cert_t mail.mydomain.* 

Mulai ulang kedua layanan dan hubungkan dengan konfigurasi klien email Anda yang diperbarui. Beberapa klien email akan otomatis mendeteksi nomor port baru; orang lain akan meminta Anda untuk memperbaruinya.

Uji penyiapan Anda

Uji cepat dari baris perintah dengan openssl dan s_klien pengaya:

$ openssl s_client -sambungkan mail.domainsaya.com:993
$ openssl s_client -starttls imap -hubungkan mail.domainsaya.com:143
$ openssl s_client -starttls smtp -hubungkan mail.domainsaya. com:587

Perintah pengujian ini akan menampilkan banyak data tentang koneksi, sertifikat, sandi, sesi, dan protokol yang Anda gunakan. Ini bukan hanya cara yang baik untuk memvalidasi bahwa konfigurasi baru berfungsi, tetapi juga untuk mengonfirmasi bahwa Anda menggunakan sertifikat yang sesuai dan setelan keamanan yang Anda tetapkan di postfix atau dovecot file konfigurasi.

Tetap aman!


Linux
  1. Cara mengamankan akun yang mendukung cPanel dengan sertifikat SSL Lets Encrypt

  2. Cara Mengamankan vsFTPd Dengan SSL/TLS

  3. Bagaimana Mengkonfigurasi VSFTPD dengan koneksi terenkripsi SSL/TLS?

  1. Cara mengamankan akun yang mendukung cPanel dengan sertifikat SSL Sectigo

  2. Bagaimana mengelola Lets Encrypt sertifikat SSL/TLS dengan certbot

  3. Cara Mengelola Layanan Systemd dengan Systemctl di Linux

  1. Cara Mengamankan nama host Plesk pada port 8443 dengan sertifikat SSL

  2. Cara mengamankan koneksi dengan sertifikat SSL/TLS

  3. Cara mengamankan koneksi SSL dengan Apache di Ubuntu 18.04