Jika Anda merasa apa yang saya tulis berikut ini berguna dan ingin membuat saya gembira, Anda bisa mengirimkan satu (atau lebih) CD dari daftar wishlist saya. Tentu saja, usaha Anda akan sangat saya hargai :-).
Untuk ahli matematika dan algoritma : Abu Ja'far Muhammad ibnu Musa Al-Khwarizmi (Baghdad 780 - ? 850) dan komposer musik klasik sejati : Wolfgang Amadeus Mozart (Salzburg 1756 - Vienna 1791)
1. Instal Postfix
Sebelum memulai, silakan anda uninstall software mailserver (MTA) lain yang berada dalam server anda misalnya untuk Redhat biasanya terdapat sendmail dan postfix standar, dan silakan anda membuat sebuah direktori temporari untuk memudahkan penyimpanan source yang akan didownload. Anda boleh membuat direktori dengan nama sembarang, seperti biasa disini saya membuat direktori dengan nama src :
[root@wolfgang asfik]# service sendmail stop
[root@wolfgang asfik]# for a in $(rpm -qa | grep sendmail); do rpm -e --nodeps $a; done
[root@wolfgang asfik]# for a in $(rpm -qa | grep postfix); do rpm -e --nodeps $a; done
[root@wolfgang asfik]# mkdir src
[root@wolfgang asfik]# cd src
Buat username dan group yang akan mengurusi postfix :
[root@wolfgang src]# adduser -M -d /no/home -s /no/shell postfix
[root@wolfgang src]# groupadd postdrop
Download source postfix (yang paling baru), anda bisa mendapatkannya dari mirror terdekat di Indonesia yaitu ISP CBN (untuk mirror yang lain silakan anda berkunjung ke http://www.postfix.org), serta download patch (yang paling baru dan sesuai dengan postfi-nya) untuk digunakan pada virtual delivery agent :
[root@wolfgang src]# wget ftp://ftp.cbn.net.id/mirror/postfix-release/official/postfix-2.0.6.tar.gz
[root@wolfgang src]# wget http://ftp.oav.net/others/postfix/VDA/postfix-2.0.6.patch.gz
Ekstrak :
[root@wolfgang src]# gunzip postfix-2.0.6.patch.gz
[root@wolfgang src]# tar -xzvf postfix-2.0.6.tar.gz
Ganti ke direktori source postfix, patch kemudian install. Pada waktu melaksanakan make install nantinya anda akan ditanya-tanya, tekan enter saja :) :
[root@wolfgang src]# cd postfix-2.0.6
[root@wolfgang postfix-2.0.6]# patch -p1 < ../postfix-2.0.6.patch
[root@wolfgang postfix-2.0.6]# make
[root@wolfgang postfix-2.0.6]# make install
Edit file /etc/postfix/main.cf pada bagian :
myhostname = wolfgang.cs.perbanas.edu
mydestination = $myhostname, localhost.$mydomain
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
Silakan anda ganti myhostname dengan hostname yang FQDN, biasanya adalah host dimana postfix tersebut dijalankan. Pada mydestination silakan anda tambahkan domain yang dianggap sebagai domain lokal bukan domain virtual. Jika anda merencanakan postfix agar bisa digunakan sebagai smtp dari network anda (misalnya network 10.126.10.0/24) maka anda tambahkan pada mynetworks = 10.126.10.0/24 . Dan jika anda ingin menggunakan RBL untuk melawan email spam maka tambahkan :
maps_rbl_domains = relays.ordb.org
smtpd_helo_restrictions = reject_maps_rbl, permit_mynetworks
Untuk menolak pengirim dari domain yang tidak mempunya record A atau MX :
smtpd_sender_restrictions = reject_unknown_sender_domain
Kemudian bikin email alias yang akan mengurusi hal-hal yang berkaitan dengan urusan teknis (ganti email asfik@cs.perbanas.edu sesuai dengan konfigurasi yang anda inginkan) :
[root@wolfgang src]# echo "postfix: root" > /etc/aliases
[root@wolfgang src]# echo "root : asfik@cs.perbanas.edu" >> /etc/aliases
[root@wolfgang src]# echo "mailer-daemon : asfik@cs.perbanas.edu" >> /etc/aliases
[root@wolfgang src]# echo "postmaster : asfik@cs.perbanas.edu" >> /etc/aliases
Bikin database dari file aliases :
[root@wolfgang src]# newaliases
Start daemon postfix :
[root@wolfgang src]# postfix start
Jika anda perhatikan file log (tail -f /var/log/maillog)akan anda dapatkan :
Mar 26 15:21:49 wolfgang postfix/postfix-script: starting the Postfix mail system
Mar 26 15:21:49 wolfgang postfix/master[4043]: daemon started -- version 2.0.6
Untuk menjalankan daemon postfix secara otomatis setiap kali server direstart :
[root@wolfgang src]# echo "/usr/sbin/postfix start" >> /etc/rc.local
Kemudian anda bisa mencoba mengetest mengirimkan suatu email ke domain lokal yang sesuai dengan definisi pada mydestination. Jika suskses, maka akan masuk ke dalam direktori Maildir/ di home direktori user yang anda kirimin email. Langkah selanjutnya adalah mengkonfigurasi user sistem yang akan bertugas mengurusi semua virtual domain di postfix, disini kita misalkan user tersebut adalah virtual :
[root@wolfgang src]# adduser virtual
Cek UID dan GID dari informasi user tersebut karena akan kita gunakan untuk pada konfigurasi postfix :
[root@wolfgang src]# id virtual
uid=521(virtual) gid=522(virtual) groups=522(virtual)
Edit kembali file /etc/postfix/main.cf, tambahkan beberapa baris berikut ini (ganti angka 521/522 dengan UID/GID dari user yang akan kita jadikan sebagai basecamp domain-domain virtual, misalnya user virtual) :
mailbox_transport = virtual
virtual_mailbox_base = /home/virtual
virtual_mailbox_maps = hash:/etc/postfix/virtual
virtual_uid_maps = static:521
virtual_gid_maps = static:522
virtual_create_maildirsize = yes
Pada virtual_mailbox_base tersebut nantinya email semua virtual domain akan disimpan pada direktori tersebut. Oleh karena itu pada waktu adduser user virtual tersebut anda bisa menentukan dimana kira-kira sisa harddisk anda yang paling banyak, tentunya anda bisa menggunakan argument -d pada waktu adduser untuk mengarahkannya. Sebagai contoh misalnya kita akan membuat sebuah virtual domain yang bernama cs.perbanas.edu, maka nantinya semua email pada domain tersebut akan disimpan pada direktori /home/virtual/cs.perbanas.edu .
Langkah selanjutnya adalah edit file /etc/postfix/virtual, pada bagian paling bawah tambahkan :
cs.perbanas.edu Computer Science Department STIMIK Perbanas
Kemudian juga kita bikin sebuah account test misalnya asfik@cs.perbanas.edu, maka anda tambahkan juga pada file yang sama (tanda / pada akhir baris menujukkan penggunaan format Maildir sebagai penyimpanan email) :
asfik@cs.perbanas.edu cs.perbanas.edu/asfik/
Jangan lupa email postmaster@cs.perbanas.edu juga akan diforward ke asfik@cs.perbanas.edu, maka kita tambahkan :
postmaster@cs.perbanas.edu cs.perbanas.edu/asfik/
Bikin database dari file tersebut :
[root@wolfgang src]# postmap /etc/postfix/virtual
Test untuk mengirim ke email tersebut (jangan khawatir, karena postfix akan membuatkan direktori new,cur,tmp secara otomatis), maka jika sukses konfigurasi anda, pada file /var/log/maillog bisa anda dapatkan :
Mar 29 14:14:56 wolfgang postfix/virtual[9689]: E81EABB3A: to=
relay=virtual, delay=0, status=sent (maildir)
Untuk memastikan anda bisa memeriksa file email tersebut pada direktori /home/virtual/cs.perbanas.edu/asfik/new :
[root@wolfgang src]# ls /home/virtual/cs.perbanas.edu/asfik/new/
1049073505.V307I14f59f.wolfgang.cs.perbanas.edu
Jika anda ingin membatasi quota setiap user virtual, edit file /etc/postfix/main.cf, kemudian tambahkan baris berikut ini :
virtual_mailbox_limit_maps = hash:/etc/postfix/vquota
virtual_mailbox_limit_override = yes
Reload daemon postfix :
[root@wolfgang src]# postfix reload
Kemudian buat file /etc/postfix/vquota, misalnya untuk user virtual asfik@cs.perbanas.edu akan kita quota sebesar 1 Mb, maka pada file tersebut tambahkan sebagai berikut :
asfik@cs.perbanas.edu 1024000
Generate database dari file tersebut supaya dibaca oleh postfix :
[root@wolfgang src]# postmap /etc/postfix/vquota
Bila anda melakukan penambahan virtual domain yang lain (lagi), anda tinggal mengedit file /etc/postfix/virtual, misalnya sebagai contoh untuk menambahkan domain alkhwarizmi.net dengan user asfik@alkhwarizmi.net:
alkhwarizmi.net Al-Khwarizmi Foundation
asfik@alkhwarizmi.net alkhwarizmi.net/asfik/
Jika sukses semua email untuk user di domain alkhwarizmi.netnanti akan disimpan pada direktori /home/virtual/alkhwarizmi.net dan seperti biasa, jangan lupa untuk melakukan postmap ke pada file /etc/postfix/main.cf agar database yang baru dibaca oleh postfix.
2. Install tpop3d
Sebagai POP3 servernya kita gunakan tpop3d yang mendukung format Maildir dengan menggunakan metode autentikasi file text biasa (flat-text/flat file), donwload tpop3d (yang paling baru) dan patch untuk auth-flatfile:
[root@wolfgang src]# wget http://www.ex-parrot.com/~chris/tpop3d/tpop3d-1.4.2.tar.gz
[root@wolfgang src]# wget http://www.ex-parrot.com/~chris/tpop3d/tpop3d-1.4.2-auth-flatfile-broken.patch
Ekstrak, kemudian ganti direktori ke source tpop3d :
[root@wolfgang src]# tar -xzvf tpop3d-1.4.2.tar.gz
[root@wolfgang src]# cd tpop3d-1.4.2
Patch, kemudian compile,dan install :
[root@wolfgang tpop3d-1.4.2]# patch -p0 < ../tpop3d-1.4.2-auth-flatfile-broken.patch
[root@wolfgang tpop3d-1.4.2]# ./configure --enable-auth-flatfile --enable-mbox-maildir
[root@wolfgang tpop3d-1.4.2]# make
[root@wolfgang tpop3d-1.4.2]# make install
Buat file /etc/tpop3d.conf isinya :
listen-address: 0.0.0.0
log-facility: local6
mailbox: maildir:/home/virtual/$(domain)/$(local_part)/
auth-flatfile-enable: yes
auth-flatfile-passwd-file: /etc/virtual/$(domain)/passwd
auth-flatfile-mail-user: virtual
auth-flatfile-mail-group: virtual
Jika user yang menghandel domain virtual adalah bukan user virtual, maka silakan anda sesuaikan pada auth-flatfile-mail-user dan auth-flatfile-mail-group . Kemudian karena kita tidak ingin membanjiri file /var/log/maillogdengan pesan dari daemon tpop3d maka kita putuskan untuk menyimpan log tersebut pada file yang lain, misalnya /var/log/tpop3d.log, maka pada file /etc/syslog.conf tambahkan :
local6.* /var/log/tpop3d.log
Bikin file /var/log/tpop3d.log :
[root@wolfgang src]# touch /var/log/tpop3d.log
Restart syslogd anda (killall -HUP syslogd atau service syslog restart), kemudian jalankan daemon tpop3d :
[root@wolfgang src]# /usr/local/sbin/tpop3d
Untuk menjalankan daemon tersebut secara otomatis setiap kali server direstart :
[root@wolfgang src]# echo "/usr/local/sbin/tpop3d" >> /etc/rc.local
Buat direktori untuk menyimpan database password untuk user virtual, nantinya setiap password dari virtual domain akan disimpan dengan format berikut /etc/virtual/DOMAIN/passwd misanyalnya untuk domain cs.perbanas.edu akan disimpan dalam file /etc/virtual/cs.perbanas.edu/passwd:
[root@wolfgang src]# mkdir /etc/virtual
Sebenarnya anda bisa membuat sendiri data password tersebut dengan menggunakan utilitas htpasswd yang bisa anda dapatkan dari paket software apache. Format password yang digunakan adalah sama dengan format password pada file /etc/passwd . Namun, saya juga membuat shell script yang sangat sederhana dan juga menggunakan (membutuhkan binari) dari htpasswd tersebut, anda bisa mendapatkannya di http://people.cakraweb.com/~asfik/vtadduser dan http://people.cakraweb.com/~asfik/vtdeluser (tentu anda harus mencocokkan variabel-variabel yang dibutuhkan jika berbeda dengan contoh disini) :
[root@wolfgang src]# wget http://people.cakraweb.com/~asfik/vtadduser
[root@wolfgang src]# wget http://people.cakraweb.com/~asfik/vtdeluser
[root@wolfgang src]# mv {vtadduser,vtdeluser} /usr/bin
[root@wolfgang src]# chmod 755 /usr/bin/{vtadduser,vtdeluser}
Misalkan untuk membuat password user asfik@cs.perbanas.edu dengan password rahasiadeh :
[root@wolfgang src]# vtadduser asfik@cs.perbanas.edu rahasiadeh
Test dengan telnet ke localhost port 110 (tentunya anda juga bisa mencobanya dengan Eudora atau MUA kesayangan anda yang lain) :
[root@wolfgang src]# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK
user asfik@cs.perbanas.edu
+OK Tell me your password.
pass rahasiadeh
+OK Welcome aboard! You have 2 messages.
list
+OK Scan list follows:
1 794
.
quit
+OK Done
Connection closed by foreign host.
Untuk menghapus user dan password (tidak termasuk data email), anda bisa menggunakan perintah vtdeluser, misalnya :
[root@wolfgang src]# vtdeluser asfik@cs.perbanas.edu
Jika anda menginginkan data email user tersebut dihapus juga, anda bisa menghapus secara manual direktori /home/virtual/cs.perbanas.edu/asfik, jika anda tidak menginginkan akses email dengan menggunakan webmail maka anda sudah selesai mengkonfigurasi postfix dengan virtual domain dan pop3 servernya :)
3. Instal Courier-IMAP
Courier Imap, sesuai dengan namanya adalah sebuah IMAP server yang mendukung format penyimpanan email dengan menggunakan format Maildir. Dalam hal ini kita menggunakan Courier Imap untuk backend dari webmail squirrelmail.
Donwload courier-imap (yang paling baru), ekstrak sourcenya, dan kita kompilasi :
[root@wolfgang src]# wget http://www.courier-mta.org/beta/imap/courier-imap-1.7.1.20030319.tar.bz2
[root@wolfgang src]# tar -jxvf courier-imap-1.7.1.20030319.tar.bz2
[root@wolfgang src]# cd courier-imap-1.7.1.20030319
[root@wolfgang courier-imap-1.7.1.20030319]# ./configure --enable-workarounds-for-imap-client-bugs --disable-root-check
[root@wolfgang courier-imap-1.7.1.20030319]# make
[root@wolfgang courier-imap-1.7.1.20030319]# make install
Kita tidak membutuhkan module autentikasi yang lain (jika ada), jadi module dari courier-imap kita dihapus saja :) :
[root@wolfgang courier-imap-1.7.1.20030319]# rm -rf /usr/lib/courier-imap/libexec/authlib/*
Salin modul authuserdb dari source courier-imap yang telah kita kompilasi diatas ke direktori modul authentikasi untuk imap servernya :
[root@wolfgang courier-imap-1.7.1.20030319]# cp authlib/authuserdb /usr/lib/courier-imap/libexec/authlib/
Salin file konfigurasi standar dari courier-imap :
[root@wolfgang courier-imap-1.7.1.20030319]# cp /usr/lib/courier-imap/etc/imapd.dist /usr/lib/courier-imap/etc/imapd
[root@wolfgang courier-imap-1.7.1.20030319]# cp /usr/lib/courier-imap/etc/imapd-ssl.dist /usr/lib/courier-imap/etc/imapd-ssl
Edit file /usr/lib/courier-imap/etc/imapd , karena courier imap ini hanya digunakan untuk webmail ganti pada baris ADDRESS=0 menjadi ADDRESS=127.0.0.1 . Jika webmail anda adalah webmail yang sibuk, anda bisa menaikkan variabel MAXDAEMONS dan MAXPERIP, yang terpenting adalah ganti pada AUTHMODULES="authdaemon" menjadi AUTHMODULES="authuserdb":
Start daemon courier-imap :
[root@wolfgang courier-imap-1.7.1.20030319]# /usr/lib/courier-imap/libexec/imapd.rc start
Anda bisa memeriksa apakah servise courier-imap anda sudah berjalan semestinya, kita gunakan perintah ps :
[root@wolfgang courier-imap-1.7.1.20030319]# ps ax | grep imap
32461 ? S 0:00 /usr/lib/courier-imap/libexec/courierlogger imapd
32458 ? S 0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=0
Agar setiap reboot daemon courier-imap dijalankan secara otomatis :
[root@wolfgang courier-imap-1.7.1.20030319]# echo "/usr/lib/courier-imap/libexec/imapd.rc start" >> /etc/rc.local
Langkah selanjutnya adalah membuat user dan password IMAP yang akan digunakan sebagai autentikasi pada webmail squirrelmail dengan menggunakan skema autentikasi userdb . Buat direktori /etc/userdb, kemudian ubah modenya menjadi 700 :
[root@wolfgang src]# mkdir /etc/userdb
[root@wolfgang src]# chmod 700 /etc/userdb
Anda bisa menggunakan script sederhana yang saya buat untuk menambah atau menghapus user virtual di IMAP atau anda bisa juga melakukannya secara manual, anda bisa memilih sesuai mood anda :)
Jika menggunakan script, anda bisa mendownload script tersebut di http://people.cakraweb.com/~asfik/vtadduserimap dan http://people.cakraweb.com/~asfik/vtdeluserimap (tentu anda harus mencocokkan variabel-variabel yang dibutuhkan jika berbeda dengan contoh disini) :
[root@wolfgang src]# wget http://people.cakraweb.com/~asfik/vtadduserimap
[root@wolfgang src]# wget http://people.cakraweb.com/~asfik/vtdeluserimap
[root@wolfgang src]# mv {vtadduserimap,vtdeluserimap} /usr/bin
[root@wolfgang src]# chmod 755 /usr/bin/{vtadduserimap,vtdeluserimap}
Untuk menambah user virtual di IMAP misalnya asfik@cs.perbanas.edu lakukan :
[root@wolfgang src]# vtadduserimap asfik@cs.perbanas.edu
Untuk menghapusnya :
[root@wolfgang src]# vtdeluserimap asfik@cs.perbanas.edu
Jika secara manual, yang pertama-tama anda lakukan adalah memasukkan PATH dari /usr/lib/courier-imap/sbin kedalam environment PATH anda :
[root@wolfgang src]# PATH=$PATH:/usr/lib/courier-imap/sbin
[root@wolfgang src]# export PATH
Buat entry misalnya untuk username asfik@cs.perbanas.edu (sesuaikan 521 /522 dengan UID/GID user virtual) :
[root@wolfgang root]# userdb -f /etc/userdb/cs.perbanas.edu asfik@cs.perbanas.edu set home=/home/virtual/cs.perbanas.edu/asfik mail=/home/virtual/cs.perbanas.edu/asfik uid=521 gid=522
Kemudian set password IMAP nya :
[root@wolfgang root]# userdbpw -md5 | userdb -f /etc/userdb/cs.perbanas.edu asfik@cs.perbanas.edu set imappw
Langkah terakhir, buat databasenya :
[root@wolfgang root]# makeuserdb
Selanjutnya untuk mengetest IMAP, kita install squirrelmail :)
4. Instal Squirrelmail
Menurut file INSTALL dari distribusi Squirrelmail, software ini membutuhkan php versi 4 yang minimal dikompilasi dengan opsi --enable-track-vars --enable-force-cgi-redirect --with-gettext serta membutuhkan register_global=On dan file_uploads = On di php.ini (jika php anda menggunakan default RPM Redhat file php.ini terletak didirektori /etc).
Download dan ekstrak paket squirrelmail (yang paling baru) :
[root@wolfgang src]# wget http://umn.dl.sf.net/sourceforge/squirrelmail/squirrelmail-1.2.11.tar.gz
[root@wolfgang src]# tar -xzvf squirrelmail-1.2.11.tar.gz
Diasumsikan diserver anda telah terinstall apache, maka tentukan letak direktori squirrelmail pada direktif DocumentRoot di httpd.confanda, misalnya disini saya letakkan didirektori /usr/local/httpd/htdocs/mail karena document root dari apachenya adalah /usr/local/httpd/htdocs:
[root@wolfgang src]# mv squirrelmail-1.2.11 /usr/local/httpd/htdocs/mail
Tentukan user dan group yang menjalankan proses apache :
[root@wolfgang src]# egrep '^(User|Group)' /usr/local/httpd/conf/httpd.conf
User www
Group www
Dari perintah diatas kita peroleh user www dan group www, kemudian ganti kepemilikan direktori /usr/local/httpd/htdocs/mail/data menjadi user www dan group www :
[root@wolfgang src]# chown -R www.www /usr/local/httpd/htdocs/mail/data/
Salin file konfigurasi standar ke file konfigurasi squirrelmail :
[root@wolfgang src]# cp /usr/local/httpd/htdocs/mail/config/config_default.php /usr/local/httpd/htdocs/mail/config/config.php
Edit file tersebut dari $imap_server_type = 'cyrus'; menjadi$imap_server_type = 'courier'; :
[root@wolfgang src]# vi /usr/local/httpd/htdocs/mail/config/config.php
Atau jika anda mengalami kesulitan anda bisa menggunakan script perl yang disertakan oleh squirrelmail, pada direktori config :
[root@wolfgang src]# cd /usr/local/httpd/htdocs/mail/config
[root@wolfgang config]# ./conf.pl
Kemudian silakan dicoba dengan browser anda, masukkan user yang telah anda buat misalnya asfik@cs.perbanas.edu
Enjoy :)
5. Lain-lain (Opsional)
5.1 SASL
Jika anda berencana menggunakan autentikasi ketika menggunakan smtp di postfix anda bisa menggunakan cyrus-sasl . SASL (Simple Authentication and Security Layer) adalah suatu metode untuk penambahan dukungan autentikasi terhadap suatu protokol, atau gampangnya jika hal ini berkaitan dengan postfix maka SASL bisa diartikan sebagai proses autentikasi suatu user terhadap smtp di postfix dengan password yang ter-enkrispi. Jadi setiap kali user tersebut mengirim email, maka akan selalu diminta memasukkan password terlebih dahulu.
Untuk menggunakan fitur ini anda harus mengkompilasi (ulang) postfix anda agar support sasl, pertama-tama jika ada cyrus-saslbawaan dari distro kita hapus dulu :
[root@wolfgang src]# for a in $(rpm -qa | grep sasl); do rpm -e --nodeps $a; done
Download cyrus-sasl (yang paling baru), ekstrak kemudian kompile, dan install :
[root@wolfgang src]# wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-1.5.28.tar.gz
[root@wolfgang src]# tar -xzvf cyrus-sasl-1.5.28.tar.gz
[root@wolfgang src]# cd cyrus-sasl-1.5.28
[root@wolfgang cyrus-sasl-1.5.28]# ./configure --enable-krb4=no
[root@wolfgang cyrus-sasl-1.5.28]# make
[root@wolfgang cyrus-sasl-1.5.28]# make install
Buat symlink direktori /usr/local/lib/ssl ke direktori /usr/lib/sasl:
[root@wolfgang cyrus-sasl-1.5.28]# ln -s /usr/local/lib/sasl /usr/lib/sasl
Buat file /usr/local/lib/sasl/smtpd.conf isinya :
pwcheck_method: sasldb
Jika perlu pada file /etc/ld.so.conf anda tambahkan /usr/local/lib kemudian lakukan ldconfig :
[root@wolfgang cyrus-sasl-1.5.28]# ldconfig
Stop daemon postfix anda (postfix stop), untuk kemudian dikompilasi ulang supaya postfixnya mendukung SASL
[root@wolfgang src]# tar -xzvf postfix-2.0.6.tar.gz
[root@wolfgang src]# cd postfix-2.0.6
[root@wolfgang postfix-2.0.6]# patch -p1 < ../postfix-2.0.6.patch
[root@wolfgang postfix-2.0.6]# make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/local/include" AUXLIBS="-L/usr/local/lib -lsasl"
[root@wolfgang postfix-2.0.6]# make
[root@wolfgang postfix-2.0.6]# make install
Edit file /etc/postfix/main.cf anda, tambahkan baris berikut ini :
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_relay_domains
smtpd_sasl_security_options = noanonymous, noplaintext
Start daemon postfix :
[root@wolfgang postfix-2.0.6]# postfix start
Test apakah postfix anda sudah mendukung autentikasi (AUTH) :
[root@wolfgang postfix-2.0.6]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 wolfgang.cs.perbanas.edu ESMTP Postfix
EHLO wolfgang.cs.perbanas.edu
250-wolfgang.cs.perbanas.edu
250-PIPELINING
250-SIZE 10240000
250-VRFY 250-ETRN
250-AUTH ANONYMOUS DIGEST-MD5 CRAM-MD5
250-XVERP
250 8BITMIME
quit
221 Bye Connection closed by foreign host.
Kemudian kita buat satu buah username untuk percobaan, misalnya :
[root@wolfgang src]# saslpasswd -a smtpd -c asfik@cs.perbanas.edu
Jika anda menemui saslpasswd: generic failure pada waktu pertama kali bikin database ini adalah wajar, karena file /etc/sasldb tidak ada, untuk mengatasinya lakukan sekali lagi :
[root@wolfgang src]# saslpasswd -a smtpd -c asfik@cs.perbanas.edu
Periksa dengan perintah sasldblistusers untuk memeriksa apakah sudah ok :
[root@wolfgang src]# sasldblistusers
user: asfik@cs.perbanas.edu realm: wolfgang.cs.perbanas.edu mech: DIGEST-MD5
user: asfik@cs.perbanas.edu realm: wolfgang.cs.perbanas.edu mech: CRAM-MD5
user: asfik@cs.perbanas.edu realm: wolfgang.cs.perbanas.edu mech: PLAIN
Ganti kepemilikan file /etc/sasldb dengan groupnya user postfix :
[root@wolfgang src]# chgrp postfix /etc/sasldb
Kemudian, testing dengan mengirim email dengan MUA kesayangan anda, disini saya menggunakan KMail 1.4.1. Dari menu Setting -> Configure KMail -> Network -> Sending, kemudian anda bisa memodifikasi atau menambah baru, misalnya klik Add -> SMTP. Kemudian pada tab General -> Name, Host, dan Port isikan sesuai dengan konfigurasi anda. Kemudian beri tanda cek pada "Server requires authentication". Isikan Login dan Password yang sesuai (misalnya asfik@cs.perbanas.edu dan password yang sesuai dengan yang dimasukkan), jika ingin menyimpannya berikan tanda cek pada "Store SMTP password in configuration file". Kemudian yang terakhir dan paling penting pada tab Security , pilih None pada Encryption dan pilih DIGEST-MD5 pada Authentication Method, jika suskses, pada file /var/log/maillog anda akan terpadapat seperti ini :
Apr 8 11:21:34 wolfgang postfix/smtpd[10037]: 5DBEABB3A:
client=alkhwarizmi.cs.perbanas.edu[10.126.10.13],sasl_method=DIGEST-MD5,
sasl_username=asfik@cs.perbanas.edu
Untuk konfigurasi dengan menggunakan MUA mutt, Ximian Evolutions, ataupun Netscape anda bisa melihat tulisan saya tentang "Menggunakan SMTP Auth (qmail-smtpd-auth) di vpopmail dan vmailmgr" di http://people.cakraweb.com/~asfik/writings/qmail-smtpd-auth.html, untuk MUA yang lain silakan baca dokumentasi dari MUA anda tersebut, semoga berhasil.
6. ChangeLog
10 April 2003
Penambahan SASL
04 April 2003
Minor update, penambahan courier dan squirrelmail
25 Maret 2003
Penulisan tutorial ini dimulai - minus courier-imap dan squirrelmail
7. Referensi
http://www.postfix.org/
http://www.oav.net/~kiwi/postfix/
http://www.ex-parrot.com/~chris/tpop3d/
http://www.courier-mta.org/
http://asg.web.cmu.edu/sasl/
http://www.mandrakesecure.net/en/docs/postfix-sasl.php
File INSTALL, README dan direktori docs pada setiap distribusi paket
No comments:
Post a Comment