"Untuk ibu saya tercinta, guru pertama saya "
Sebelum memulai, silakan anda uninstall software mailserver (MTA) lain yang berada dalam server anda misalnya sendmail, dan silakan anda membuat sebuah direktori temporari untuk memudahkan penyimpanan source yang akan didownload, anda boleh membuat direktori dengan nama sembarang, disini saya membuat direktori dengan nama src :
[[email protected] asfik]# service sendmail stop [[email protected] asfik]# for a in `rpm -qa | grep sendmail`; do rpm -e --nodeps $a; done [[email protected] asfik]# mkdir src [[email protected] asfik]# cd src
Download qmail dan paket pendukung yang lain (daemontools, ucspi-tcp) :
[[email protected] src]# wget http://cr.yp.to/software/qmail-1.03.tar.gz [[email protected] src]# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz [[email protected] src]# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
Perhatian : Jika anda menggunakan glibc versi 2.3 keatas (misalnya Redhat 9), silakan download patch untuk qmail dari miror lokal kesayangan anda misalnya dari ISP CBN :
[[email protected] src]# wget http://qmail.cbn.net.id/moni.csi.hu/pub/glibc-2.3.1/qmail-1.03.errno.patch [[email protected] src]# wget http://qmail.cbn.net.id/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch [[email protected] src]# wget http://qmail.cbn.net.id/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
Download qmailqueue-patch, yang berguna sebagai add-on qmail agar bisa menjalankan external program, misalnya jika dikemudian hari anda menginginkan software anti-virus, serta quotas-patch, yang berguna untuk membounce email jika suatu user sistem (user email) sudah melebihi quota sistem :
[[email protected] src]# wget http://www.qmail.org/qmailqueue-patch [[email protected] src]# wget http://www.qmail.org/qmail-1.03-quotas-1.1.patch
Ekstrak semua source tersebut :
[[email protected] src]# tar -xzvf qmail-1.03.tar.gz [[email protected] src]# tar -xzvf daemontools-0.76.tar.gz [[email protected] src]# tar -xzvf ucspi-tcp-0.88.tar.gz
Buat direktori untuk qmail dan pembuatan account user yang akan menjalankan dan mengurusi qmail :
[[email protected] src]# mkdir /var/qmail [[email protected] src]# groupadd nofiles [[email protected] src]# useradd -g nofiles -d /var/qmail/alias alias [[email protected] src]# useradd -g nofiles -d /var/qmail qmaild [[email protected] src]# useradd -g nofiles -d /var/qmail qmaill [[email protected] src]# useradd -g nofiles -d /var/qmail qmailp [[email protected] src]# groupadd qmail [[email protected] src]# useradd -g qmail -d /var/qmail qmailq [[email protected] src]# useradd -g qmail -d /var/qmail qmailr [[email protected] src]# useradd -g qmail -d /var/qmail qmails
Kompilasi qmail, daemontools, tcpserver dan mengepatch qmail dengan beberapa patch tersebut diatas :
[[email protected] src]# cd qmail-1.03
Perhatian : Jika anda menggunakan glibc versi 2.3 keatas (misalnya Redhat 9), patch qmail anda :
[[email protected] qmail-1.03]# patch -p1 < ../qmail-1.03.errno.patch
Jika diperlukan patch dengan queue patch dan quota patch :
[[email protected] qmail-1.03]# patch -p1 < ../qmailqueue-patch [[email protected] qmail-1.03]# patch -p1 < ../qmail-1.03-quotas-1.1.patch
Kompile dan install qmail :
[[email protected] qmail-1.03]# make setup check
Membuat file konfigurasi qmail, disini silakan anda ganti gibas.wedus.comdengan hostname anda yang FQDN (bisa diresolve), misalnya serverku.domain.com.Ingat, hostname tidak harus sama dengan nama server host tempat anda menginstall qmail tersebut :
[[email protected] qmail-1.03]# ./config-fast gibas.wedus.com
Pada langkah yang penting ini kita akan menentukan nama domain yang akan diurusi/dihandle oleh qmail diserver ini, misalnya wedus.com. Masukkan nama domain tersebut ke file rcpthosts dan locals sehingga nantinya akan dianggap sebagai domain lokal dan bukan virtual oleh qmail, misalnya :
[[email protected] qmail-1.03]# echo wedus.com >> /var/qmail/control/locals [[email protected] qmail-1.03]# echo wedus.com >> /var/qmail/control/rcpthosts
Install ucspi-tcp dan daemontools :
[[email protected] qmail-1.03]# cd ../ucspi-tcp-0.88
Perhatian : Jika anda menggunakan glibc versi 2.3 keatas (misalnya Redhat 9), patch ucspi-tcp anda :
[[email protected] ucspi-tcp-0.88]# patch -p1 < ../ucspi-tcp-0.88.errno.patch
Kompile dan install ucspi-tcp :
[[email protected] ucspi-tcp-0.88]# make setup check [[email protected] ucspi-tcp-0.88]# cd ../admin/daemontools-0.76/
Perhatian : Jika anda menggunakan glibc versi 2.3 keatas (misalnya Redhat 9), patch daemontools anda :
[[email protected] daemontools-0.76]# patch -p1 < ../../daemontools-0.76.errno.patch
Kompil dan install daemontools :
[[email protected] daemontools-0.76]# ./package/install
Jika daemontools sukses terinstal, anda bisa mengecek dengan menggunakan perintah ps, misalnya :
[[email protected] daemontools-0.76]# ps ax | grep read 6529 ? S 0:00 readproctitle service errors: .......................
Saya kurang suka dengan struktur penempatan atau symlink file dan direktori pada daemontools dan (menurut saya lho) cenderung amburadul, jadi direktori /command saya hapus kemudian diganti dengan direktori command dari source daemontools :
[[email protected] daemontools-0.76]# rm -rf /command/ [[email protected] daemontools-0.76]# mv command/ /
Buat file startup untuk menjalankan qmail-send, dan mengganti defaultdelivery dari format Mailbox ke format Maildir :
[[email protected] asfik]# cp /var/qmail/boot/home /var/qmail/rc [[email protected] asfik]# perl -pi -e "s/Mailbox splogger qmail/Maildir\//g" /var/qmail/rc
Jika perintah perl tersebut diatas ada kesalahan atau Linux ada tidak terinstall program perl (sulit dipercaya?), silakan secara manual anda mengganti pada file /var/qmail/rc dari baris ini :
qmail-start ./Mailbox splogger qmail
menjadi :
qmail-start ./Maildir/
Buat direktori untuk menyimpan file-file supervise :
[[email protected] asfik]# mkdir -p /var/qmail/supervise/qmail-send/log [[email protected] asfik]# mkdir -p /var/qmail/supervise/qmail-smtpd/log
Buat file script supervise untuk menjalankan qmail-send :
[[email protected] asfik]# vi /var/qmail/supervise/qmail-send/run
Isinya :
#!/bin/sh exec /var/qmail/rc
Buat file script supervise untuk menjalankan log qmail-send :
[[email protected] asfik]# vi /var/qmail/supervise/qmail-send/log/run
Isinnya :
#!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s1048576 /var/log/qmail
Buat file script supervise untuk menjalankan qmail-smtpd :
[[email protected] asfik]# vi /var/qmail/supervise/qmail-smtpd/run
Isinya :
#!/bin/sh PATH=$PATH:/usr/local/bin:/var/qmail/bin export PATH QMAILDUID=`id -u qmaild` NOFILESGID=`id -g qmaild` MAXSMTPD=30 exec /usr/local/bin/softlimit -m 5000000 \ tcpserver -H -R -v -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" -u "$QMAILDUID" -g "$NOFILESGID" \ 0 25 qmail-smtpd 2>&1
Variabel MAXSMTPD bisa anda sesuaikan dengan kondisi kebutuhan dan beban mailserver anda. Jika anda menginginkan penolakan terhadap email yang datang dari mailserver yang open relay yang biasanya merupakan SPAM, anda bisa menggunakan rblsmtpd menjadi :
tcpserver -H -R -v -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" -u "$QMAILDUID" -g "$NOFILESGID" \ 0 25 rblsmtpd -r relays.ordb.org rblsmtpd -b qmail-smtpd 2>&1
Jika anda menggunakan rblsmtpd, anda nanti bisa melihat lognya di /var/log/qmail/smtpd/current :
[[email protected] asfik]# tail -f /var/log/qmail/smtpd/current @400000003dbca93728ec47bc tcpserver: pid 11461 from 128.154.20.228 @400000003dbca93804e39064 rblsmtpd: 128.154.20.228 pid 11461: 451 This mail was \ handled by an open relay - please visit <http://ORDB.org/lookup/?host=128.154.20.228>
Buat file script supervise untuk menjalankan log qmail-smtpd :
[[email protected] asfik]# vi /var/qmail/supervise/qmail-smtpd/log/run
Isinya :
#!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s1048576 /var/log/qmail/smtpd
Ubah menjadi file-file yang bisa dieksekusi :
[[email protected] asfik]# chmod 755 /var/qmail/supervise/qmail-send/run [[email protected] asfik]# chmod 755 /var/qmail/supervise/qmail-send/log/run [[email protected] asfik]# chmod 755 /var/qmail/supervise/qmail-smtpd/run [[email protected] asfik]# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
Buat direktori untuk log qmail-send dan qmail-smtpd :
[[email protected] asfik]# mkdir -p /var/log/qmail/smtpd [[email protected] asfik]# chown qmaill /var/log/qmail /var/log/qmail/smtpd
Mengijinkan localhost untuk menggunakan smtp :
[[email protected] src]# echo '127.0.0.1:allow,RELAYCLIENT=""' > /etc/tcp.smtp
Mengatur IP/Network mana saja yang bisa menggunakan smtp server anda, jika misalnya anda menginginkan komputer di jaringan intranet anda dengan IP 10.126.10.11 bisa menggunakan smtp anda, maka :
[[email protected] src]# echo '10.126.10.11:allow,RELAYCLIENT=""' >> /etc/tcp.smtp
Atau jika anda mengijinkan seluruh network anda, misalnya 10.126.10.0/24 maka :
[[email protected] src]# echo '10.126.10.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp
Jangan lupa, setiap selesai penambahan untuk selalu membuat database baru dengan :
[[email protected] src]# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
Akhirnya kita masukkan script yang kita buat kedalam servis supervise :
[[email protected] asfik]# ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
Untuk mengecek apakah supervise sudah menjalankan tugasnya dengan benar bisa digunakan perintah ps, misalnya :
[[email protected] asfik]# ps ax | grep qmail 6636 ? S 0:00 supervise qmail-send 6638 ? S 0:00 supervise qmail-smtpd 6640 ? S 0:00 qmail-send 6641 ? S 0:00 /usr/local/bin/multilog t s1048576 /var/log/qmail 6643 ? S 0:00 /usr/local/bin/multilog t s1048576 /var/log/qmail/smt 6644 ? S 0:00 qmail-lspawn ./Maildir/ 6646 ? S 0:00 qmail-rspawn 6647 ? S 0:00 qmail-clean
Untuk sekedar memastikan, anda juga bisa telnet ke localhost port 25 :
[[email protected] src]# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 gibas.wedus.com ESMTP
Jika sampai langkah ini, anda belum sukses atau menemui error, coba periksa sekali lagi apakah penulisan script anda sudah betul dan tidak kurang, atau apakah ada langkah/perintah yang anda lewatkan. Anda juga bisa melihat kemungkinan pesan kesalahan/error pada file log /var/log/qmail/current atau /var/log/qmail/smtpd/current atau bisa juga pada proses readproctile, misalnya, dalam kondisi normal:
[[email protected] src]# ps ax | grep read 673 ? S 0:00 readproctitle service errors: .......................
Jika ada sesuatu error/kesalahan pada servise supervise, misalnya jika sebuah command `id` tidak diketemukan karena kesalahan environment $PATH:
[[email protected] src]# ps ax | grep read 673 ? S 0:00 readproctitle service errors: .......?\id...?\command..\?not...found
PENTING. Untuk menerima email bounce ke postmaster silakan anda buat minimal tiga buah email sebagai berikut :
[[email protected] src]# cd ~alias/ [[email protected] alias]# echo [email protected] > .qmail-root [[email protected] alias]# echo [email protected] > .qmail-postmaster [[email protected] alias]# echo [email protected] > .qmail-mailer-daemon
Ganti [email protected] dengan email yang bertanggung jawab terhadap server email tersebut (anda?)
Donwload paket checkpassword, yang akan digunakan sebagai module authentikasi menggunakan protokol pop3 :
[[email protected] src]# wget http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz [[email protected] src]# tar -xzvf checkpassword-0.90.tar.gz
Perhatian : Jika anda menggunakan glibc versi 2.3 keatas (misalnya Redhat 9), silakan download patch checkpassword :
[[email protected] src]# wget http://qmail.cbn.net.id/moni.csi.hu/pub/glibc-2.3.1/checkpassword-0.90.errno.patch
Pindah ke direktori source checkpassword :
[[email protected] src]# cd checkpassword-0.90
Perhatian : Jika anda menggunakan glibc versi 2.3 keatas (misalnya Redhat 9), silakan patch checkpassword anda :
[[email protected] checkpassword-0.90]# patch -p1 < ../checkpassword-0.90.errno.patch
Kompile dan install checkpassword :
[[email protected] checkpassword-0.90]# make setup check
Buat direktori dan file script supervise untuk menjalankan qmail-pop3d (pop server) :
[[email protected] asfik]# mkdir -p /var/qmail/supervise/qmail-pop3d [[email protected] asfik]# vi /var/qmail/supervise/qmail-pop3d/run
Isinya :
#!/bin/sh PATH=$PATH:/usr/local/bin:/var/qmail/bin export PATH MAXPOP3D=30 exec /usr/local/bin/softlimit -m 5000000 \ tcpserver -H -v -c "$MAXPOP3D" 0 110 qmail-popup gibas.wedus.com checkpassword qmail-pop3d Maildir/ 2>&1
Silakan anda sesuaikan variabel MAXPOP3D dan hostname gibas.wedus.comdengan konfigurasi yang sesuai dengan kondisi mail server anda.
Buat file script supervise untuk menjalankan log qmail-pop3d :
[[email protected] asfik]# mkdir -p /var/qmail/supervise/qmail-pop3d/log [[email protected] asfik]# vi /var/qmail/supervise/qmail-pop3d/log/run
Isinya :
#!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t s1048576 /var/log/qmail/pop3d
Buat direktori log qmail-pop3d serta mengeset file script tersebut menjadi executable :
[[email protected] asfik]# mkdir /var/log/qmail/pop3d [[email protected] asfik]# chown qmaill /var/log/qmail/pop3d [[email protected] asfik]# chmod 755 /var/qmail/supervise/qmail-pop3d/run [[email protected] asfik]# chmod 755 /var/qmail/supervise/qmail-pop3d/log/run
Akhirnya kita masukkan script supervise qmail-pop3d kedalam /service :
[[email protected] asfik]# ln -s /var/qmail/supervise/qmail-pop3d /service
Untuk memeriksa apakah servise pop3 server sudah bekerja :
[[email protected] asfik]# ps ax | grep tcpserver 1057 ? S 0:00 tcpserver -H -R -v -x /etc/tcp.smtp.cdb -c 30 -u 503 1061 ? S 0:00 tcpserver -H -v -c 30 0 110 qmail-popup gibas.wedus.com
Untuk sekedar memastikan, anda bisa mencoba telnet ke localhost port 110 :
[[email protected] asfik]# telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK <[email protected]>
Download script untuk menjalankan qmail, anda bisa download di http://www.lifewithqmail.org/qmailctl-script-dt70 namun anda harus menambahkan untuk start/stop daemon pop3d nya, atau alternatif lain script yang sudah ditambah start/stop daemon pop3d di http://people.cakraweb.com/~asfik/qmailctl :
[[email protected] src]# wget http://people.cakraweb.com/~asfik/qmailctl [[email protected] src]# mv qmailctl /var/qmail/bin/qmailctl [[email protected] src]# chmod 755 /var/qmail/bin/qmailctl [[email protected] src]# ln -s /var/qmail/bin/qmailctl /usr/bin
Jika anda tidak memakai Redhat based style, anda bisa langsung ke Start-Stop qmail :
[[email protected] src]# ln -s /var/qmail/bin/qmailctl /etc/rc.d/init.d/qmail [[email protected] src]# ln -s /etc/rc.d/init.d/qmail/qmail /etc/rc.d/rc0.d/K30qmail [[email protected] src]# ln -s /etc/rc.d/init.d/qmail/qmail /etc/rc.d/rc1.d/K30qmail [[email protected] src]# ln -s /etc/rc.d/init.d/qmail/qmail /etc/rc.d/rc2.d/S80qmail [[email protected] src]# ln -s /etc/rc.d/init.d/qmail/qmail /etc/rc.d/rc3.d/S80qmail [[email protected] src]# ln -s /etc/rc.d/init.d/qmail/qmail /etc/rc.d/rc4.d/S80qmail [[email protected] src]# ln -s /etc/rc.d/init.d/qmail/qmail /etc/rc.d/rc5.d/S80qmail [[email protected] src]# ln -s /etc/rc.d/init.d/qmail/qmail /etc/rc.d/rc6.d/K30qmail
Untuk Start-Stop qmail anda bisa lakukan perintah berikut :
[[email protected] src]# qmailctl stop Stopping qmail... qmail-smtpd qmail-send qmail-pop3d [[email protected] src]# qmailctl start Starting qmail
Atau dengan gaya klasik koboi Redhat :
[[email protected] src]# service qmail stop Stopping qmail... qmail-smtpd qmail-send qmail-pop3d [[email protected] src]# service qmail start Starting qmail
Kadang kita butuh akses ke wrapper sendmail (misalnya script cgi) atau mua yang menggunakan wrapper sendmail (mutt, pine dll), jadi kita lakukan symlink ke binari qmail untuk wrapper sendmail :
[[email protected] src]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail [[email protected] src]# ln -s /var/qmail/bin/sendmail /usr/bin/sendmail
Pada intinya karena hanya mengurusi satu domain, maka setiap anda menambah satu buah account email, maka yang anda lakukan adalah sama dengan menambah satu buah account pada system Linux anda. Dan ini (amat) sangat berisiko, titik terlemah berada pada password user anda. Anda bisa mengatasinya dengan menggunakan alternatif program cek password yang yang lain yang tentunya tidak akan membaca password di /etc/passwd, atau menggunakan virtualdomain, tapi hanya anda set untuk mengurusi atau menerima email ke satu domain saja. Anyway, mari kita coba menambahkan email pada domain yang telah kita buat, misalnya account email [email protected] Karena user paijo ini kita set hanya untuk menerima email, kita tidak akan memberi akses ssh/telnet/ftp/whatever kepada paijo untuk mengurangi resiko :
[[email protected] asfik]# adduser -s /bin/false paijo [[email protected] asfik]# passwd paijo Changing password for user paijo. New password: Retype new password: passwd: all authentication tokens updated successfully.
Buat direktori untuk menyimpan email untuk user paijo :
[[email protected] asfik]# /var/qmail/bin/maildirmake ~paijo/Maildir [[email protected] asfik]# chown -R paijo.paijo ~paijo/Maildir
Beritahu kepada qmail untuk mengantarkan email ke direktori Maildir dihomedirektori user paijo :
[[email protected] asfik]# echo "./Maildir/" > ~paijo/.qmail [[email protected] asfik]# chown paijo.paijo ~paijo/.qmail
Supaya anda tidak repot-repot lagi membuat file .qmail dan direktori Maildir setiap penambahan user baru :
[[email protected] asfik]# echo "./Maildir/" > /etc/skel/.qmail [[email protected] asfik]# maildirmake /etc/skel/Maildir
Sehingga setiap nanti anda menambah user baru (adduser), otomatis file dan direktori tersebut diatas akan terbuat, sekarang kita mencoba mengirim email ke user [email protected] , anda boleh saja mencoba mengirim dengan menggunakan MUA seperti Eudora, pine, mutt atau yang lain, kita coba memakai old-fashioned-way, telnet port 25 di localhost :
[[email protected] asfik]# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 gibas.wedus.com ESMTP mail from : Asfihani <[email protected]> 250 ok rcpt to: [email protected] 250 ok data 354 go ahead Subject: Ini mengetest saja lho :) ini budi . 250 ok 1036218269 qp 917 quit 221 gibas.wedus.com Connection closed by foreign host.
Jika anda lihat pada file /var/log/qmail/current akan ada log yang menujukkan email telah diterima dengan selamat :
[[email protected] asfik]# tail -f /var/log/qmail/current @400000003dc36fa70e90532c new msg 224669 @400000003dc36fa70e906e84 info msg 224669: bytes 202 from <[email protected]> qp 917 uid 503 @400000003dc36fa70ebda8a4 starting delivery 1: msg 224669 to local [email protected] @400000003dc36fa70ebf526c status: local 1/10 remote 0/20 @400000003dc36fa70fa3ce9c delivery 1: success: did_1+0+0/ @400000003dc36fa70fa3e9f4 status: local 0/10 remote 0/20 @400000003dc36fa70fa614a4 end msg 224669
Jika anda mengubah hasil format log dari unix timestamps ke format yang lebih mudah dibaca oleh manusia, anda bisa piping dengan menggunakan tai64nlocal :
[[email protected] asfik]# tail -f /var/log/qmail/current | tai64nlocal 2002-11-02 13:24:29.244346500 info msg 224669: bytes 202 from <[email protected]> qp 917 uid 503 2002-11-02 13:24:29.247310500 starting delivery 1: msg 224669 to local [email protected] 2002-11-02 13:24:29.247419500 status: local 1/10 remote 0/20 2002-11-02 13:24:29.262393500 delivery 1: success: did_1+0+0/ 2002-11-02 13:24:29.262400500 status: local 0/10 remote 0/20 2002-11-02 13:24:29.262542500 end msg 224669
Untuk membuktikan email sudah sampai dengan selamat di mailbox paijo :
[[email protected] asfik]# ls ~paijo/Maildir/new/ 1036218269.921.gibas.wedus.com [[email protected] asfik]# cat ~paijo/Maildir/new/1036218269.921.gibas.wedus.com Return-Path: <[email protected]> Delivered-To: [email protected] Received: (qmail 917 invoked from network); 2 Nov 2002 06:24:08 -0000 Received: from unknown (127.0.0.1) by localhost with SMTP; 2 Nov 2002 06:24:08 -0000 Subject: Ini mengetest saja lho :) ini budi
Lalu kita periksa apakah email tersebut sudah masuk ke dalam mailbox [email protected], anda bisa menggunakan POP3 client, misalnya Eudora, sebagai accoutname atau username untuk authentikasi ke server silakan gunakan user paijo, atau anda juga bisa melalui old-fashioned-way, telnet port 110 di localhost :
[[email protected] asfik]# telnet localhost 110 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. +OK <[email protected]> user paijo +OK pass 123 +OK list +OK 1 273 . retr 1 +OK Return-Path: <[email protected]> Delivered-To: [email protected] Received: (qmail 917 invoked from network); 2 Nov 2002 06:24:08 -0000 Received: from unknown (127.0.0.1) by localhost with SMTP; 2 Nov 2002 06:24:08 -0000 Subject: Ini mengetest saja lho :) ini budi . quit +OK Connection closed by foreign host.
Disitu kita lihat email sudah masuk dengan sukses. Untuk melakukan penambahan account email yang lain silakan mengulangi langkah-langkah diatas. Jika anda tidak mempunyai rencana untuk memberikan akses webmail kepada user anda, anda telah selesai menginstall qmail. Untuk melaporkan sukses dalam installasi anda :
[[email protected] asfik]#(echo 'Nama Anda tulis disini'; uname -a) | mail [email protected]
Courier Imap, sesuai dengan namanya adalah sebuah IMAP server, yaitu sebuah IMAP server yang mendukung format penyimpanan email dengan menggunakan format Maildir. Dalam hal ini tujuan kita menggunakan Courier Imap adalah untuk backend dari webmail squirrelmail. Donwload courier-imap, ekstrak sourcenya, dan kita kompilasi :
[[email protected] src]# wget http://unc.dl.sourceforge.net/sourceforge/courier/courier-imap-1.5.3.tar.gz [[email protected] src]# tar -xzvf courier-imap-1.5.3.tar.gz [[email protected] src]# cd courier-imap-1.5.3 [[email protected] courier-imap-1.5.3]# ./configure --disable-root-check \ --without-authdaemon --with-authpam --enable-workarounds-for-imap-client-bugs [[email protected] courier-imap-1.5.3]# make [[email protected] courier-imap-1.5.3]# make install
Kita tidak membutuhkan module authentikasi yang lain, selain authpam, jadi ya dihapus saja :)
[[email protected] courier-imap-1.5.3]# rm -rf /usr/lib/courier-imap/libexec/authlib/*
Salin modu authpam yang telah kita kompilasi diatas ke direktori modul authentikasi untuk imap servernya :
[[email protected] courier-imap-1.5.3]# cp authlib/authpam /usr/lib/courier-imap/libexec/authlib/
Salin file konfigurasi standar dari courier-imap :
[[email protected] courier-imap-1.5.3]# cp /usr/lib/courier-imap/etc/imapd.dist \ /usr/lib/courier-imap/etc/imapd [[email protected] courier-imap-1.5.3]# 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="authpam":
[[email protected] courier-imap-1.5.3]# vi /usr/lib/courier-imap/etc/imapd
Start daemon courier-imap :
[[email protected]wedus courier-imap-1.5.3]# /usr/lib/courier-imap/libexec/imapd.rc start
Anda bisa memeriksa apakah servise courier-imap anda sudah berjalan semestinya, kita gunakan perintah ps :
[[email protected] courier-imap-1.5.3]# ps ax | grep imap 2049 ? S 0:00 /usr/lib/courier-imap/libexec/couriertcpd -address=12 2052 ? S 0:00 /usr/lib/courier-imap/libexec/courierlogger imapd
Agar setiap reboot daemon courier-imap dijalankan secara otomatis :
[[email protected] courier-imap-1.5.3]# echo "/usr/lib/courier-imap/libexec/imapd.rc start" >> /etc/rc.local
Menurut file INSTALL dari distribusi Squirrelmail, software ini membutuhkan php4 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 :
[[email protected] src]# wget http://unc.dl.sourceforge.net/sourceforge/squirrelmail/squirrelmail-1.2.8.tar.gz [[email protected] src]# tar -xzvf squirrelmail-1.2.8.tar.gz
Tentukan letak direktori squirrelmail, misalnya disini saya letakkan didirektori /usr/local/httpd/htdocs/sqmail sehingga akan bisa diakses melalui http://www.wedus.com/sqmail
[[email protected] src]# mv squirrelmail-1.2.8 /usr/local/httpd/htdocs/sqmail
Tentukan user dan group yang menjalankan proses apache :
[[email protected] 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/sqmail/data menjadi user www dan group www :
[[email protected] src]# chown -R www.www /usr/local/httpd/htdocs/sqmail/data/
Salin file konfigurasi standar ke file konfigurasi squirrelmail :
[[email protected] src]# cp /usr/local/httpd/htdocs/sqmail/config/config_default.php \ /usr/local/httpd/htdocs/sqmail/config/config.php
Edit file tersebut dari $domain = 'mydomain.com'; menjadi$domain = 'wedus.com'; dan $imap_server_type = 'cyrus';menjadi $imap_server_type = 'courier'; :
[[email protected] src]# vi /usr/local/httpd/htdocs/sqmail/config/config.php
Atau jika anda mengalami kesulitan dalam mengkonfigurasi squirrelmail secara manual, anda bisa menggunakan script perl yang disertakan oleh squirrelmail, pada direktori config :
[[email protected] src]# cd /usr/local/httpd/htdocs/sqmail/config [[email protected] config]# ./conf.pl
Kemudian silakan dicoba dengan browser anda, misalnya http://www.wedus.com/sqmail, kemudian masukkan user yang telah anda buat misalnya paijo kemudian anda bisa mengganti Personal Information atau Folder Preferences dari menu Options.
Didalam penggunaannya, terkadang qmail menemui suatu masalah, misalnya queue macet atau menumpuk, atau mailbox anda dispam dan kemudian bounce ke alamat yang tidak ketahuan jluntrung dan sangkan parannya ataupun tiba-tiba struktur direktori queue anda rusak. Atau anda punya gagasan untuk membatasi total pemakain harddisk untuk suatu domain.
qmHandle digunakan untuk melihat direktori queue ataupun menghapus dan melihat suatu email di direktori queue. Program ini membutuhkan perl, jadi silakan diperiksa distro linux kesayangan anda, apakah sudah terinstall perl atau belum.
[[email protected] src]# wget http://www.io.com/~mick/soft/qmHandle-0.5.1.tar.gz [[email protected] src]# tar -xzvf qmHandle-0.5.1.tar.gz
Edit file qmHandle :
[[email protected] src]# vi qmHandle
Hapus atau beri tanda "#" pada baris ini :
$qmcmd = "csh -cf '/var/qmail/rc &'";
Unmark/uncommnet (hilangkan tanda "#") pada baris ini :
$qmcmd = '/etc/init.d/qmail start';
Atau jika anda tidak menggunakan init untuk memulai qmail :
$qmcmd = '/usr/bin/qmailctl start';
Pindahkan file binari nya ke direktori /usr/sbin atau direktori dimana anda ingat file tsb dan masuk lingkungan $PATH anda :
[[email protected] src]# mv qmHandle /usr/sbin/
Jika tidak ada email yang menyangkut di direktori queue, hasil perintah qmHandle -l -c adalah :
[[email protected] src]# qmHandle -l -c Messages in local queue: 0 Messages in remote queue: 0
Misalkan ada sebuah email yang bounce dan numpuk direktori queue :
[[email protected] src]# qmHandle -l -c 15643 (3, R) Return-path: From: [email protected] To: [email protected] Subject: failure notice Date: 30 Oct 2002 01:26:58 -0000 Size: 14634 bytes
Dan anda ingin menghapusnya (nomor 15643 didapat dari hasil diatas):
[[email protected] src]# qmHandle -d15643 Terminating qmail (pid 491)... this might take a while if qmail is working. Restarting qmail... Starting qmail done (hopefully).
Untuk menghapus beberapa nomor sekaligus (misalnya nomor 1,2,3) anda bisa menggunakan qmHandle -d1 -d2 -d3 untuk menghapusnya, untuk penggunaan lebih lanjut qmHandle -h
Jika direktori queue anda tiba-tiba membengkak dan banyak antrian di queue, mungkin mailbox anda ada yang terkena spam atau virus atau diserang (let's say dibomb lah). Anda bisa melihat salah satu message email yang terkena spam/virus/bomb tersebut dengan qmHandle. Tapi jika jumlah message banyak menghapus dengan qmHandle adalah pekerjaan yang melelahkan :), solusinya mungkin bisa dengan menghapus direktori queue yang lama dan mengganti dengan direktori queue yang baru.
[[email protected] src]# wget http://www.netmeridian.com/e-huss/queue-fix.tar.gz [[email protected] src]# tar -xzvf queue-fix.tar.gz [[email protected] src]# cd queue-fix-1.4/ [[email protected] queue-fix-1.4]# make
Pindahkan file binari nya ke direktori /usr/sbin atau direktori dimana anda ingat file tsb dan masuk lingkungan $PATH anda :
[[email protected] queue-fix-1.4]# cp queue-fix /usr/sbin/
Jika anda ingin membetulkan struktur direktori queue qmail saja :
[[email protected] queue-fix-1.4]# qmailctl stop [[email protected] queue-fix-1.4]# queue-fix -i /var/qmail/queue/ [[email protected] queue-fix-1.4]# qmailctl start
Jika anda ingin mengganti (menghapus yang lama dan membuat yang baru) struktur direktori queue qmail, perintah mv ditujukan untuk membackup direktori queue jika suatu saat nanti akan dilakukan investigasi dari pihak berwajib (anda?):
[[email protected] queue-fix-1.4]# qmailctl stop [[email protected] queue-fix-1.4]# mv /var/qmail/queue/ /var/qmail/old-queue [[email protected] queue-fix-1.4]# mkdir /var/qmail/queue/ [[email protected] queue-fix-1.4]# queue-fix -i /var/qmail/queue/ [[email protected] queue-fix-1.4]# qmailctl start
Tujuannya adalah membatasi pemakaian harddisk untuk suatu user (account email). Bagaimana cara mengatur quota pada linux dengan baik dan benar, silakan kunjungi http://www.tldp.org/HOWTO/mini/Quota.html. Jika misalnya partisini /home anda sudah terpisah dan direktori /home anda akan diquota maka pada file /etc/fstab anda ubah dari :
LABEL=/home /home ext3 defaults 1 2
Menjadi :
LABEL=/home /home ext3 defaults,usrquota 1 2
Buat file kosong pada partisi /home ganti modenya menjadi 700 :
[[email protected] asfik]# touch /home/aquota.user [[email protected] asfik]# chmod 700 /home/aquota.user
Reboot Linux anda, pastikan setiap reboot akan menjalankan quotaon, default pada Redhat sudah dimasukkan dalam file /etc/rc.d/rc.sysinit . Lakukan quotacheck sebelum melakukan penambahan quota :
[[email protected] asfik]# quotacheck -avugfm
Test apakah quota sudah terpasang dengan semestinya :
[[email protected] asfik]# quota -uv root Disk quotas for user root (uid 0): Filesystem blocks quota limit grace files quota limit grace /dev/hda8 135052 0 0 3545 0 0
Jika belum terpasang maka hasil keluaran perintah diatas adalah :
[[email protected] asfik]# quota -uv root Disk quotas for user root (uid 0): none
Sekarang kita coba untuk memberi quota pada user paijo misalnya sebesar 10 MB :
[[email protected] asfik]# setquota -u paijo 10240 10240 0 0 /home [[email protected] asfik]# quota -uv paijo Disk quotas for user paijo (uid 188): Filesystem blocks quota limit grace files quota limit grace /dev/hda7 496 10000 10000 none 212 0 0
Jika suatu saat user paijo telah melebihi quota (ditunjukkan dengan tanda * pada hasil keluaran perintah quota) yang kita berikan maka semua email yang dikirm ke email [email protected] tersebut akan dibounce ke sendernya (dikirim balik ke pengirimnya) :
[[email protected] asfik]# quota -uv paijo Disk quotas for user paijo (uid 188): Filesystem blocks quota limit grace files quota limit grace /dev/hda7 11496* 10000 10000 none 212 0 0
Hasil dari perintah tail -f /var/log/qmail/current yang menunjukkan suatu email dibounce :
[[email protected] asfik]# tail -f /var/log/qmail/current @400000003dbf7bb835dc0084 info msg 48056: bytes 890 from <[email protected]> qp 21917 uid 908 @400000003dbf7bb837ca6ebc starting delivery 36258: msg 48056 to local [email protected] @400000003dbf7bb837ca95cc status: local 1/10 remote 2/20 @400000003dbf7bb8382e54f4 delivery 36258: failure: Recipient's_mailbox_is_full,_message_returned_to_sender._(#5.2.2)/ @400000003dbf7bb8382e7434 status: local 0/10 remote 2/20 @400000003dbf7bb9003b0f24 bounce msg 48056 qp 21921 @400000003dbf7bb9003b2a7c end msg 48056 @400000003dbf7bb9003b324c new msg 48058 @400000003dbf7bb9003b3634 info msg 48058: bytes 1453 from <> qp 21921 uid 914 @400000003dbf7bb901b55ecc starting delivery 36259: msg 48058 to remote [email protected] @400000003dbf7bb901b57a24 status: local 0/10 remote 3/20 @400000003dbf7bbe19c42354 delivery 36259: success: 10.126.10.13_accepted_message./Remote_host_said:_250_Ok:_queued_as_04CF6329D2/ @400000003dbf7bbe19c44a64 status: local 0/10 remote 2/20 @400000003dbf7bbe19c45234 end msg 48058
Jika tidak (belum) bekerja sebagaimana mestinya, silakan anda kunjungi site quota mini howto tersebut diatas. Happy reading :)
30 Juli 2003
08 Nopember 2002
02 Nopember 2002