DKIM di Postfix

postfixSebenarnya saya cukup puas dengan DomainKeys di Postfix menggunakan dkfilter untuk menge-sign email yang keluar. Namun kelihatannya dkfilter ini sudah berhenti developmentnya dan DomainKeys sudah mulai ditinggalkan dan diteruskan oleh DKIM. Maka dengan menimbang berbagai kepentingan akhirnya diputuskan (karena terpaksa hiya) untuk menggunakan DKIM di Postfix. Karena masih banyak pengguna email Yahoo diluar sana, maka implementasi DKIM ini mungkin hukumnya sudah menjadi wajib bagi email administrator, kalau tidak bisa jadi email tiba-tiba masuk ke folder bulk-nya Yahoo, walaupun ini bukan satu-satunya penyebab.

Implementasi DKIM di Postfix kalau saya lihat bisa menggunakan dua metode. Yang pertama adalah dengan menggunakan teknologi milter(nya Sendmail) dan menggunakan proxy (sebelum atau sesudah queue). Yang terakhir ini yang saya gunakan untuk menge-sign email yang keluar saja yaitu DKIMproxy.Bikin user terlebih dahulu misalnya dkim, kemudian instal modul perl berikut ini:

Crypt::OpenSSL::RSA
Digest::SHA
Digest::SHA1
Error
Mail::Address
MIME::Base64
Net::DNS
Net::Server
Mail::DKIM

Download DKIMproxy dari sini http://dkimproxy.sourceforge.net/, kemudian lakukan ./configure dengan menentukan direktori dimana program ini akan disimpan, misalnya adalah /usr/local/dkimproxy/:

./configure --prefix=/usr/local/dkimproxy
make install
Buat key :
openssl genrsa -out private.key 1024
openssl rsa -in private.key -pubout -out public.key
Simpan file private.key dan public.key di direktori /usr/local/dkimproxy/ atau dimana saja dan pastikan file private.key tidak bisa dibaca oleh orang lain tapi masih bisa dibaca oleh user yang menjalankan daemon dkim.
Buat record selector di DNS misalnya adalah selector1, yaitu sebuah record TXT yang isinya merupakan teks yang berada di file public.key diatas dengan menghapus PEM header dan footer terlebih dahulu. Kemduain masukkan di zone domain yang akan disign dengan DKIM. Contoh record di DNS adalah sebagai berikut:
selector1._domainkey IN TXT "k=rsa; t=s; p=MHwwDQYJK ... OprwIDAQAB"
Kemudian jalan daemon DKIMproxy untuk menge-sign email yang keluar untuk domain yang bersangkutan, misalnya example.org (dalam satu baris):
dkimproxy.out --user=dkim --group=dkim --keyfile=/usr/local/dkimproxy/private.key
--selector=selector1 --domain=example.org --method=relaxed
127.0.0.1:10027 127.0.0.1:10028
Kemudian lakukan perubahan di Postfix agar email disign terlebih dahulu sebelum keluar, disini saya gunakan port submission (587) untuk email yang akan disign. Edit di master.cf sesuai dengan instruksi disini. Test dengan mengirim email ke Yahoo, jangan lupa untuk mengganti SMTP port menjadi port 587, maka jika sukses akan ada log seperti ini :

Feb 26 11:22:11 smtp01 dkimproxy.out[15418]: DKIM signing - signed; 
message-id=<[email protected]> signer=<@example.org> 
from=

Kemudian periksa di Yahoo, jika sukses akan terlihat di header seperti ini:

DKIM di Postfix

Semoga bermanfaat :-)

