Tuesday, August 04, 2009

Cara kedua termudah setup mail server

Loh koq malah yang kedua? iya, karena cara yang paling mudah nomer satunya ya dengan setup semua incoming dan outgoing lewat google apps. fast and easy. artikel ini membahas cara termudah kedua, karena ternyata beberapa kali dicari dan dicoba, kirim mail ke SMTP nya google selalu gagal auth. padahal domain yang dulu di setting, ngga' masalah dipake SMTP-nya. ngga' tau kenapa nih untuk domain yang baru didaftarin sekarang-sekarang ini.

jadi masalah utamanya adalah bagaimana kita bisa mengirim mail lewat server kita sendiri walaupun MX record (untuk nerima mail-nya) diarahkan ke google apps. it's not common, but it's doable. sebagai basicnya, setting server adalah sbb:
  • CentOS release 5 (Final)
  • Sendmail 8.13

    Along the way, biasakan untuk melakukan test sebelum dan sesudah melakukan satu langkah. ini agar kita tahu bahwa setiap langkah menunjukkan progress (walaupun kecil) ke arah yang benar. test yang bisa dilakukan dalam hal ini seperti:

    $ mail someone@gmail.com
    title: test
    test content
    cc:
    $ mailq


    Setup domain

    Biasanya by default, mail server sudah dapat digunakan untuk mengirimkan email. Tapi kalau dicoba, alamat sender (pengirim) biasanya masih berasal dari localhost.localdomain, dan berasumsi bahwa server tersebut hanya akan digunakan oleh satu domain saja. untuk mengubah localhost.localdomain sebagai alamat email keluar, kita harus pastikan semua setting hostname di OS level sudah benar.

    $ hostname sample-domain.com
    $ vim /etc/hosts
    $ vim /etc/sysconfig/network
    $ /etc/init.d/network restart


    selanjutnya masalah security, pemasangan SPF dan DK/DKIM supaya mailserver kita tidak disangka spammer.

    SPF

    untuk keperluan pengiriman mail, konfigurasi di MTA (yang bertindak secara langsung dalam proses ini) nyaris tidak diperlukan. yang utama adalah bahwa instalasi TXT record di DNS berhasil dilakukan dan informasinya sudah propagated secara menyeluruh. konfigurasi MTA yang dibutuhkan adalah memastikan bahwa domain name kita sudah terset merujuk ke domain yang akan kita gunakan untuk mengirim mail. sepertinya (apparently, bab tentang set domain di atas tidak berpengaruh) konfigurasi yang berpengaruh adalah yang ini:

    sendmail.mc:
    define(`confDOMAIN_NAME', `mail.yourdomain.com')dnl


    jika berhasil, maka ketika kita mengirim mail ke google (misalnya), maka google akan mengecek dns record dan menambahkan informasi berikut di dalam header mail kita.

    Received-SPF: pass (google.com: domain of root@your-domain.com designates XXX.XXX.XXX.XXX as permitted sender) client-ip=XXX.XXX.XXX.XXX;
    Authentication-Results: mx.google.com; spf=pass (google.com: domain of root@your-domain.com designates XXX.XXX.XXX.XXX as permitted sender) smtp.mail=root@your-domain.com


    dengan spf terpasang, server kita sudah semakin dikenali sebagai pihak yang terpercaya untuk mengirimkan email. sayangnya, yahoo belum cukup senang dengan setting SPF saja. harus dilengkapi juga dengan pemasangan header DK/DKIM yang membungkus outgoing mail agar teryakinkan isi mail tidak berubah (tersisipi virus misalnya).

    Domainkeys

    untuk sekarang, sebagian besar langkah instalasi domainkeys (DK) bisa mengikuti josh kurtzman dan dari erikberg untuk suse. ada beberapa checklist yang bisa dijadikan patokan. basically ada 4 bagian yang harus dilakukan:
  • install dk-milter
  • install TXT record for DK encryption
  • install dk-filter daemon
  • setup sendmail to use dk-filter

    next and is the final step: set DKIM.

    DKIM

    hampir sama dengan step Domainkeys, karena sepertinya dibuat dengan base yang sama. one clue is from elandsys. langkah pembuatan dns tidak perlu dilakukan lagi, private/public keys bisa memanfaatkan yang sudah dibuat untuk langkah domainkeys. langkah-langkahnya:
  • install dkim-milter
  • install dkim-filter daemon
  • setup sendmail to use dkim-filter