Monday, June 5, 2017

[CentOS 7] LAB 10.3 Configure SSL for Mail Server

Assalamuallaikum 
WarahmatullahiWabarakatuh.

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

Selamat siang semua, selamat datang kembali di blog ini. Pada siang hari ini ane tetp semangat untuk menyebarkan ilmu yang InshaAllah bermanfaat yaa hehe Amin yaa rabbal alamin. Pada artikel ini ane mau sharing lagi, materi yang akan disampaikan masih sama seperti lab sebelumnya yaitu mengenai Mail Server, tetapi kali ini Mail Servernya akan kita konfiguras menjadi secure.


Jadi nanti autentikasi nya akan menggunakan IMAPS/POP3S dan SMTPS. Untuk melakukan konfigruasi SSL ini, pastikan kawan - kawan sekalian sudah melakukan konfigurasi Mail Servernya yaa. Jika belum malakukan konfigurasi apa yang mau di amanin menggunakan SSL dong ? ehehehehe. Bercanda guyss, silahkan kesini bagi yang belum melakukan konfigurasi Mail Server.

Untuk topologi yang ane gunakan adalah sebagai berikut.


Berikut adalah langkah - langkah konfigurasinya .

Konfigurasi Server

1.) Pindah ke directory /etc/pki/tls/certs/ terlebih dahulu. Karena di directory tersebut kita akan membuat SSL Certificate nya. Untuk berpindah directory bisa menjalankan perintah 
cd /etc/pki/tls/certs/


2.) Setelah itu buat file .key nya, file key ini nanti nya akan digunakan sebagai key untuk file .crt nya. Untuk membuat file .key bisa menjalankan perintah 
make "namafile".key
Kemudian akan diminta untuk memasukkan password, masukkan password sesui keinginan yang tentunya mudah diingat. Saran ane sih masukkin password root aja hehe.


3.) Kemudian konfigurasi RSA terhadap file key yang sudah dibuat dengan menggunakan openssl. RSA ini merupakan sebuah algoritma pada enkripsi public key. RSA ini merupakan algoritma pertama yang cocok untuk digital signature seperti halnya ekripsi. Untuk melakukan konfigurasi rsa menggunakan openssl bisa menjalankan perintah
openssl rsa -in "nama file".key -out nama file".key


4.) Setelah itu buat file .csr nya, untuk membuat csr ini nanti kita diminta untuk mengisi identitas sertifikat yang kita buat. Untuk membuat file .csr nya menjalankan perintah 
make "namafile".csr
Seperti apa yang anekatakan diatas, kita diminta untuk mengisi identitas sertifikat kita. Kemudian isi identitas untuk SSL nya. 

Keterangan : 
  • Country Name : Negara (ID/Indonesia) 
  • Province Name : Provinsi (Jawa Barat) 
  • City : Kota (Bekasi) 
  • Organization Name : Organisasi/Nama perusahaan (SMKN 1 Kota Bekasi)
  • Organization Unit : Unit organiasi di perusahaan (TKJ) Common Name : Domain/Hostname dari server (mail.anandarizky.co.id) 
  • E -mail Address : E-mail yang digunakan (ananda@anandarizky.co.id) 

Kemudian diminta memasukkan password dan optional company name, untuk SSL asli yang secure kita harus mengisi ini. Karena disini kita hanya membuat SSL yang lokal, maka tidak diisi pun tidak mengapa.


5.) Selanjutnya buat file .crt nya, file .crt ini merupakan gabungan dari file .key dan file .csr yang sebelumnya sudah dibuat. Untuk membut file .crt nya bisa menjalankan perintah 
openssl x509 -in "namafile".csr -out "namafile".crt -req -signkey "namafile".key -days 3650
Keterangan : 
  • x509 : Supaya dapat digunakan untuk menampilkan informasi sertifikat, mengonversi sertifikat ke berbagai bentuk, menandatangani permintaan sertifikat seperti "mini CA" atau mengedit pengaturan kepercayaan sertifikat. 
  • -in mail.csr : Input data dari mail.csr yang berupa identitas yang dibuat sebelumnya 
  • -out mail.crt : Output data nya akan menjadi mail.crt
  • req -signkey mail.key : Request dari mail.key 
  • -days 3650 : Masa berlaku dari sertifikat keynya