20 Replies

  • di jepang ada rekomendasi dari pemerintah bahwa submit email harus lewat submission port dan hampir semua isp nurut rekomendasi pemerintah tsb.

  • #1 Kalau di Indonesia beberapa ISP sudah mulai ngeblok port 25 keluar, dan harus menggunakan SMTP ISP ybs kalau mau kirim email. Kalau policy port submission belum pernah saya dengar mas :-)

    #2 Bisa sekali pak, silakan langsung dibaca di websitenya :-)

  • pak mau nanya dkim bisa ga di integrasikan dgn clamsmtp ?
    soalnya sekarang ini saya masih pakai clamstpd di mail server saya.
    utk relay mailnya + av masih pakai clamav.
    seandainya ga bs kira kira rekomendasi pak asfik pakai apa yg spy lebih mudah utk setup-nya

    thanks

    Janssen

  • Mas asfik, biar di outlook express ga merubah ke port 587 gmn ya? biar tetap memakai port standard 25 dan menggunakan dkim nya

    Thanks tutornya

  • #5 Seperti dilink yang dijelaskan diatas, pemisahan ini ditujukan agar email yang keluar saja yang akan disign. Karena biasanya port 25 itu dipakai untuk mengirim dan menerima email.

    Tapi kalau ditempat mas Agus hanya sebagai SMTP saja, bukan sebagain spool yang menerima email, maka sebenarnya tinggal menambahkan ini di main.cf:

    content_filter=dksign:[127.0.0.1]:10027

  • Di tempat saya smtp nya pake postfix dan nerima email pake qmail dengan mesin terpisah. Tp akan saya coba dulu saran mas asfi, seperti mas asfi sarankan diatas di outlook express seting outgoing apakah tetep standard 25 atau tetap diubah ke submission 587?

    Thanks infonya

  • OK mas udah jalan sepertinya, o ya satu lagi mau tanya hehehhe…maaf banyak tanya, kalau di main.cf 2 ada content_filter=dksign:[127.0.0.1]:10027
    content_filter = smtp-amavis:[127.0.0.1]:10024

    aakah tidak apa2 mas?

    Thanks

  • Tidak apa-apa sih, tapi yang dibaca Postfix cuman satu, yang terakhir :-). Mending dibuat berantai saja, setelah email di scan oleh amavis lalu diteruskan ke port DKIM filter untuk disign, baru diteruskan ke port yang semestinya.

  • masih belum mengerti mas mengenai arti berantai yang mas asfi sebutkan, bisa kasi contoh ngga?

    Terimakasih

    Contohnya adalah $forward_method = ‘smtp:127.0.0.1:10025’ di amavisd.conf diarahkan ke port domainkeys. Silakan dicoba.

  • asslmkm, mas asfik..

    klo mesin dns dan mail servernya terpisah berari key-nya dibuat di mana?di mesin dns apa di mailservernya?

    thx

  • @dodi

    Wa’alaikumsalam wr wb, key nya bisa dibuat di mana saja, asal isi dari public keynya nanti harus dimasukkan sebagai entry selector di DNS.

  • sudah bisa tp masih masuk ke bulk yahoo?apa PTR record ipnya harus di samain sperti hostname?ada ide? :)

  • @dody: dicoba saja ditunggu dulu, kalau dalam dua tiga hari masih sama, tidak ada salahnya PTR nya di update. Btw, testingnya sukses kan?

  • testingnya sukses..PTR di update :)

    OOT: oiya akh, saya khan pake amavis, itu kalo alias sesama domain pasti yg aliasnya dapet email double. saya kira salah setting di postfixnya tp pas saya offkan settingan amavis di postfixnya ternyata dapet satu email(ga double) pas saya on-in lagi dapet 2 lagi email yg di aliasing tersebut(antar sesama domain klo ke luar domain sperti yahoo, terimanya satu). mungkin karena amavisd dya ngejalannya di localhost jadi dapet 2 gitu, bener ga ya?atau mas asfik ada saran buat kurangin spam?pake spamassassin mungkin,atau ada ide?

  • @dodi: ada bcc_maps dan turunannya ngga? kalau ada, berarti tinggal disable fitur tersebut ketika email akan di masukkan kembali ke postfixnya

  • setelah saya check dan postconf, hasilnya begini:

    # postconf | grep bcc
    always_bcc =
    proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $sender_bcc_maps $recipient_bcc_maps $smtp_generic_maps $lmtp_generic_maps
    recipient_bcc_maps =
    sender_bcc_maps =

    yg di disable yg mana ya?malum newbie :D

  • alhamdulillah mas sudah bisa sekarang…:D

    jika memakai content filter maka mail akan melewati postfix sebanyak 2 kali jadi setelah googling ternyata di main.cf harus di tambahkan

    receive_override_options=no_address_mappings

    dan di master.cf masukkan:

    -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters

    dan reload deh postfixnya..:)
    It works!

    Jazakallah

  • Mas,saya mau nanya,apa ada hubungannya topik mas dengan email keluar dengan attachment?? soalnya saya pengguna postfix jg,kirim email keluar ke yahoo or gmail dengan attachment tidak terkirim tetapi jika tanpa attachment bisa terkirim…
    ada kah solusinya?? berikut log nya..

    Aug 4 15:58:23 mail postfix/qmgr[17255]: 5F8AD6F83EF: from=, size=166459, nrcpt=1 (queue active)
    Aug 4 15:58:23 mail dovecot: imap-login: Login: user=, method=PLAIN, rip=::ffff:127.0.0.1, lip=::ffff:127.0.0.1, secured
    Aug 4 15:58:23 mail postfix/pickup[17256]: 70BBC6F8422: uid=101 from=
    Aug 4 15:58:23 mail postfix/qmgr[17255]: 70BBC6F8422: from=, size=166576, nrcpt=1 (queue active)

  • Mas Hafid,

    Hal ini tidak ada hubungannya dengan email yang memiliki attachment. Kalau email attachment yg tidak bisa keluar atau timeout, mungkin penyebabnya adalah link internet yang saturate (penuh). Coba diperiksa apakah memang demikian, terutama bandwidth uplinknya.

    Mungkin begitu mas kira-kira..

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.