<?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; tutorial</title>
	<atom:link href="http://layangan.com/asfik/blog/tag/tutorial/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>Postfix sebagai Mail Hosting</title>
		<link>http://layangan.com/asfik/blog/2005/12/15/postfix-sebagai-mail-hosting/</link>
		<comments>http://layangan.com/asfik/blog/2005/12/15/postfix-sebagai-mail-hosting/#comments</comments>
		<pubDate>Wed, 14 Dec 2005 22:51:59 +0000</pubDate>
		<dc:creator>Asfihani</dc:creator>
				<category><![CDATA[ComSci]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://layangan.com/asfik/blog/?p=13</guid>
		<description><![CDATA[Tulisan ini merupakan lanjutan dari seri &#8220;Bingung dengan Postfix&#8220;. Dalam skema Postfix sebagai mail hosting, Postfix akan menerima dan menyimpan email. Artinya Postfix merupakan tujuan akhir dari sebuah email yang ditujukan ke sebuah domain yang kemudian user yang bersangkutan akan mengambilnya dilain waktu. Yang perlu diperhatikan dalam hal ini adalah apakah domain yang akan dihandle]]></description>
			<content:encoded><![CDATA[<p><em>Tulisan ini merupakan lanjutan dari seri &#8220;<a href="http://www.layangan.com/asfik/blog/2005/12/13/bingung-dengan-postfix/">Bingung dengan Postfix</a>&#8220;</em>.</p>
<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" />Dalam skema Postfix sebagai mail hosting, Postfix akan menerima dan menyimpan email. Artinya Postfix merupakan tujuan akhir dari sebuah email yang ditujukan ke sebuah domain yang kemudian user yang bersangkutan akan mengambilnya dilain waktu. Yang perlu diperhatikan dalam hal ini adalah apakah domain yang akan dihandle oleh Postfix termasuk domain lokal atau virtual? Baik domain lokal maupun virtual keduanya bisa menggunakan <abbr title="Account yang berada dalam sebuah sistem UNIX">UNIX account</abbr>, walaupun dalam keadaan domain virtual banyak juga yang menggunakan database user non-UNIX.  <span id="more-13"></span></p>
<p>Selain itu, tipe peyimpanan email juga harus diperhatikan apakah Anda akan menggunakan tipe tradisional <em>mailbox</em> atau tipe <em>maildir</em>. Sebagai gambaran, untuk tipe mailbox <em>semua</em> email untuk seorang user akan disimpan dalam <em>satu</em> buah file, biasanya di direktori <code>/var/spool/mail/namauser</code> atau <code>/var/mail/namauser</code>. Sedangkan untuk tipe maildir, <em>setiap</em> satu email akan disimpan dalam file yang berbeda dalam sebuah direktori yang sudah ditentukan. Tentu saja jika Anda menggunakan tipe maildir akan lebih bagus, karena tidak ada proses <em>locking</em> baik pada saat proses penulisan atau pengambilan sebuah email oleh user.</p>
<p>Mengapa pemilihan tipe penyimpanan email ini perlu diperhatikan, karena nantinya akan berhubungan juga dengan tipe server POP3 yang digunakan. Kalau digambarkan untuk skema ini alurnya mungkin akan seperti ini:  MTA sender &#8212;&gt; Postfix &#8212;&gt; Mailbox storage  Mari kita ambil contoh yang paling sederhana saja, misalnya ada sebuah domain lokal <strong>palestine.net </strong> dengan tipe penyimpanan email maildir. Maka parameter yang perlu diubah adalah <code>mydestination</code> yang berisi daftar domain yang akan dihandle Postfix dan <code>home_mailbox</code> untuk tipe penyimpanan yang digunakan. Maka contoh konfigurasi file di <code> /etc/postfix/main.cf</code> adalah:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">mydestination <span style="color: #339933;">=</span> <span style="color: #339933;">&lt;</span>strong<span style="color: #339933;">&gt;</span>palestine<span style="color: #339933;">.</span>net<span style="color: #339933;">&lt;/</span>strong<span style="color: #339933;">&gt;</span>
home_mailbox <span style="color: #339933;">=</span> <span style="color: #339933;">&lt;</span>strong<span style="color: #339933;">&gt;</span>Maildir<span style="color: #339933;">/&lt;/</span>strong<span style="color: #339933;">&gt;</span></pre></div></div>

<blockquote><p>Catatan: Jika Anda sudah mengisikan domain <strong>palestine.net</strong> di parameter <code>mydomain</code>, maka Anda bisa juga menggunakan variabel tersebut pada <code>mysdestination</code>, misalnya konfigurasinya menjadi <code>mydestination = <strong>$mydomain</strong></code></p></blockquote>
<p>Buatlah sebuah user test, misalnya adalah user &#8220;<abbr title="Named after Assyahid Syaikh Izzuddin Alqossam ">alqossam</abbr>&#8221; : </p>
<p><code> jericho:~ # <strong>useradd alqossam -m -c "Izzuddin Alqossam"</strong><br />
jericho:~ # <strong>passwd alqossam</strong> </code> </p>
<p>Kemudian test mengirimkan email kepada user yang baru dibuat tersebut diatas : </p>
<p><code> asfik@jericho:~&gt; <strong>mail alqossam@palestine.net</strong><br />
Subject: Kegiatan sebelum Idul Adha<br />
Dear Pak Alqossam,<br />
Bisakah kita bertemu malam ini di West Bank?<br />
Asfihani<br />
.<br />
EOT<br />
</code></p>
<p>Kalau kita perhatikan transaksi tersebut di file mailllog adalah sebagai berikut:</p>
<p><code>Dec 15 07:52:44 jericho postfix/pickup[8028]: 89A31E993A: uid=1000 from=&lt;asfik&gt;<br />
Dec 15 07:52:44 jericho postfix/cleanup[8033]: 89A31E993A: message-id=<br />
&lt;43A0BE5C.mail672111TQR@jericho.palestine.net&gt;<br />
Dec 15 07:52:44 jericho postfix/qmgr[8029]: 89A31E993A: from=&lt;asfik@jericho.palestine.net&gt;,<br />
size=542, nrcpt=1 (queue active)<br />
Dec 15 07:52:44 jericho postfix/local[8035]: 89A31E993A: to=&lt;alqossam@palestine.net&gt;,<br />
relay=local, delay=0, status=sent (delivered to maildir)<br />
Dec 15 07:52:44 jericho postfix/qmgr[8029]: 89A31E993A: removed</code></p>
<p>Kalau kita lihat <code>status=sent (delivered to maildir)</code> berarti email sudah diterima dan disimpan di <em>homedirectory</em> user &#8220;alqossam&#8221;, mari kita periksa:  </p>
<p><code>asfik@jericho:~&gt; <strong>ls /home/alqossam/Maildir/new</strong><br />
.  ..  1134607964.V304Ia4c6cM809076.jericho </code></p>
<p>Lalu kita lihat isinya apa ya: </p>
<p><code> asfik@jericho:~&gt; <strong>cd /home/alqossam/Maildir/new/</strong><br />
asfik@jericho:/home/alqossam/Maildir/new&gt;<strong>cat 1134607964.V304Ia4c6cM809076.jericho</strong></code></p>
<p><code>Return-Path: &lt;asfik@jericho.palestine.net&gt;<br />
X-Original-To: alqossam@palestine.net<br />
Delivered-To: alqossam@palestine.net<br />
Received: by jericho.palestine.net (Postfix, from userid 1000)<br />
        id 89A31E993A; Thu, 15 Dec 2005 07:52:44 +0700 (WIT)<br />
Date: Thu, 15 Dec 2005 07:52:44 +0700<br />
To: alqossam@palestine.net<br />
Subject: Kegiatan sebelum Idul Adha<br />
Message-ID: &lt;43A0BE5C.mail672111TQR@jericho.palestine.net&gt;<br />
User-Agent: nail 11.4 8/29/04<br />
MIME-Version: 1.0<br />
Content-Type: text/plain; charset=us-ascii<br />
Content-Transfer-Encoding: 7bit<br />
From: asfik@jericho.palestine.net (Asfihani)<br />
</code><br />
<code><br />
Dear Pak Alqossam,<br />
Bisakah kita bertemu malam ini di West Bank?<br />
</code><code><br />
Asfihani</code></p>
<p>Hmm, isinya email yang barusan kita kirimkan. Berarti kita sudah berhasil. Jika Anda sudah puas, maka Anda tinggal meminta  user untuk melakukan <code>ssh</code> ke server dan mulai membiasakan diri menjadi seorang yang <em>geek</em> :-)  dengan menggunakan email client yang berbasis teks seperti <abbr title="MUA favorit saya oleh Pak Michael Elkins"><a href="http://www.mutt.org">mutt</a></abbr>, <abbr title="Program for Internet News and Email"><a href="http://www.washington.edu/pine">PINE</a></abbr>, atau MUA lain yang mendukung format maildir.</p>
<h4>Server POP3/IMAP</h4>
<p>Namun jika Anda ingin memanjakan user Anda, mari bersama-sama menginstall server POP3/IMAP. Anda bisa memilih software POP3/IMAP apa saja asal mendukung format maildir seperti skenario kita diatas. Idola saya adalah <a href="http://www.dovecot.org">Dovecot</a> buatan Pak Timo Sirainen dari Finlandia yang sudah mendukung format maildir serta merupakan paket hemat <em>two-in-one</em>, yaitu install satu paket dapat dua fungsi (POP3 dan IMAP).  Dalam beberapa distribusi Linux misalnya Fedora dan SuSE, paket dovecot ini biasanya sudah terinstall. Anda tinggal mengubah beberapa parameter pada file <code>/etc/dovecot/dovecot.conf</code>, terutama pada : <code> protocols = imap pop3 imap_listen = [::] pop3_listen = [::] #disable_plaintext_auth = yes auth_userdb = passwd auth_passdb = pam </code> Jalankan dovecot dengan perintah <strong>rcdovecot start</strong> di SuSE atau <strong>service dovecot start</strong> di RedHat dan friends. Kemudian kita coba untuk telnet ke port 110 dan mencoba melihat email yang kita kirimkan diatas: </p>
<p><code> asfik@jericho:~&gt; <strong>telnet jericho.palestine.net 110</strong></code></p>
<pre>Trying 192.168.0.250...
Connected to jericho.palestine.net.
Escape character is '^]'.
+OK dovecot ready.
user alqossam
+OK
pass asdf
+OK Logged in.
stat
+OK 1 662
retr 1
+OK 662 octets
Return-Path: &lt;asfik@jericho.palestine.net&gt;
X-Original-To: alqossam@palestine.net
Delivered-To: alqossam@palestine.net
Received: by jericho.palestine.net (Postfix, from userid 1000)
        id 89A31E993A; Thu, 15 Dec 2005 07:52:44 +0700 (WIT)
Date: Thu, 15 Dec 2005 07:52:44 +0700
To: alqossam@palestine.net
Subject: Kegiatan sebelum Idul Adha
Message-ID: &lt;43A0BE5C.mail672111TQR@jericho.palestine.net&gt;
User-Agent: nail 11.4 8/29/04
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
From: asfik@jericho.palestine.net (Asfihani)

Dear Pak Alqossam,
Bisakah kita bertemu malam ini di West Bank?

Asfihani
</pre>
<p>Kemudian Anda bisa mencoba dari MUA di client misalnya Thunderbird, MS Outlook, Eudora dan lain sebagainya. Anda juga bisa menginstall webmail misalnya <a href="http://www.squirrellmail.org">Squirrelmail</a> untuk mengakses email melalui web karena server IMAP juga sudah ada. Menarik bukan?  Selamat mencoba dan Semoga Berhasil.</p>
]]></content:encoded>
			<wfw:commentRss>http://layangan.com/asfik/blog/2005/12/15/postfix-sebagai-mail-hosting/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
			<coop:keyword><![CDATA[ComSci]]></coop:keyword>
		<coop:keyword><![CDATA[Postfix]]></coop:keyword>
		<coop:keyword><![CDATA[tutorial]]></coop:keyword>
	</item>
	</channel>
</rss>