6.) Setelah itu konfigurasi file main.cf yang terletak pada directory /etc/postfix/. Untuk membuka file jalankan perintah
nano /etc/postfix/main.cf


7.) Kemudian pada bagian paling bawah, tambahkan script konfigurasi untuk SSL nya seperti gambar berikut.
Keterangan : 
  • smtpd_use_tls = yes : Digunakan untuk mengaktifkan security STARTTLS kepada klien SMTP jarak jauh, namun tidak mengharuskan klien menggunakan enkripsi TLS. 
  • smtpd_tls_crt_file : Digunakan untuk mendefinisikan letak sertifikat rsa dengan format crt yang telah dibuat 
  • smtpd_tls_key_file : Digunakan untuk mendefinisikan letak sertifikat rsa dengan format crt yang telah dibuat 
  • smtpd_tls_session_cache_database : Merupakan Nama file yang berisi cache sesi SMTP server Postfix. Dan filenya ini berada pada database btree di /etc/postfix/smtpd_scache
Kemudian kita exit dan save dengan menekan tombol CTRL + X --> Y.


8.) Selanjutnya konfigurasi file master.cf yang terletak pada directory /etc/postfix/. Untuk membuka file jalankan perintah

nano /etc/postfix/master.cf


9.) Cari dan Uncomment ketiga baris dibawah yang berfungsi untuk meng enable service smtp dan postfix.
Kemudian kita exit dan save dengan menekan tombol CTRL + X --> Y.


10.) Selanjutnya konfigurasi file 10-ssl.conff yang terletak pada directory /etc/dovecot/conf.d/. Untuk membuka file jalankan perintah

nano /etc/dovecot/conf.d/10-ssl.conf


11.) Cari pada line 8, 14 dan 15. Karena sekarang kita ingin menggunakan SSL maka pada baris 8 option yang awalnya no kita ubah menjadi yes supaya dapat mengizinkan pop3s dan imaps, dan pada line 14 dan 15 kita arahkan ke directory dan file .crt dan .key yang sudah dibuat sebelumnya.
Kemudian kita exit dan save dengan menekan tombol CTRL + X --> Y.


12.) Restart service postfix dan dovecot nya, supaya konfigurasi yang sudah dilakukan sebelumnya dapat berjalan dengan baik.
systemctl restart postfix dovecot


13.) Kemudian masukkan service pop3s, imaps dan port 465 supaya dapat melewati firewall dan dapat diakses nantinya
firewall-cmd --permanent --add-service={pop3s,imaps} --permanent
firewall-cmd --permanent --add-port 465/tcp --permanent
firewall-cmd --reload
Keterangan : 
  • firewall-cmd : Perintah untuk masuk ke settingan firewall 
  • firewall --add-service={pop3s,imaps} : Perintah untuk menambahkan service pop3s,imaps supaya dapat melewati firewall 
  • firewall --add-port 465/tcp : Perintah untuk menambahkan port 465/tcp supaya dapat melewati firewall 
  • firewall --permanent : Perintah untuk menambahkan sesuatu secara permanent didalam firewall 
  • firewall-cmd --reload : Untuk me reload / restart firewall
Karena Rainloop ini berbasis web, maka disini ane juga ingin melakukan konfigurasi web server tersebut supaya menggunakan SSL. Untuk web servernya sendiri ane menggunakan apache. Jika web server tidak ingin menggunakan SSL, maka konfigurasi dibawah ini tidak dilakukan pun tidak apa - apa, langsung ke tahap verifikasi client saja.

1.) Install paket mod ssl terlebih dahulu
yum install mod_ssl -y



2.) Lakukan konfigurasi file ssl.conf yang terletak pada driectory /etc/httpd/conf.d/. Untuk membuka file jalankan perintah
nano /etc/httpd/conf.d/ssl.conf


