Dalam dunia komputer, kemanan data merupakan salah satu hal yang paling penting. Perlu dipastikan bahwa data harus sampai ke tujuan tanpa adanya interfensi dari siapapun, khususnya orang-orang yang tidak bertanggung jawab atau yang sering kita sebut dengan “Hacker”.
Salah satu protokol yang menjamin keamanan data tersebut adalah Transport Layer Security (TLS). Protokol ini mengenkripsi data yang dikirimkan ke tujuan sehingga tidak bisa dilihat oleh hacker, dan bisa digunakan untuk kiriman data berupa email, transfer file dan lain-lain. Selain email dan transfer file, TLS juga bisa digunakan untuk tujuan lain, sayangnya yang saya tahu hanya dua itu š .
Haraka sendiri merupakan SMTP yang digunakan untuk mengirim email, karena hal tersebut Haraka juga perlu diaktifkan TLS-nya dengan cara menginstal TLS Certificate untuk menambah tingkat kemanannya. Sebenarnya secara default protokol TLS di Haraka sudah bisa digunakan (Baca : Mengamankan SMTP Haraka dengan TLS Authentication (auth_flat_file)), hanya saja tanpa TLS Certificate data tetap tidak di enkripsi dan bisa dibaca oleh hacker.
Untuk instalasi TLS Certificate pada Haraka perlu SSL certificate…..jadi harus beli š . Atau pakai self-signed certifcate yang bisa teman-teman generate sendiri tetapi tidak rekomendasi….jadi tetep harus beli supaya data email benar-benar aman š .
Bagi teman-teman yang tertarik dan ingin membeli dengan layanan SSL sertifikat ini, teman-teman bisa langsung cek website Excellent yang menyediakan layanan SSL sertifikat pada link berikutĀ https://www.excellent.co.id/ssl/Ā ataupun request langsung ke email sales@excellent.co.id
Berikut adalah langkah-langkah untuk mengaktifkan TLS di Haraka.
Instalasi TLS Certificate
- Pastikan teman-teman sudah membaca dan melakukan langkah-langkah pada tulisan Setup SMTP Haraka di Ubuntu 18.04
- Lanjutkan dengan konfigurasi TLS Authentication untuk kebutuhan uji coba
- Sebelum kita mulai ke tahap instalasi, pastikan teman-teman sudah mendapatkan 2 file yang utama yaitu, file private key dengan ekstensiĀ .key, dan file SSL certificate dengan ekstensiĀ .crt. 2 File tersebut akan teman-teman dapatkan dari provider penyedia layanan sertifikat SSL yang teman-teman gunakan
- Salin 2 file (file.crt dan file.key) yang sudah teman-teman dapatkan ke server Haraka, folder /tmp/. Untuk copy file tersebut dari komputer ke server Haraka bisa menggunakan WinSCP (Windows) atau memasukkan perintahĀ scpĀ file.crt file.key root@(IP haraka):/tmp/ (Linux/MacOS)
- SSH ke server Haraka
- Membuat direktoriĀ /usr/local/haraka/config/tls/ untuk menyimpan file SSL certificate dengan perintah berikut
# mkdir /usr/local/haraka/config/tls
- Pindahkan file SSL certificate (file.crt dan file.key) yang sebelumnya sudah di salin ke direktori /tmp/ dengan perintah berikut
# cd /usr/local/haraka/config/tls # mv /tmp/file.crt . # mv /tmp/file.key . # ls file.crt file.key
- Mengganti format SSL certificate menjadi .pem dengan perintah berikut
# cd /usr/local/haraka/config/tls # mv file.crt certificate.pem # mv file.key key.pem # ls certificate.pem key.pem
- Edit file /usr/local/haraka/config/plugins dengan teks editor dan tambahkan baris berikut untuk mengaktifkan TLS
tls
- Buat file baru dengan nama /usr/local/haraka/config/tls.ini dan isi dengan pola sebagai berikut
key=/usr/local/haraka/config/tls/key.pem cert=/usr/local/haraka/config/tls/certificate.pem ciphers = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384 minVersion = TLSv1 rejectUnauthorized=false requestCert=true honorCipherOrder=true requireAuthorized[]=2465 requireAuthorized[]=2587
- Restart service Haraka dengan perintah berikut
# systemctl restart haraka
Uji Coba Kirim Email
- Testing kirim email ke gmail.com menggunakan swaks dengan perintah berikut dari SMTP Haraka
# swaks -s haraka.colamen.id -p 587 -tls -t muhammadraihan519@gmail.com -f raihan@colamen.id --auth-user=username --auth-password=password === Trying localhost:587... === Connected to localhost. <- 220 haraka.colamen.id ESMTP Haraka/2.8.25 ready -> EHLO haraka.colamen.id <- 250-haraka.colamen.id Hello Unknown [127.0.0.1]Haraka is at your service. <- 250-PIPELINING <- 250-8BITMIME <- 250-SMTPUTF8 <- 250-SIZE 0 <- 250 STARTTLS -> STARTTLS <- 220 Go ahead. === TLS started with cipher TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256 === TLS no local certificate set === TLS peer DN="/C=ID/ST=Jawa Barat/L=Bekasi/O=Colamen/OU=IT Support/CN=haraka.colamen.id/emailAddress=admin@colamen.id" ~> EHLO haraka.colamen.id <~ 250-haraka.colamen.id Hello Unknown [127.0.0.1]Haraka is at your service. <~ 250-PIPELINING <~ 250-8BITMIME <~ 250-SMTPUTF8 <~ 250-SIZE 0 <~ 250 AUTH PLAIN LOGIN ~> AUTH LOGIN <~ 334 VXNlcm5hbWU6 ~> cmFpaGFu <~ 334 UGFzc3dvcmQ6 ~> cmFoYXNpYQ== <~ 235 2.7.0 Authentication successful ~> MAIL FROM:<raihan@colamen.id> <~ 250 sender <raihan@colamen.id> OK ~> RCPT TO:<muhammadraihan519@gmail.com> <~ 250 recipient <muhammadraihan519@gmail.com> OK ~> DATA <~ 354 go ahead, make my day ~> Date: Wed, 11 Mar 2020 15:47:20 +0700 ~> To: muhammadraihan519@gmail.com ~> From: raihan@colamen.id ~> Subject: test Wed, 11 Mar 2020 15:47:20 +0700 ~> Message-Id: <20200311154720.005226@haraka.colamen.id> ~> X-Mailer: swaks v20170101.0 jetmore.org/john/code/swaks/ ~> ~> This is a test mailing ~> ~> . <~ 250 2.0.0 02B8lPRE027012-02B8lPRF027012 Message accepted for delivery (0707E955-BF8F-4CDD-B570-B85EE08478DD.1) ~> QUIT <~ 221 haraka.colamen.id closing connection. Have a jolly good day. === Connection closed with remote host.