Lewati ke konten utama

Panduan Setup Smarthost Mailtarget di WHM/cPanel (Exim)

P
Ditulis oleh Product Support
Diperbarui lebih dari 2 bulan yang lalu

Dokumen ini menjelaskan langkah demi langkah mengarahkan outbound email server WHM/cPanel melalui Mailtarget SMTP (smarthost/relay) secara aman, tahan update cPanel, dan mudah di‐rollback.

Hasil akhir: seluruh email keluar (kecuali local delivery) diroutekan ke smtp.mtrgt.net port 587 dengan AUTH + TLS.

1. Prasyarat

  • Akses root ke WHM (https://IP:2087).

  • Kredensial SMTP Mailtarget (username & API key/password).

  • Outbound firewall mengizinkan TCP 587.

  • Domain pengirim sudah memiliki SPF/DKIM yang sesuai kebijakan pengiriman.

2. Backup & Validasi Awal

  • Backup konfigurasi Exim: WHM → Service ConfigurationExim Configuration ManagerBackup.

  • Cek versi & sintaks lokal:

    exim -bV exim -C /etc/exim.conf -bV   # validasi file aktif

3. Buka Advanced Editor

WHM → Service ConfigurationExim Configuration Manager → tab Advanced Editor.

Perubahan via Advanced Editor aman dari overwrite saat update cPanel (dibanding edit manual /etc/exim.conf).

4. Simpan Kredensial di File (lebih aman)

Jangan hardcode kredensial di konfigurasi. Simpan di file lookup:

  • Buat/ubah file kredensial client:

    nano /etc/exim.passwd.client
  • Tambahkan baris berikut (tanpa spasi tambahan):

    smtp.mtrgt.net:MAILTARGET_USERNAME:MAILTARGET_APIKEY
  • Atur permission ketat:

    chown root:root /etc/exim.passwd.client
    chmod 600 /etc/exim.passwd.client

Format harus persis: host:username:password per baris. Satu host per baris.

5. Tambahkan Authenticator (@AUTH@)

Di Advanced Editor, cari/expand bagian Add additional configuration setting lalu pada blok @AUTH@ tambahkan:

@AUTH@
# Login authenticator untuk outbound (client side) auth_login:
driver = plaintext
public_name = LOGIN
hide client_send = : ${lookup{$host}lsearch*{/etc/exim.passwd.client}{$value}fail}

Penjelasan singkat:

  • hide client_send mencegah kredensial muncul di log.

  • Lookup lsearch* mengembalikan nilai lengkap username:password dari file.

6. Tambahkan Router (@PREROUTERS@)

Masih di Advanced Editor, pada blok @PREROUTERS@ tambahkan:

@PREROUTERS@
# Rute manual ke smarthost Mailtarget untuk semua domain non-lokal
smart_route:
driver = manualroute
domains = ! +local_domains
ignore_target_hosts = 127.0.0.0/8 : ::1
route_list = * smtp.mtrgt.net::587
transport = auth_relay
no_more

Catatan:

  • domains = ! +local_domains memastikan lokal tetap local delivery.

  • ::587 memaksa port 587.

  • Tambahan ::1 untuk loopback IPv6.

7. Tambahkan Transport (@TRANSPORTSTART@)

Pada blok @TRANSPORTSTART@ tambahkan:

@TRANSPORTSTART@
auth_relay:
driver = smtp
hosts_require_auth = smtp.mtrgt.net
hosts_require_tls = smtp.mtrgt.net
# tls_require_ciphers = NORMAL:!VERS-SSL3.0:!VERS-TLS1.2

8. Simpan & Restart

Klik Save di bagian bawah Advanced Editor. WHM akan membangun ulang konfigurasi dan restart Exim otomatis. Pastikan tidak ada error build.

9. Uji Koneksi & Pengiriman

A. Cek koneksi TLS ke Mailtarget

openssl s_client -starttls smtp -connect smtp.mtrgt.net:587 -servername smtp.mtrgt.net

Harus muncul sertifikat valid dan SSL-Session aktif.

B. Kirim uji coba (opsi 1 – swaks)

swaks --to [email protected] \
--from [email protected] \
--server smtp.mtrgt.net --port 587 --tls \
--auth LOGIN --auth-user MAILTARGET_USERNAME --auth-password MAILTARGET_APIKEY \ --header "Subject: Test via WHM→Mailtarget" --body "Hello from WHM"

C. Monitoring log

tail -f /var/log/exim_mainlog

10. Firewall & Jaringan

  • Pastikan outbound TCP 587 dibuka (CSF: SMTP_PORTS atau OUTGOING_TCP).

  • Jika ada proxy/IPS, whitelisting smtp.mtrgt.net disarankan untuk stabilitas.

11. Keamanan & Operasional

  • Rotasi API key Mailtarget secara berkala.

  • Jangan menyimpan kredensial di dokumentasi/chat.

  • Restriksi akses file /etc/exim.passwd.client (600).

  • Audit log: /var/log/exim_mainlog, /var/log/exim_rejectlog.

12. Rollback Cepat

  1. Advanced Editor: hapus blok smart_route & auth_relay, serta perubahan @AUTH@ jika khusus untuk Mailtarget.

  2. Simpan → Exim restart.

  3. (Opsional) rename /etc/exim.passwd.client.

  4. Restore dari Backup jika diperlukan.

13. Variasi & Pengecualian (Opsional)

A. Hanya rute domain tertentu lewat Mailtarget

# Ganti domains= agar hanya domain di list tertentu
# Misal: kirim hanya untuk domain eksternal, kecuali beberapa domain partner
# Buat dulu domainlist: domainlist relay_only = d1.com : d2.net
smart_route:
driver = manualroute
domains = +relay_only
route_list = * smtp.mtrgt.net::587
transport = auth_relay
no_more

B. Bypass domain/host tertentu (tidak via Mailtarget)

# Tambahkan sebelum smart_route router
skip_partner:
driver = manualroute
domains = partner.local : example.org
self = send
transport = remote_smtp # kirim langsung, bukan auth_relay
no_more

14. Troubleshooting Cepat

Kendala

Penyebab Umum

Solusi

AUTH failed (535)

Username/Key salah, baris/format di /etc/exim.passwd.client salah

Perbaiki kredensial; pastikan format host:user:pass, tanpa spasi, permission 600

TLS required but not available

STARTTLS tak tersedia (intercept/blokir)

Cek openssl s_client, pastikan keluar via 587, matikan inspeksi TLS jika ada

Connection timed out

Firewall outbound blok 587

Buka 587 di CSF/iptables, uji telnet smtp.mtrgt.net 587

Looping/route defer

Router urutan salah

Pastikan smart_route ada setelah router local delivery dan memakai no_more

550 Sender verification failed

SPF/DKIM belum benar

Setup SPF/DKIM domain pengirim sesuai kebijakan pengiriman

15. Contoh Minimal (tidak disarankan – hardcode)

Jika benar‐benar perlu (sementara) dan lingkungan terkendali, berikut contohnya:

@AUTH@
auth_login:
driver = plaintext
public_name = LOGIN
hide client_send = : MAILTARGET_USERNAME : MAILTARGET_APIKEY

@PREROUTERS@ smart_route:
driver = manualroute
domains = ! +local_domains
ignore_target_hosts = 127.0.0.0/8 : ::1
route_list = * smtp.mtrgt.net::587
transport = auth_relay
no_more

@TRANSPORTSTART@
auth_relay:
driver = smtp
hosts_require_auth = smtp.mtrgt.net
hosts_require_tls = smtp.mtrgt.net

Catatan: Gunakan hanya untuk testing awal. Segera pindahkan kredensial ke /etc/exim.passwd.client.

Apakah pertanyaan Anda terjawab?