3.) Cari pada line 75, tepatnya pada baris SSLProtocol. Kemudian tambahkan protcol untuk SSL nya seperti gambar dibawah
Keterangan : 
  • ssl_protocol TLSv1 TLSv1.1 TLSv1.2 : Merupakan standari protokol yang digunakan oleh HTTPS yaitu ssl dan TLS (Transport Layer Security)


4.) Kemudian cari lagi pada line 100 dan 107. Pada baris tersebut kita arahkan ke directory dan file .crt dan .key yang sudah dibuat sebelumnya.

Kemudian kita exit dan save dengan menekan tombol CTRL + X --> Y.


5.) Restart service httpd, supaya konfigurasi yang telah dilakukan sebelumnya dapat berjalan dengan baik
systemctl restart httpd


6.) Karena saya ane meletakkan file .keynya berbeda dengan defaultnya, sedangkan defaultnya berada pada /etc/pki/tls/private/, maka dari itu harus merestore file agar menjadi konteks selinux default pada directory file yang tidak sesuai dengan konfigurasi defaultnya, /etc/pki/tls/certs/ atau bisa juga pada direktori diatasnya
restorecon -RvF /etc/pki


7.) Kemudian tambahkan service https kedalam firewall, supaya client dapat mengaksesnya 
firewall-cmd --add-service=https --permanent 
firewall-cmd --reload

Verifikasi Client

1.) Sekarang coba akses melalui web browser client, sebelumnya pastikan IP DNS client sudah diarahkan  ke IP Address server. Kemudian akses Rainloop untuk melakukan update domainnya supaya dapat menggunakan SSL
"nama domain"/rainloop/?admin
Nah nanti nongol seperti gambar diatas, maka dapat dipastikan web server untuk Rainloop nya sudah berhasil menggunakan SSL.


2.) Nah kemudian lakukan login menggunakan default Rainloop, yaitu admin sebagai username dan 12345 sebagai passwordnya.


3.) Setelah itu double klik pada domain yang sebelumnya sudah didaftarkan.


4.) Kemudian ganti settingan Securenya menjadi SSL/TLS, kemudian klik test untuk menguji apakah koneksi ke server berhasil. Kalau tulisan IMAP dan SMTP berubah menjadi hijau, berarti Rainloop berhasil terkoneksi dengan mail server. Kalau sudah tinggal klik Update.


5.) Kemudian untuk Geary Mail nya kita tambahkan akun baru dengan cara pencet CTRL + M. Atau pilih gambar Setting di pojok kanan atas, kemudian pilih Edit Accounts atau apa gitu ane lupa hehe. Nah kemudian tambah akun dengan tanda +.


6.) Kemudian ubah Type Encryption nya menjadi SSL/TLS. Untuk IMAP menggunakan port 993 dan untuk SMTP menggunaka port 465.


7.) Dan terbuka sudah Mail Client dengan protocol IMAPS dan SMTPS. Sekarang kita test pengiriman e - mail dari user ananda (Geary Mail) ke user rizky (Rainloop).


8.) Sekarang akses Rainloop nya dengan memasukkan "nama domain"/rainloop/ pada URL pencarian web browser. Kemudian login menggunakan user ananda.


9.) Dan berhasil mengirim e - mail / pesan malalui Geary Mail dengan protokol SMTPS dan protokol IMAPS pada Rainloop berjalan dengan mulus.


10.) Sekarang coba kita kirim balik dari user rizky (Rainloop) ke user ananda (Geary Mail).


11.) Dan pesan yang dikirim user rizky (Rainloop) berhasil diterima olleh user ananda (Geary Mail).

Mungkin hanya sekian yang dapat ane sharing. Mohon maaf bila terdapat kesalahan dan kekurangan baik dari segi kata maupun penulisan.
Terima Kasih. Semoga Bermanfaat. 

Wassalamuallaikum Warahmatullahi Wabarakatuh.

 وَ السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ

1 comment: