<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:coop="http://www.google.com/coop/namespace"
	>

<channel>
	<title>Asfihani &#187; Postfix</title>
	<atom:link href="http://layangan.com/asfik/blog/category/comsci/postfix/feed/" rel="self" type="application/rss+xml" />
	<link>http://layangan.com/asfik/blog</link>
	<description>Dicatet Ben Ora Lali</description>
	<lastBuildDate>Fri, 13 Aug 2010 03:36:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>DomainKeys Identified Mail di Zimbra (Postfix)</title>
		<link>http://layangan.com/asfik/blog/2010/08/13/domainkeys-identified-mail-di-zimbra-postfix/</link>
		<comments>http://layangan.com/asfik/blog/2010/08/13/domainkeys-identified-mail-di-zimbra-postfix/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 03:36:20 +0000</pubDate>
		<dc:creator>Asfihani</dc:creator>
				<category><![CDATA[ComSci]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[Zimbra]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://layangan.com/asfik/blog/?p=530</guid>
		<description><![CDATA[Dalam upaya mengurangi mail forgery (klaim email seolah-olah benar dari pengirim/domain yang valid) yang sering terjadi adalah dengan DKIM (DomainKeys Identified Mail). Pada DKIM, sebuah email yang dikirim akan disign dengan private key dan ketika diterima email akan diverifikasi dengan public key yang sudah disiarkan sebelumnya melalui record DNS. Dari hasil verifikasi tersebut bisa ditentukan apakah email]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-521 floatleft" style="border: 0px;" title="zimbra_logo" src="http://www.layangan.com/asfik/blog/wp-content/uploads/2010/08/zimbra_logo.jpg" alt="zimbra_logo" width="120" height="40" /> Dalam upaya mengurangi <em>mail</em> <em>forgery</em> (klaim email seolah-olah benar dari pengirim/domain yang valid) yang sering terjadi adalah dengan DKIM (<a href="http://en.wikipedia.org/wiki/DomainKeys_Identified_Mail">DomainKeys Identified Mail)</a>. Pada DKIM, sebuah email yang dikirim akan di<em>sign</em> dengan <em>private key</em> dan ketika diterima email akan diverifikasi dengan <em>public key</em> yang sudah disiarkan sebelumnya melalui record DNS. Dari hasil verifikasi tersebut bisa ditentukan apakah email akan diterima atau ditola. Beberapa <em>major mail provider</em> seperti Yahoo dan Gmail telah lama mengadopsinya. <a href="http://www.postfix.org">Postfix</a>, mailer yang digunakan oleh Zimbra, juga telah mendukung penggunaan DKIM ini menggunakan proxy (via <a href="http://www.postfix.org/FILTER_README.html">content_filter</a>) atau secara native menggunakan <a href="http://www.postfix.org/MILTER_README.html">milter</a> (<em>mail filter</em>). Untuk mengkonfigurasi Postfix dengan <em>content_filter</em> (DKIM proxy), silakan baca posting saya yang lain: <strong><a href="http://layangan.com/asfik/blog/2008/03/11/dkim-di-postfix/">DKIM di Postfix</a></strong>.</p>
<p><span id="more-530"></span>Milter merupakan sebuah protokol yang diperkenalkan oleh <a href="https://www.sendmail.org/milter/">Sendmail</a> untuk memfilter email dari virus maupun spam maupun fungsi lain yang lebih kompleks. Antara MTA dengan milter ini komunikasi dilakukan dengan menggunakan API yang disediakan oleh library milter. Di Postfix, milter dibedakan dalam dua macam, yaitu SMTP milter (<a href="http://www.postfix.org/postconf.5.html#smtpd_milters">smtpd_milters</a>) untuk memfilter email yang <em>_hanya_</em> datang dari network, dan non-SMTP milter (<a href="http://www.postfix.org/postconf.5.html#non_smtpd_milters">non_smtpd_milters</a>) untuk email yang datang dari <em>local submission</em> (a.k.a <em>sendmail wrapper</em>). Aplikasi milter dapat &#8216;berbicara&#8217; dengan Postfix melalui unix-socket atau TCP. Contoh aplikasi milter adalah <a href="http://sourceforge.net/projects/dkim-milter/">dkim-milter</a>, <a href="http://sourceforge.net/projects/sid-milter/">sid-milter</a>, dan <a href="http://www.malgouyres.fr/linux/spamass-milter_postfix_en.html">SpamAssassin</a>. Jika digambarkan posisi aplikasi milter dan Postfix kira-kira seperti ini:</p>
<p><a href="http://layangan.com/asfik/blog/wp-content/uploads/2010/08/postfix_milter.png"><img class="alignnone size-full wp-image-535" title="postfix_milter" src="http://layangan.com/asfik/blog/wp-content/uploads/2010/08/postfix_milter.png" alt="" width="619" height="381" /></a></p>
<p><strong>DKIM di Zimbra</strong></p>
<p>Untuk mengkonfigurasi Postfix DKIM Zimbra di Ubuntu, cukup dengan menginstall paket <em>dkim-filter</em> (yang otomatis akan menginstall paket <em>libmilter0</em>).</p>
<p><code>$ sudo aptitude install dkim-filter</code></p>
<p>Buat direktori untuk menyimpan file private key, misalnya <em>/etc/mail </em>:</p>
<p><code>$ sudo mkdir -p /etc/mail<br />
$ cd /etc/mail</code></p>
<p>Buat key yang akan digunakan untuk meng<em>sign</em> email dengan utiliti <a href="http://manpages.ubuntu.com/manpages/hardy/man8/dkim-genkey.8.html">dkim-genkey</a>, misalnya untuk membuat 1024 bits key pada domain <em>domain.tld</em> dengan selector <em>selector1</em> adalah:</p>
<p><code>$ sudo dkim-genkey -b 1024 -d domain.tld -s selector1</code></p>
<p>Maka kalau kita lihat perintah diatas akan membuat dua buah file  yaitu <em>selector1.private</em> yang berisi <em>private key</em> dan <em>selector1.txt</em> yang merupakan contoh record DNS yang berisi <em>public key </em>untuk domain <em>domain.tld</em>. Ubah DNS pada domain <em>domain.tld</em> seperti pada contoh file tersebut. Untuk memeriksanya bisa menggunakan perintah <em>dig</em>, misalnya :</p>
<p><code>$ dig -t txt +short selector1._domainkey.domain.tld</code></p>
<p>Ubah file <em>/etc/dkim.filter</em> pada bagian seperti dibawah ini :</p>
<p><a href="http://layangan.com/asfik/blog/wp-content/uploads/2010/08/dkim-filter-conf.png"><img class="alignnone size-full wp-image-538" title="dkim-filter-conf" src="http://layangan.com/asfik/blog/wp-content/uploads/2010/08/dkim-filter-conf.png" alt="" width="358" height="155" /></a></p>
<p>Ubah kepemilikan file  <em>/etc/mail/selector1.private</em> menjadi file milik user yang akan menjalankan <em>dkim-filter</em> (default: <em>dkim-filter</em>):</p>
<p><code>$ sudo chown dkim-filter /etc/mail/selector1.private</code></p>
<p>Restart daemon dkim-filter :</p>
<p><code>$ sudo /etc/init.d/dkim-filter restart</code></p>
<p>Secara default, daemon dkim-filter akan listen di port 8891 di localhost bukan menggunakan unix-socket. Periksa daemon apakah sudah listen di port tersebut :</p>
<p><code>$ sudo lsof -i TCP:8891</code></p>
<p><code> </code></p>
<p><code>COMMAND    PID        USER   FD   TYPE  DEVICE SIZE NODE NAME<br />
dkim-filt 4752 dkim-filter    4u  IPv4 2728156       TCP localhost:8891 (LISTEN)</code></p>
<p>Sekarang kita beritahu Postfix untuk menggunakan filter tersebut dengan mengubah/menambahkan pada file <em>/opt/zimbra/postfix/conf/master.cf.in</em> menjadi :</p>
<p><code> -o milter_default_action=accept<br />
-o smtpd_milters=inet:localhost:8891<br />
-o non_smtpd_milters=inet:localhost:8891<br />
-o disable_mime_output_conversion=yes</code></p>
<p>Pada <em>milter_default_action</em> diset <em>accept</em> agar jika suatu ketika milter tidak tersedia, email masih bisa diteruskan.</p>
<p>Restart Postfix di Zimbra :</p>
<p><code>$ sudo  su - zimbra<br />
$ zmmtactl restart</code></p>
<p>Kemudian coba kirim email ke Yahoo atau Gmail dan melihat header lengkapnya untuk memeriksa status DKIM. Alternatif lain adalah dengan mengirimkan email test ke <strong>autorespond+dkim-relaxed @ dk.elandsys.com</strong>.</p>
<p>Contoh di Gmail :</p>
<p><a href="http://layangan.com/asfik/blog/wp-content/uploads/2010/08/gmail.png"><img class="alignnone size-full wp-image-540" title="gmail" src="http://layangan.com/asfik/blog/wp-content/uploads/2010/08/gmail.png" alt="" width="330" height="126" /></a></p>
<p><a href="http://layangan.com/asfik/blog/wp-content/uploads/2010/08/gmail-header.png"><img class="alignnone size-full wp-image-541" title="gmail-header" src="http://layangan.com/asfik/blog/wp-content/uploads/2010/08/gmail-header.png" alt="" width="670" height="192" /></a></p>
<p>Contoh di Yahoo:</p>
<p><a href="http://layangan.com/asfik/blog/wp-content/uploads/2010/08/yahoo.png"><img class="alignnone size-full wp-image-542" title="yahoo" src="http://layangan.com/asfik/blog/wp-content/uploads/2010/08/yahoo.png" alt="" width="460" height="234" /></a></p>
<p>Semoga bermanfaat.</p>
]]></content:encoded>
			<wfw:commentRss>http://layangan.com/asfik/blog/2010/08/13/domainkeys-identified-mail-di-zimbra-postfix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[ComSci]]></coop:keyword>
		<coop:keyword><![CDATA[Postfix]]></coop:keyword>
		<coop:keyword><![CDATA[Zimbra]]></coop:keyword>
		<coop:keyword><![CDATA[tutorial]]></coop:keyword>
	</item>
		<item>
		<title>Queue Postfix Penuh Karena Virus/Spam?</title>
		<link>http://layangan.com/asfik/blog/2009/10/03/queue-postfix-penuh-karena-virusspam/</link>
		<comments>http://layangan.com/asfik/blog/2009/10/03/queue-postfix-penuh-karena-virusspam/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 02:17:46 +0000</pubDate>
		<dc:creator>Asfihani</dc:creator>
				<category><![CDATA[Postfix]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.layangan.com/asfik/blog/?p=441</guid>
		<description><![CDATA[Tiba-tiba queue di Postfix penuh oleh email spam atau virus yang berasal dari tempat lain atau network sendiri? Hal tersebut menyebabkan email datang terlambat atau email yang mau keluar juga tersendat. Apa yang harus dilakukan? Jangan panik, mungkin tips berikut ini bisa bermanfaat. Langkah yang paling mudah tapi sangat tidak dianjurkan adalah menghapus queue, misalnya]]></description>
			<content:encoded><![CDATA[<p><img class="floatleft size-full wp-image-330" style="border: 0pt none;" title="postfix" src="http://www.layangan.com/asfik/blog/wp-content/uploads/2008/03/postfix.gif" alt="postfix" width="78" height="55" />Tiba-tiba queue di Postfix penuh oleh email spam atau virus yang berasal dari tempat lain atau network sendiri? Hal tersebut menyebabkan email datang terlambat atau email yang mau keluar juga tersendat. Apa yang harus dilakukan? Jangan panik, mungkin tips berikut ini bisa bermanfaat.</p>
<p>Langkah yang paling mudah tapi sangat tidak dianjurkan adalah menghapus queue, misalnya dengan <a href="http://www.postfix.org/postsuper.1.html">postsuper</a> atau dengan menghapus/merename  direktori queue Postfix. Alternatif lain adalah menjalankan Postfix dengan queue direktori yang berbeda. Dengan cara yang kedua ini, email masih bisa masuk dan keluar sambil kita membersihkan queue yang lama. Mari kita coba skenario yang kedua :)</p>
<p><span id="more-441"></span></p>
<p>Yang pertama kali dilakukan adalah memeriksa dari mana sumber virus/spam tersebut. Ambil salah satu sampel email dari <a href="http://www.postfix.org/sendmail.1.html">mailq(1)</a> dan kemudian lihat headernya dengan menggunakan <a href="http://www.postfix.org/postcat.1.html">postcat(1)</a>. Alternatif lain adalah dengan mengamati log transaksi Postfix, namun lebih rumit. Kalau sudah diketahui asalnya dan masih ada transaksi, sebaiknya aksesnya diblok dulu, bisa menggunakan <a href="http://www.postfix.org/access.5.html">access(5)</a> di Postfix atau lebih baik tutup akses ke port 25-nya langsung.</p>
<p>Selanjutnya, buatlah sebuah direktori yang akan digunakan sebagai queue sementara, misalnya /var/spool/postfix2. Salin direktori /etc/postfix ke /etc/postfix2:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">$ cp <span style="color: #339933;">-</span>pr <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>postfix <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>postfix2</pre></div></div>

<p>Edit file main.cf pada /etc/postfix2, tambahkan atau ubah queue_directory menjadi:</p>
<pre name="code" class="php">queue_directory = /var/spool/postfix2</pre>
<p>Tips dari mas <a href="http://ronald.saragih.net/2009/10/07/memindahkan_direktori_queue_postfix/">Ronald</a>, untuk Postfix yang di <a href="http://www.postfix.org/BASIC_CONFIGURATION_README.html#chroot_setup">chroot</a>, setup terlebih dahulu konfigurasi chrootnya di direktori spool yang baru, dan tambahkan :</p>
<pre name="code" class="php">alternate_config_directories = /etc/postfix2/</pre>
<p>Jalankan postfix check untuk membuat sub-sub direktori pada /var/spool/postfix2:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">$ postfix <span style="color: #339933;">-</span>c <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>postfix2 check</pre></div></div>

<p>Maka akan dibuat direktori sebagai berikut :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">$ ls <span style="color: #339933;">-</span>l <span style="color: #339933;">/</span><span style="color: #000000; font-weight: bold;">var</span><span style="color: #339933;">/</span>spool<span style="color: #339933;">/</span>postfix2
total <span style="color: #cc66cc;">56</span>
drwx<span style="color: #339933;">------</span> <span style="color: #cc66cc;">2</span> postfix root     <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> active
drwx<span style="color: #339933;">------</span> <span style="color: #cc66cc;">2</span> postfix root     <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> bounce
drwx<span style="color: #339933;">------</span> <span style="color: #cc66cc;">2</span> postfix root     <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> corrupt
drwx<span style="color: #339933;">------</span> <span style="color: #cc66cc;">2</span> postfix root     <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> defer
drwx<span style="color: #339933;">------</span> <span style="color: #cc66cc;">2</span> postfix root     <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> deferred
drwx<span style="color: #339933;">------</span> <span style="color: #cc66cc;">2</span> postfix root     <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> <span style="color: #990000;">flush</span>
drwx<span style="color: #339933;">------</span> <span style="color: #cc66cc;">2</span> postfix root     <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> hold
drwx<span style="color: #339933;">------</span> <span style="color: #cc66cc;">2</span> postfix root     <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> incoming
drwx<span style="color: #339933;">-</span>wx<span style="color: #339933;">---</span> <span style="color: #cc66cc;">2</span> postfix postdrop <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> maildrop
drwxr<span style="color: #339933;">-</span>xr<span style="color: #339933;">-</span>x <span style="color: #cc66cc;">2</span> root    root     <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> pid
drwx<span style="color: #339933;">------</span> <span style="color: #cc66cc;">2</span> postfix root     <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> <span style="color: #000000; font-weight: bold;">private</span>
drwx<span style="color: #339933;">--</span>x<span style="color: #339933;">---</span> <span style="color: #cc66cc;">2</span> postfix postdrop <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> <span style="color: #000000; font-weight: bold;">public</span>
drwx<span style="color: #339933;">------</span> <span style="color: #cc66cc;">2</span> postfix root     <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> saved
drwx<span style="color: #339933;">------</span> <span style="color: #cc66cc;">2</span> postfix root     <span style="color: #cc66cc;">4096</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">10</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">02</span> trace</pre></div></div>

<p>Direktori queue yang baru siap dipakai dan Postfix siap untuk dijalankan :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">$ postfix <span style="color: #339933;">-</span>c <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>postfix2<span style="color: #339933;">/</span> start</pre></div></div>

<p>Maka akan tampil di log seperti berikut ini :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">$ tail <span style="color: #339933;">-</span>f <span style="color: #339933;">/</span><span style="color: #000000; font-weight: bold;">var</span><span style="color: #339933;">/</span><span style="color: #990000;">log</span><span style="color: #339933;">/</span><span style="color: #990000;">mail</span><span style="color: #339933;">.</span>info
Oct  <span style="color: #cc66cc;">3</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">05</span><span style="color: #339933;">:</span><span style="color: #cc66cc;">37</span> gatotkoco postfix<span style="color: #339933;">/</span>postfix<span style="color: #339933;">-</span>script<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1803</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> starting the Postfix <span style="color: #990000;">mail</span> <span style="color: #990000;">system</span>
Oct  <span style="color: #cc66cc;">3</span> <span style="color:#800080;">09</span><span style="color: #339933;">:</span><span style="color: #208080;">05</span><span style="color: #339933;">:</span><span style="color: #cc66cc;">37</span> gatotkoco postfix<span style="color: #339933;">/</span>master<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1804</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">:</span> daemon started <span style="color: #339933;">--</span> version 2<span style="color: #339933;">.</span>5<span style="color: #339933;">.</span>1<span style="color: #339933;">,</span> configuration <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>postfix2<span style="color: #339933;">/</span></pre></div></div>

<p>Postfix sudah berjalan dengan menggunakan direktori queue alternatif dan queue yang lama bisa mulai dibersihkan. Tool untuk melihat queue di Postfix favorit saya adalah <a href="http://www.dt.e-technik.uni-dortmund.de/~ma/postfix/">mailqfmt</a> oleh Matthias Andreee.</p>
<p>Untuk mengelola Postfix default, bisa menggunakan perintah seperti biasa seperti mailq, postcat, postsuper dan sebagainya. Sedangkan untuk mengelola Postfix alternatif ini, gunakan perintah dengan menambahkan argumen -c /etc/postfix2. Khusus untuk mengelola queue alternatif, export enviroment <strong>MAIL_CONFIG </strong>ke direktori queue alternatif seperti contoh berikut ini :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">$ export MAIL_CONFIG<span style="color: #339933;">=/</span>etc<span style="color: #339933;">/</span>postfix2
$ mailq
<span style="color: #990000;">Mail</span> queue is <span style="color: #990000;">empty</span></pre></div></div>

<p>Kembali ke queue default (/etc/postfix) :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">$ <span style="color: #990000;">unset</span> MAIL_CONFIG
$ mailq
postqueue<span style="color: #339933;">:</span> warning<span style="color: #339933;">:</span> <span style="color: #990000;">Mail</span> <span style="color: #990000;">system</span> is down <span style="color: #339933;">--</span> accessing queue directly
<span style="color: #339933;">-</span>Queue ID<span style="color: #339933;">-</span> <span style="color: #339933;">--</span>Size<span style="color: #339933;">--</span> <span style="color: #339933;">----</span>Arrival Time<span style="color: #339933;">----</span> <span style="color: #339933;">-</span>Sender<span style="color: #339933;">/</span>Recipient<span style="color: #339933;">-------</span>
9FDB21B4282     <span style="color: #cc66cc;">4710</span> Sat Oct  <span style="color: #cc66cc;">3</span> <span style="color: #cc66cc;">23</span><span style="color: #339933;">:</span><span style="color: #cc66cc;">57</span><span style="color: #339933;">:</span><span style="color: #cc66cc;">58</span>  backup
                                         notifications<span style="color: #339933;">@</span>localhost
F0FEC1B4429    <span style="color: #cc66cc;">11590</span> Sun Oct  <span style="color: #cc66cc;">4</span> <span style="color: #cc66cc;">23</span><span style="color: #339933;">:</span><span style="color: #208080;">03</span><span style="color: #339933;">:</span><span style="color: #cc66cc;">44</span>  backup
                                         notifications<span style="color: #339933;">@</span>localhost
<span style="color: #339933;">--</span> <span style="color: #cc66cc;">65</span> Kbytes in <span style="color: #cc66cc;">2</span> Requests<span style="color: #339933;">.</span></pre></div></div>

<p>Semoga bermanfaat.</p>
]]></content:encoded>
			<wfw:commentRss>http://layangan.com/asfik/blog/2009/10/03/queue-postfix-penuh-karena-virusspam/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
			<coop:keyword><![CDATA[Postfix]]></coop:keyword>
		<coop:keyword><![CDATA[tutorial]]></coop:keyword>
	</item>
		<item>
		<title>DKIM di Postfix</title>
		<link>http://layangan.com/asfik/blog/2008/03/11/dkim-di-postfix/</link>
		<comments>http://layangan.com/asfik/blog/2008/03/11/dkim-di-postfix/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 03:23:22 +0000</pubDate>
		<dc:creator>Asfihani</dc:creator>
				<category><![CDATA[Postfix]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://layangan.com/asfik/blog/2008/03/11/dkim-di-postfix</guid>
		<description><![CDATA[Sebenarnya 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]]></description>
			<content:encoded><![CDATA[<p><img class="floatleft size-full wp-image-330" style="border: 0pt none;" title="postfix" src="http://www.layangan.com/asfik/blog/wp-content/uploads/2008/03/postfix.gif" alt="postfix" width="78" height="55" />Sebenarnya saya cukup puas dengan <a href="http://domainkeys.sourceforge.net/">DomainKeys</a> di Postfix menggunakan <a href="http://jason.long.name/dkfilter/">dkfilter</a> untuk menge-sign email yang keluar. Namun kelihatannya dkfilter ini sudah berhenti developmentnya dan DomainKeys sudah mulai ditinggalkan dan diteruskan oleh <a href="http://www.dkim.org/">DKIM</a>. 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.</p>
<p><span id="more-80"></span>Implementasi DKIM di Postfix kalau saya lihat bisa menggunakan dua metode. Yang pertama adalah dengan menggunakan teknologi <a href="http://www.postfix.org/MILTER_README.html">milter</a>(nya Sendmail) dan menggunakan proxy (<a href="http://www.postfix.org/SMTPD_PROXY_README.html">sebelum</a> atau <a href="http://www.postfix.org/FILTER_README.html">sesudah</a> queue). Yang terakhir ini yang saya gunakan untuk menge-sign email yang keluar saja yaitu <a href="http://dkimproxy.sourceforge.net/">DKIMproxy</a>.Bikin user terlebih dahulu misalnya dkim, kemudian instal modul perl berikut ini:</p>
<blockquote>
<div><code>Crypt::OpenSSL::RSA<br />
Digest::SHA<br />
Digest::SHA1<br />
Error<br />
Mail::Address<br />
MIME::Base64<br />
Net::DNS<br />
Net::Server<br />
Mail::DKIM</code></div>
</blockquote>
<p>Download DKIMproxy dari sini <a href="http://dkimproxy.sourceforge.net/">http://dkimproxy.sourceforge.net/</a>, kemudian lakukan ./configure dengan menentukan direktori dimana program ini akan disimpan, misalnya adalah /usr/local/dkimproxy/:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">./</span>configure <span style="color: #339933;">--</span>prefix<span style="color: #339933;">=/</span>usr<span style="color: #339933;">/</span>local<span style="color: #339933;">/</span>dkimproxy
make install</pre></div></div>

<div>Buat key :</div>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">openssl genrsa <span style="color: #339933;">-</span>out <span style="color: #000000; font-weight: bold;">private</span><span style="color: #339933;">.</span><span style="color: #990000;">key</span> <span style="color: #cc66cc;">1024</span>
openssl rsa <span style="color: #339933;">-</span>in <span style="color: #000000; font-weight: bold;">private</span><span style="color: #339933;">.</span><span style="color: #990000;">key</span> <span style="color: #339933;">-</span>pubout <span style="color: #339933;">-</span>out <span style="color: #000000; font-weight: bold;">public</span><span style="color: #339933;">.</span><span style="color: #990000;">key</span></pre></div></div>

<div>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.</div>
<div>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:</div>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">selector1<span style="color: #339933;">.</span>_domainkey IN TXT <span style="color: #0000ff;">&quot;k=rsa; t=s; p=MHwwDQYJK ... OprwIDAQAB&quot;</span></pre></div></div>

<div>Kemudian jalan daemon DKIMproxy untuk menge-sign email yang keluar untuk domain yang bersangkutan, misalnya example.org (dalam satu baris):</div>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">dkimproxy<span style="color: #339933;">.</span>out <span style="color: #339933;">--</span>user<span style="color: #339933;">=</span>dkim <span style="color: #339933;">--</span>group<span style="color: #339933;">=</span>dkim <span style="color: #339933;">--</span>keyfile<span style="color: #339933;">=/</span>usr<span style="color: #339933;">/</span>local<span style="color: #339933;">/</span>dkimproxy<span style="color: #339933;">/</span><span style="color: #000000; font-weight: bold;">private</span><span style="color: #339933;">.</span><span style="color: #990000;">key</span>
<span style="color: #339933;">--</span>selector<span style="color: #339933;">=</span>selector1 <span style="color: #339933;">--</span>domain<span style="color: #339933;">=</span>example<span style="color: #339933;">.</span>org <span style="color: #339933;">--</span>method<span style="color: #339933;">=</span>relaxed
127<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>1<span style="color: #339933;">:</span><span style="color: #cc66cc;">10027</span> 127<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>1<span style="color: #339933;">:</span><span style="color: #cc66cc;">10028</span></pre></div></div>

<div>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 <a href="http://dkimproxy.sourceforge.net/postfix-outbound-howto.html">disini</a>. Test dengan mengirim email ke Yahoo, jangan lupa  untuk mengganti SMTP port menjadi port 587, maka jika sukses akan ada log seperti ini :</div>
<div>
<pre>

Feb 26 11:22:11 smtp01 dkimproxy.out[15418]: DKIM signing - signed;
message-id=<47C3942E.4080802@example.org> signer=<@example.org>
from=<asfik@example.org>
</pre>
</div>
<div><strong><br />
</strong></div>
<div>Kemudian periksa di Yahoo, jika sukses akan terlihat di header seperti ini:</p>
<p><img src="http://www.layangan.com/asfik/blog/wp-content/uploads/2008/03/dkim2.png" alt="DKIM di Postfix" /></p>
<p>Semoga bermanfaat :-)</p></div>
]]></content:encoded>
			<wfw:commentRss>http://layangan.com/asfik/blog/2008/03/11/dkim-di-postfix/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
			<coop:keyword><![CDATA[Postfix]]></coop:keyword>
		<coop:keyword><![CDATA[tutorial]]></coop:keyword>
	</item>
		<item>
		<title>Postfix TLS dan SASL Dengan Menggunakan MySQL</title>
		<link>http://layangan.com/asfik/blog/2007/12/31/postfix-tls-dan-sasl-dengan-menggunakan-mysql/</link>
		<comments>http://layangan.com/asfik/blog/2007/12/31/postfix-tls-dan-sasl-dengan-menggunakan-mysql/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 02:42:50 +0000</pubDate>
		<dc:creator>Asfihani</dc:creator>
				<category><![CDATA[Postfix]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://layangan.com/asfik/blog/2007/12/31/postfix-tls-dan-sasl-dengan-menggunakan-mysql</guid>
		<description><![CDATA[Tutorial singkat ini menjelaskan bagaimana mengkonfigurasi Postfix 2.4.6 agar menggunakan Cyrus SASL dengan data username dan password yang diambil dari database MySQL dengan tambahan enkripsi TLS di Centos 4.4. Pada umumnya untuk menggunakan sebuah SMTP server, maka yang kita lakukan adalah dengan mengisikan nama host yang sudah disediakan oleh ISP atau kita sendiri. Dengan catatan]]></description>
			<content:encoded><![CDATA[<p><img class="floatleft size-full wp-image-330" style="border: 0pt none ;" title="postfix" src="http://www.layangan.com/asfik/blog/wp-content/uploads/2008/03/postfix.gif" alt="postfix" width="78" height="55" />Tutorial singkat ini menjelaskan bagaimana mengkonfigurasi <a href="http://www.postfix.org">Postfix</a> 2.4.6 agar menggunakan <a href="http://asg.web.cmu.edu/sasl/">Cyrus SASL</a> dengan data username dan password yang diambil dari database MySQL dengan tambahan enkripsi <a href="http://en.wikipedia.org/wiki/Secure_Sockets_Layer">TLS</a> di <a href="http://www.centos.org">Centos</a> 4.4.</p>
<p>Pada umumnya untuk menggunakan sebuah SMTP server, maka yang kita lakukan adalah dengan mengisikan nama host yang sudah disediakan oleh ISP atau kita sendiri. Dengan catatan bahwa IP address tetap atau network yang kita gunakan sudah &#8216;didaftarkan&#8217; di SMTP tersebut untuk bisa menggunakan sevicenya. Lalu bagaimana jika ada pengguna yang sifatnya mobile atau istilah bekennya Road Warrior, yang selalu gonta-ganti ISP yang selalu mendapatkan IP dinamis? Solusinya adalah denga menggunakan metode <a href="http://en.wikipedia.org/wiki/SMTP-AUTH">SMTPAuth</a>. Yaitu suatu mekanisme dimana pengguna diminta untuk memasukkan username dan password agar bisa menggunakan service suatu SMTP server.</p>
<p><span id="more-69"></span><strong>Install Cyrus SASL</strong></p>
<p>Langkah pertama adalah menginstall Cyrus-SASL jika belum, jika Anda memilih Postfix pada waktu instalasi awal, maka biasanya Cyrus-SASL sudah otomatis diinstall, paket-paketnya adalah sebagai berikut:</p>
<ul>
<li>cyrus-sasl-md5-2.1.19-14</li>
<li>cyrus-sasl-sql-2.1.19-14</li>
<li>cyrus-sasl-devel-2.1.19-14</li>
<li>cyrus-sasl-2.1.19-14</li>
<li>cyrus-sasl-plain-2.1.19-14</li>
</ul>
<p>Silakan disesuaikan dengan distro Anda, yang penting adalah paket cyrus-sasl, cyrus-sasl-devel, cyrus-sasl -sql, cyrus-sasl-plain harus ada.</p>
<p>Edit file /usr/lib/sasl2/smtpd.conf, kemudian ganti dengan konfigurasi berikut ini :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">pwcheck_method<span style="color: #339933;">:</span> auxprop
auxprop_plugin<span style="color: #339933;">:</span> sql
sql_engine<span style="color: #339933;">:</span> <span style="color: #990000;">mysql</span>
mech_list<span style="color: #339933;">:</span> sql plain login
sql_hostnames<span style="color: #339933;">:</span> localhost
sql_user<span style="color: #339933;">:</span> vpopmail
sql_passwd<span style="color: #339933;">:</span> mautauajah
sql_database<span style="color: #339933;">:</span> vpopmail
sql_statement<span style="color: #339933;">:</span> SELECT pw_clear_passwd FROM vpopmail WHERE pw_name <span style="color: #339933;">=</span> <span style="color: #0000ff;">'%u'</span> AND pw_domain <span style="color: #339933;">=</span> <span style="color: #0000ff;">'%r'</span>
sql_verbose<span style="color: #339933;">:</span> yes</pre></div></div>

<p>Sesuaikan dengan konfigurasi MySQL ditempat Anda. Untuk parameter sql_statement tersebut adalah satu baris. Kemudian untuk statemen SQLnya saya ambil contoh dari tabel <a href="http://www.inter7.com/vpopmail/">vpopmail</a> dengan menggunakan backend MySQL, silakan dicocokkan dengan struktu tabel pada database yang Anda pakai dengan memanfaatkan magic string &#8216;%u&#8217; yang akan diganti dengan local part (biasanya username) dan &#8216;%r&#8217; atau realm yang biasanya diganti dengan nama domain.</p>
<p>Sebagai gambaran, struktur tabel vpopmail dengan menggunakan single tabel untuk multi domain adalah sebagai berikut ini:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">mysql<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> describe vpopmail<span style="color: #339933;">;</span>
<span style="color: #339933;">+-----------------+-----------+------+-----+---------+-------+</span>
<span style="color: #339933;">|</span> Field           <span style="color: #339933;">|</span> Type      <span style="color: #339933;">|</span> <span style="color: #009900; font-weight: bold;">Null</span> <span style="color: #339933;">|</span> <span style="color: #990000;">Key</span> <span style="color: #339933;">|</span> <span style="color: #b1b100;">Default</span> <span style="color: #339933;">|</span> Extra <span style="color: #339933;">|</span>
<span style="color: #339933;">+-----------------+-----------+------+-----+---------+-------+</span>
<span style="color: #339933;">|</span> pw_name         <span style="color: #339933;">|</span> char<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">32</span><span style="color: #009900;">&#41;</span>  <span style="color: #339933;">|</span> NO   <span style="color: #339933;">|</span> PRI <span style="color: #339933;">|</span>         <span style="color: #339933;">|</span>       <span style="color: #339933;">|</span>
<span style="color: #339933;">|</span> pw_domain       <span style="color: #339933;">|</span> char<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">64</span><span style="color: #009900;">&#41;</span>  <span style="color: #339933;">|</span> NO   <span style="color: #339933;">|</span> PRI <span style="color: #339933;">|</span>         <span style="color: #339933;">|</span>       <span style="color: #339933;">|</span>
<span style="color: #339933;">|</span> pw_passwd       <span style="color: #339933;">|</span> char<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">40</span><span style="color: #009900;">&#41;</span>  <span style="color: #339933;">|</span> YES  <span style="color: #339933;">|</span>     <span style="color: #339933;">|</span> <span style="color: #009900; font-weight: bold;">NULL</span>    <span style="color: #339933;">|</span>       <span style="color: #339933;">|</span>
<span style="color: #339933;">|</span> pw_uid          <span style="color: #339933;">|</span> int<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #009900;">&#41;</span>   <span style="color: #339933;">|</span> YES  <span style="color: #339933;">|</span>     <span style="color: #339933;">|</span> <span style="color: #009900; font-weight: bold;">NULL</span>    <span style="color: #339933;">|</span>       <span style="color: #339933;">|</span>
<span style="color: #339933;">|</span> pw_gid          <span style="color: #339933;">|</span> int<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #009900;">&#41;</span>   <span style="color: #339933;">|</span> YES  <span style="color: #339933;">|</span>     <span style="color: #339933;">|</span> <span style="color: #009900; font-weight: bold;">NULL</span>    <span style="color: #339933;">|</span>       <span style="color: #339933;">|</span>
<span style="color: #339933;">|</span> pw_gecos        <span style="color: #339933;">|</span> char<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">48</span><span style="color: #009900;">&#41;</span>  <span style="color: #339933;">|</span> YES  <span style="color: #339933;">|</span>     <span style="color: #339933;">|</span> <span style="color: #009900; font-weight: bold;">NULL</span>    <span style="color: #339933;">|</span>       <span style="color: #339933;">|</span>
<span style="color: #339933;">|</span> pw_dir          <span style="color: #339933;">|</span> char<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">160</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> YES  <span style="color: #339933;">|</span>     <span style="color: #339933;">|</span> <span style="color: #009900; font-weight: bold;">NULL</span>    <span style="color: #339933;">|</span>       <span style="color: #339933;">|</span>
<span style="color: #339933;">|</span> pw_shell        <span style="color: #339933;">|</span> char<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #009900;">&#41;</span>  <span style="color: #339933;">|</span> YES  <span style="color: #339933;">|</span>     <span style="color: #339933;">|</span> <span style="color: #009900; font-weight: bold;">NULL</span>    <span style="color: #339933;">|</span>       <span style="color: #339933;">|</span>
<span style="color: #339933;">|</span> pw_clear_passwd <span style="color: #339933;">|</span> char<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">16</span><span style="color: #009900;">&#41;</span>  <span style="color: #339933;">|</span> YES  <span style="color: #339933;">|</span>     <span style="color: #339933;">|</span> <span style="color: #009900; font-weight: bold;">NULL</span>    <span style="color: #339933;">|</span>       <span style="color: #339933;">|</span>
<span style="color: #339933;">+-----------------+-----------+------+-----+---------+-------+</span>
<span style="color: #cc66cc;">9</span> rows in set <span style="color: #009900;">&#40;</span><span style="color:#800080;">0.00</span> sec<span style="color: #009900;">&#41;</span></pre></div></div>

<p>Anda bisa menyesuaikan dengan field username, password dan domain jika Anda menggunakan struktur tabel yang berbeda.</p>
<p><strong>Install Postfix dengan TLS dan SASL support</strong></p>
<p>Anda bisa menggunakan paket RPM yang sudah support TLS dan SASL atau bisa mengkompilasi sendiri. Untuk kompilasi sendiri kira-kira begini langkah-langkahnya:</p>
<p>Hapus Postfix yang sudah terinstall, sebelumnya ada baiknya direktori /etc/postfix dibackup terlebih dahulu :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">cp <span style="color: #339933;">-</span>r <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>postfix <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>postfix<span style="color: #339933;">.</span>bak
yum <span style="color: #339933;">-</span>y remove postfix <span style="color: #009900;">&#40;</span>atau rpm <span style="color: #339933;">-</span>e <span style="color: #339933;">--</span>nodeps postfix<span style="color: #009900;">&#41;</span></pre></div></div>

<p>Download dan install Postfix :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">wget ftp<span style="color: #339933;">:</span><span style="color: #666666; font-style: italic;">//mirror.cbn.net.id/pub/postfix-release/official/postfix-2.4.6.tar.gz</span>
tar xzvf postfix<span style="color: #339933;">-</span>2<span style="color: #339933;">.</span>4<span style="color: #339933;">.</span>6<span style="color: #339933;">.</span>tar<span style="color: #339933;">.</span>gz
cd postfix<span style="color: #339933;">-</span>2<span style="color: #339933;">.</span>4<span style="color: #339933;">.</span>6
make makefiles CCARGS<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;-DUSE_TLS -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl&quot;</span> AUXLIBS<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;-L/usr/lib/sasl2 -lsasl2 -lssl -lcrypto&quot;</span>
make
make install <span style="color: #009900;">&#40;</span>atau make upgrade jika upgrade<span style="color: #009900;">&#41;</span></pre></div></div>

<p>Kemudian edit file /etc/postfix/main.cf sesuaikan dengan konfigurasi Anda sebelumnya, lalu jalankan perintah berikut ini untuk menjalankan Postfix :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">postfix start</pre></div></div>

<p>Semestinya akan muncul di syslog Anda (biasanya file /var/log/maillog atau /var/log/mail/info dlsb) kurang lebih seperti ini :</p>
<p>Dec 28 16:09:51 palestine postfix/postfix-script[13515]: starting the Postfix mail system<br />
Dec 28 16:09:52 palestine postfix/master[13516]: daemon started &#8212; version 2.4.6, configuration /etc/postfix</p>
<p><strong>Aktifkan SASL</strong></p>
<p>Ok, kelihatannya berjalan sesuai dengan harapan. Sekarang edit file main.cf kemudian aktifkan SASL, dengan menambahkan :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">broken_sasl_auth_clients <span style="color: #339933;">=</span> yes
smtpd_sasl_auth_enable <span style="color: #339933;">=</span> yes
smtpd_sasl_authenticated_header <span style="color: #339933;">=</span> yes
smtpd_sasl_exceptions_networks <span style="color: #339933;">=</span> <span style="color: #000088;">$mynetworks</span>
smtpd_recipient_restrictions <span style="color: #339933;">=</span>
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination</pre></div></div>

<p>Kemudian silakan dicoba untuk menggunakan SMTP Auth ke server Anda. Ingat, untuk mencobanya harus dari IP address yang tidak terdaftar di parameter mynetworks. Anda bisa saja menggunakan network lain, atau menggunakan salah satu dari network yang ada sekarang namun memberikan pengecualian untuk satu IP. Caranya cukup mudah, yaitu cukup menambahkan negasi (exclamation mark/tanda seru) di konfigurasi di mynetworks. Misalnya untuk meng-exclude IP 10.126.10.112 dari network 10.126.10.0/24 adalah :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">mynetworks <span style="color: #339933;">=</span> 127<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>0<span style="color: #339933;">.</span>0<span style="color: #339933;">/</span><span style="color: #cc66cc;">8</span><span style="color: #339933;">,</span> <span style="color: #339933;">!</span>10<span style="color: #339933;">.</span>126<span style="color: #339933;">.</span>10<span style="color: #339933;">.</span>112<span style="color: #339933;">/</span><span style="color: #cc66cc;">32</span><span style="color: #339933;">,</span> 10<span style="color: #339933;">.</span>126<span style="color: #339933;">.</span>10<span style="color: #339933;">.</span>0<span style="color: #339933;">/</span><span style="color: #cc66cc;">24</span></pre></div></div>

<p>Jika berhasil, kira-kira akan muncul log seperti ini :</p>
<p>Dec 28 16:39:36 palestine postfix/smtpd[22197]: 33E53E4010: client=unknown[10.126.10.112], <strong>sasl_method=PLAIN, sasl_username=asfik@domain.tld</strong></p>
<p>Perhatikan pada kata yang dicetak tebal diatas, hal tersebut menujukkan bahwa user <strong>asfik@domain.tld</strong> sukses melakukan authentikasi dengan metode <strong>PLAIN</strong> (yang akan kita amankan sebentar lagi).</p>
<p>Kalau kita periksa header di email yang kita terima, maka akan terdapat beberapa tambahan :</p>
<p>Return-Path: &lt;asfik@domain.tld&gt;<br />
Delivered-To: asfik@domain.tld<br />
Received: from [10.126.10.112]<br />
(<strong>Authenticated sender: asfik@domain.tld</strong>)<br />
by palestine.domain.tld (Postfix) with ESMTP id 33E53E4010<br />
for &lt;asfik@domain.tld&gt;; Fri, 28 Dec 2007 16:39:36 +0700 (WIT)<br />
Message-ID: &lt;4774BE3B.7050308@domain.tld&gt;<br />
Date: Fri, 28 Dec 2007 16:13:31 +0700<br />
From: Asfihani &lt;asfik@domain.tld&gt;<br />
User-Agent: Thunderbird 2.0.0.6 (X11/20071022)<br />
MIME-Version: 1.0<br />
To: Asfihani &lt;asfik@domain.tld&gt;<br />
Subject: test<br />
Content-Type: text/plain; charset=ISO-8859-1; format=flowed<br />
Content-Transfer-Encoding: 7bit</p>
<p>test</p>
<p align="left">Kata yang dicetak tebal tersebut dihasilkan dari hasil authentikasi, jika Anda ingin menonaktifkan fitur ini, ubah di main.cf menjadi :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">smtpd_sasl_authenticated_header <span style="color: #339933;">=</span> no</pre></div></div>

<p align="left"><strong>Aktifkan TLS</strong></p>
<p align="left">Langkah berikutnya adalah mengamankan transaksi yang dikirim ke SMTP server dengan menambahkan satu layer security yaitu TLS. Karena username dan password sangat rentan dibajak ditengah jalan, pada saat ini penggunaan TLS untuk SMTP Auth (SASL) merupakan suatu kewajiban bukan kebutuhan :-)</p>
<p align="left">Anda bisa menggunakan sertifikat yang sudah ada (misalnya perusahaan anda), atau untuk percobaan bisa menggunakan self-signed certificate. Apa bedanya? Ya kalau menggunakan tipe yang terakhir akan muncul warning warning (yang nantinya bisa disave agar tidak muncul lagi) yang kurang asik saja :-).</p>
<p align="left">Mari kita membuat sertifikat beserta private keynya, pastikan bahwa <strong>Common Name</strong> yang diisikan sesuai dengan hostname SMTP server dan passphrase yang dimasukkan selalu diingat:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">mkdir</span> <span style="color: #339933;">-</span>p <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>postfix<span style="color: #339933;">/</span>ssl<span style="color: #339933;">/</span>
cd <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>postfix<span style="color: #339933;">/</span>ssl<span style="color: #339933;">/</span>
openssl genrsa <span style="color: #339933;">-</span>des3 <span style="color: #339933;">-</span><span style="color: #990000;">rand</span> <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>hosts <span style="color: #339933;">-</span>out smtpd<span style="color: #339933;">.</span><span style="color: #990000;">key</span> <span style="color: #cc66cc;">1024</span>
<span style="color: #990000;">chmod</span> <span style="color: #cc66cc;">600</span> smtpd<span style="color: #339933;">.</span><span style="color: #990000;">key</span>
openssl req <span style="color: #339933;">-</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #339933;">-</span><span style="color: #990000;">key</span> smtpd<span style="color: #339933;">.</span><span style="color: #990000;">key</span> <span style="color: #339933;">-</span>out smtpd<span style="color: #339933;">.</span>csr
openssl x509 <span style="color: #339933;">-</span>req <span style="color: #339933;">-</span>days <span style="color: #cc66cc;">3650</span> <span style="color: #339933;">-</span>in smtpd<span style="color: #339933;">.</span>csr <span style="color: #339933;">-</span>signkey smtpd<span style="color: #339933;">.</span><span style="color: #990000;">key</span> <span style="color: #339933;">-</span>out smtpd<span style="color: #339933;">.</span>crt
openssl rsa <span style="color: #339933;">-</span>in smtpd<span style="color: #339933;">.</span><span style="color: #990000;">key</span> <span style="color: #339933;">-</span>out smtpd<span style="color: #339933;">.</span><span style="color: #990000;">key</span><span style="color: #339933;">.</span>unencrypted
mv <span style="color: #339933;">-</span>f smtpd<span style="color: #339933;">.</span><span style="color: #990000;">key</span><span style="color: #339933;">.</span>unencrypted smtpd<span style="color: #339933;">.</span><span style="color: #990000;">key</span>
openssl req <span style="color: #339933;">-</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #339933;">-</span>x509 <span style="color: #339933;">-</span>extensions v3_ca <span style="color: #339933;">-</span>keyout cakey<span style="color: #339933;">.</span>pem <span style="color: #339933;">-</span>out cacert<span style="color: #339933;">.</span>pem <span style="color: #339933;">-</span>days <span style="color: #cc66cc;">3650</span></pre></div></div>

<p>Aktifkan TLS di Postfix dengan menambahkan konfigurasi berikut ini di file main.cf :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">smtpd_tls_cert_file <span style="color: #339933;">=</span> <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>postfix<span style="color: #339933;">/</span>ssl<span style="color: #339933;">/</span>smtpd<span style="color: #339933;">.</span>crt
smtpd_tls_key_file <span style="color: #339933;">=</span> <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>postfix<span style="color: #339933;">/</span>ssl<span style="color: #339933;">/</span>smtpd<span style="color: #339933;">.</span><span style="color: #990000;">key</span>
smtpd_tls_CAfile <span style="color: #339933;">=</span> <span style="color: #339933;">/</span>etc<span style="color: #339933;">/</span>postfix<span style="color: #339933;">/</span>ssl<span style="color: #339933;">/</span>cacert<span style="color: #339933;">.</span>pem
smtpd_use_tls <span style="color: #339933;">=</span> yes
smtpd_tls_received_header <span style="color: #339933;">=</span> yes
smtpd_tls_loglevel <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span>
tls_random_source <span style="color: #339933;">=</span> dev<span style="color: #339933;">:/</span>dev<span style="color: #339933;">/</span>urandom
smtpd_tls_session_cache_timeout <span style="color: #339933;">=</span> 3600s</pre></div></div>

<p>Test dengan menggunakan mail user agent favorit Anda, pastikan opsi TLS dipilih. Jika sukses, Anda akan melihat log seperti ini di Postfix :</p>
<p><strong>Dec 31 09:25:25 palestine postfix/smtpd[11419]: TLS connection established from unknown[10.126.10.112]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)<br />
Dec 31 09:25:25 palestine postfix/smtpd[11419]: 3624BE4010: client=unknown[10.126.10.112], sasl_method=PLAIN, sasl_username=asfik@domain.tld</strong></p>
<p>Demikian tutorial ini dibuat semoga bermanfaat. Ada kekurangan/kesalahan adalah murni dari saya sendiri.</p>
]]></content:encoded>
			<wfw:commentRss>http://layangan.com/asfik/blog/2007/12/31/postfix-tls-dan-sasl-dengan-menggunakan-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
			<coop:keyword><![CDATA[Postfix]]></coop:keyword>
		<coop:keyword><![CDATA[tutorial]]></coop:keyword>
	</item>
		<item>
		<title>Shallbetter Industries Spam</title>
		<link>http://layangan.com/asfik/blog/2006/11/11/shallbetter-industries-spam/</link>
		<comments>http://layangan.com/asfik/blog/2006/11/11/shallbetter-industries-spam/#comments</comments>
		<pubDate>Sat, 11 Nov 2006 08:28:17 +0000</pubDate>
		<dc:creator>Asfihani</dc:creator>
				<category><![CDATA[ComSci]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://layangan.com/asfik/blog/2006/11/11/shallbetter-industries-spam/</guid>
		<description><![CDATA[Akhir-akhir ini saya sering sekali mendapatkan email spam yang berasal dari Shallbetter Industries (a.k.a SBNS) (websitenya mati?), sebuah perusahaan perusahaan investasi pertambangan yang berasal dari Mongolia. Isi spamnya rata-rata adalah ajakan untuk membeli saham mereka. Masalahnya spam ini menggunakan embedded image seperti yang diterangkan dalam RFC2557 lihat pada bagian 9.5 Example using CID URL and]]></description>
			<content:encoded><![CDATA[<p><img class="floatleft size-full wp-image-340" style="border: 0pt none;" title="spam" src="http://www.layangan.com/asfik/blog/wp-content/uploads/2006/11/spam.jpg" alt="spam" width="85" height="76" />Akhir-akhir ini saya sering sekali mendapatkan email spam yang berasal dari <a href="http://www.shallbetterindustries.com/" target="_blank">Shallbetter Industries</a> (a.k.a SBNS) (websitenya mati?), sebuah perusahaan perusahaan investasi pertambangan yang berasal dari Mongolia. Isi spamnya rata-rata adalah ajakan untuk membeli saham mereka. Masalahnya spam ini menggunakan <em>embedded image</em> seperti yang diterangkan dalam <a href="http://www.ietf.org/rfc/rfc2557.txt" target="_blank">RFC2557</a> lihat pada bagian 9.5 Example using CID URL and Content-ID header to an embedded GIF picture. Pada dasarnya email ini seperti email HTML biasa tapi dengan memanfaatkan RFC tersebut diatas, pengirim menggunakan TAG HTML (IMG SRC) yang diencode dengan base64. Contohnya adalah seperti ini:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">cid<span style="color: #339933;">:</span>000d01c6ff20<span style="color: #000088;">$a1411070</span><span style="color: #000088;">$c49c7e52</span><span style="color: #339933;">@</span>eneryxS1</pre></div></div>

<p>Kalau ditampilkan akan menjadi seperti gambar seperti ini:</p>
<p><span id="more-36"></span></p>
<p><img id="image35" src="http://www.layangan.com/asfik/blog/wp-content/uploads/2006/11/sbns1.gif" alt="sbns1.gif" /></p>
<p>Setelah beberapa mendapatkan sampel email spam, dan melihat source dari email tersebut bahwa ada pola tertentu yang bisa dimasukkan sebagai <a href="http://www.postfix.org/header_checks.5.html" target="_blank">body_checks</a> di Postfix dengan menggunakan <a href="http://www.pcre.org/" target="_blank">PCRE</a>. Rulenya adalah sebagai berikut (didapatkan dari mailing list postfix-users@postfix.org):</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">/</span>\bsrc\s<span style="color: #339933;">*=</span><span style="color: #009900;">&#40;</span>?<span style="color: #339933;">:</span>3D<span style="color: #009900;">&#41;</span>?\s<span style="color: #339933;">*</span><span style="color: #0000ff;">&quot;?cid:/ REJECT Sorry, emails with embedded images are blocked for security reasons</span></pre></div></div>

<p>Setelah dua hari dipasang&#8230; :</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">grep images <span style="color: #339933;">/</span><span style="color: #000000; font-weight: bold;">var</span><span style="color: #339933;">/</span><span style="color: #990000;">log</span><span style="color: #339933;">/</span><span style="color: #990000;">mail</span><span style="color: #339933;">.</span>info <span style="color: #339933;">|</span> wc <span style="color: #339933;">-</span>l
<span style="color: #cc66cc;">12</span></pre></div></div>

<p>Lumayan lah untuk mengurangi spam :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://layangan.com/asfik/blog/2006/11/11/shallbetter-industries-spam/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
			<coop:keyword><![CDATA[ComSci]]></coop:keyword>
		<coop:keyword><![CDATA[Postfix]]></coop:keyword>
		<coop:keyword><![CDATA[spam]]></coop:keyword>
	</item>
	</channel>
</rss>

