Salah satu ciri mail server yang baik adalah menerapkan improvement SMTP Authentication atau biasa disingkat dengan SMTP Auth. Dengan adanya SMTP Auth mewajibkan klien SMTP (Pengirim Email) untuk login/authentikasi agar bisa mengirimkan email via SMTP Server (mail server). Sehingga hanya user yang trusted yang berhak menggunakan mail server. Selain itu dengan menggunakan SMTP AUTH administrator dapat mengetahui dari log, siapa saja user yang mengirimkan email.
SMTP Auth mencegah mail server menjadi open relay yang dapat memungkinkan mendistribusikan email spam dalam jumlah banyak. Akibatnya IP publik atau domain yang kita miliki reputasinya menjadi kurang baik dan bisa terblacklist di RBL dan mail server lain.
Setelah mengetahui sedikit penjelasan tentang SMTP Auth, mari kembali ke pembahasan pada tulisan ini yaitu Cara Testing SMTP Auth over TLS Menggunakan Openssl Client. Command yang dijelaskan pada tulisan ini bisa sebagai langkah untuk testing atau troubleshoot. Karena mungkin kita sebagai administrator email pernah menjumpai aplikasi pihak ketiga (third party) yang akan mengirimkan email melalui SMTP Server gagal mengirimkan email, padahal secara feature di aplikasi tersebut support menggunakan SMTP Authentication (memiliki form username, password, custom port 587/465 pada menu smtp).
Nah, sebagai langkah troubleshoot, ketika gagal mengirimkan via aplikasi. Kita bisa test pengiriman SMTP Auth melalui ssh/terminal server aplikasi tersebut sebagai perbandingan. Apakah problemnya disisi aplikasi atau memang dikarenakan hal lain. Jika testing smtp auth melalui ssh/terminal dapat berjalan dengan baik, berarti kesalahan ada disisi aplikasi, coba kontak ke developernya untuk troubleshoot jangan2 disisi codingan atau ada add-on/module yg belum terinstall. 🙂
Persiapan
Berikut beberapa hal yang mesti disiapakn untuk Testing SMTP AUTH menggunakan openssl :
- Mail Server (Misal: mail.domain.com)
- Username dan password (diencode menjadi bash64)
Caranya : echo -ne ‘\[email protected]\0Password’ | base64 (Sesuikan dengan user dan password yang digunakan) - SSH/Terminal. biasanya untuk linux atau mac by default sudah terinstall open ssl clien
Command
Gunakan command dibawah ini untuk testing pengiriman email menggunakan SMTP Auth menggunakan openssl client :
openssl s_client -connect mail.domain.com:587 -starttls smtp
CONNECTED(00000003)
……………….
……………….
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: EE727D9CC602F1B1C10C5506033A0167AADB9C9F2BF48468A17524E7D2CC6805
Session-ID-ctx:
Master-Key: 2E12116BB58C5BAC144AC252DC5E9F66D33872231E7FA05E47ABE624C6FB94E07DE7B0C8886D5D6BFCDCB813A54C6955
Key-Arg : None
Start Time: 1558050506
Timeout : 300 (sec)
Verify return code: 0 (ok)
—
250 DSN
ehlo mail.domain.com
250-mail.domain.com
250-PIPELINING
250-SIZE 153600000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN AGFyaWYucmFobWFuQGV4Y2VsbGVudC5jby5pZAAhQWRtaW4xMjN+
235 2.7.0 Authentication successful
Setelah authentikasi berhasil, testing pengiriman email menggunakan command dibawah ini :
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
250 2.1.5 Ok
Data
354 End data with <CR><LF>.<CR><LF>
subject:Cara Testing SMTP Auth over TLS Menggunakan Openssl Client – arifrahman.net
.250 2.0.0 Ok: queued as 209E69E0B7
Cek di mailbox tujuan, semestinya email sudah terkirim. Jika belum ulangi langkah diatas barangkali ada langkah yang terlewat atau bisa juga cek pada log mailserver untuk tracking lognya. Semoga bermanfaat