http://linux2.arinet.org
Panduan membuat Mail Server lengkap di Linux Pendahuluan Email server adalah salah satu komponen terpenting di dalam aktivitas komunikasi modern sekarang ini. Jutaan email berseliweran setiap harinya di dunia. Sejarah email dimulai tahun 1965 berupa pesan elektronik di antara user di sebuah mainframe. Email ini kemudian berkembang menjadi network email, dimana para user mulai bisa mengirimkan pesan kepada user yang berada di mainframe lain. Lambang @ yang berfungsi memisahkan antara nama user dan mesinnya dicetuskan oleh Ray Tomlison pada tahun 1969. Drawing 1: Cara Kerja Email
Budi To: Anto@B
Mail Server A
Anto From: Budi@A
Mail Server B
Dari gambar di atas dapat kita lihat cara kerja email sebagai berikut: Budi mengirimkan halaman 1 dari 22
http://linux2.arinet.org email kepada Anto di mail server B. Email Budi ini oleh mail server A akan di kirim ke mail server B. Mail server B akan memeriksa apakah terdapat mailbox bernama Anto, bila ada maka ia akan memasukkan email dari Budi ke dalam mailbox Anto. Anto kemudian akan mendownload emailnya dan akan melihat bahwa terdapat email dari Budi di mail server A. Demikianlah kirakira secara umum cara kerja email.
Macam-macam Mail Server Di dalam dunia open source terdapat beberapa mail server yang terkenal, yaitu: 1. CourierMTA (http://www.couriermta.org/) 2. Exim (http://www.exim.org/) 3. Postfix (http://www.postfix.org/) 4. Sendmail (http://www.sendmail.org/) 5. Qmail (http://www.qmail.org/) Masingmasing dengan kelebihan dan kelemahannya. Untuk melihat perbandingan secara umum dapat kita kunjungi website ini: http://www.geocities.com/mailsoftware42/
Qmailtoaster Kali ini kita akan belajar menginstall dan mensetup mail server menggunakan Qmail yang dikemas oleh Qmailtoaster (http://www.qmailtoaster.com). Paketpaket yang disediakan oleh Qmailtoaster cukup lengkap, sebagai berikut: – Mail server: Qmail – Virtualisasi: Vpopmail + Mysql – Scanner: simscan – Antivirus: Clam Antivirus – Antispam: Spam Assassin – Webmail: Squirrell mail – Mailing list: ezmlm – Web administration: qmailadmin, vqadmin – Statistik report: qmailmrtg, isoqlog halaman 2 dari 22
http://linux2.arinet.org –
Feature lain: chkuser patch (berguna mencegah spam), autoresponder, maildrop, smtp auth.
Karena Qmailtoaster ini dikemas dalam bentuk RPM, maka secara native ia diperuntukkan untuk distrodistro Linux dari keluarga Redhat, seperti: Redhat (tentunya), Mandrake, Fedora Core, Centos, OpenSuse, dan Trustix. Cara installasi: 1. Download semua file Toaster yang dibutuhkan dari www.qmailtoaster.com 2. Pastikan bahwa semua dependencies telah terinstall terlebih dahulu 3. Setup mysqlnya 4. Install paketpaket Toaster 5. Verifikasi installasi paketpaket Toaster 6. Masuk ke web administration Qmailtoaster 7. Setup Virtual Domain dan Emailnya 8. Melihat mail server kita in action 9. Melihat statistik mail server kita Baiklah, mari kita mulai.
1. Download semua file Toaster yang dibutuhkan dari www.qmailtoaster.com Masukkan ke dalam sebuah direktori, misalkan /qmailtoaster. Filefile yang harus kita download ada 18 buah, sebagai berikut: zlib (kalau OS kamu menggunakan zlib lebih tua dari 1.2.2.2) daemontoolstoaster ucspitcptoaster qmailtoaster (w/ qmailpop3dtoaster) courierimaptoaster autorespondtoaster controlpaneltoaster halaman 3 dari 22
http://linux2.arinet.org ezmlmtoaster (w/ ezmlmcgitoaster) qmailadmintoaster qmailmrtgtoaster maildroptoaster isoqlogtoaster vqadmintoaster (optional) squirrelmailtoaster spamassassintoaster clamavtoaster simscantoaster Telah tersedia script untuk membantu kita mendownload semua paket tersebut di atas, yaitu: currentdownloadscript.sh Isi dari script ini adalah: #!/bin/sh # # Download current qmailtoaster packages # Query Server for current list # # Erik A. Espinoza <
[email protected]> # July 22, 2005 # List queried from server # QT_BRANCH=stable QT_LIST="http://www.qmailtoaster.com/info/current.txt" QT_PACKAGES=`wget q O ${QT_LIST}` # If list is unavailable, quit if [ z "${QT_PACKAGES}" ] ; then halaman 4 dari 22
http://linux2.arinet.org echo "Package List unavailable, please check your connection and try again" exit 1 fi # If list is availalbe, start the download for SRPMS in ${QT_PACKAGES} ; do echo "Downloading ${SRPMS}" wget http://www.qmailtoaster.com/download/${QT_BRANCH}/${SRPMS} echo "" sleep 4 done exit 0
2. Pastikan bahwa semua dependencies telah terinstall Bila kita memiliki koneksi internet yang cepat, kita dapat menggunakan command yum untuk memastikan bahwa semua dependencies telah ada, yaitu dengan menjalankan script fdr40 deps.sh. Isi dari script ini adalah: #!/bin/sh # # Fedora Core 4 dependencies for basic install # # This covers the required packages when you DID NOT # check anything when you installed Fedora Core 4 halaman 5 dari 22
http://linux2.arinet.org # # Removes sendmail and adds all deps # yum y remove sendmail evolution yum y install autoconf automake automake17 bzip2 bzip2devel compatgcc32 compatgcc32c++ curl curldevel expect expectdevel gcc gccc++ gccjava gdbm gdbmdevel gmp gmpdevel httpd httpddevel httpdmanual krb5authdialog krb5 devel krb5libs krb5workstation libgcc libidn libidndevel mysql mysqlbench mysql devel mysqlserver mrtg ntp openssl openssldevel pcre perlDigestHMAC perlDigest SHA1 perlNetDNS perlTimeHiRes php phpldap phpmysql phppear redhatrpm config rpmbuild rpmdevel rpmlibs rpmpython sed setup setuptool spamassassin stunnel systemconfigdate which Bagaimana jika kita tidak memiliki kecepatan internet yang cepat? Jangan khawatir, kita dapat melakukan hal ini: 1. Buka menu Add/Remove Applications, dan kita install paket yang berada di group development, compability, web server. 2. Untuk menginstall paket perl yang masih kurang, kita dapat menggunakan yum ataupun command perl, seperti: yum install perlDigestSHA1, atau perl MCPAN e 'install "Digest::SHA1"'
Tips: Scriptscript tersebut di atas telah tersedia di website Qmailtoaster. Penting: Beberapa distro secara default akan menginstall Sendmail. Pastikan bahwa kita menguninstallnya. Gunakan command rpm e –nodeps sendmail. Bila kita tidak menguninstallnya, maka qmail tidak akan dapat diinstall.
halaman 6 dari 22
http://linux2.arinet.org
3. Setup Mysqlnya Kita perlu membuat database untuk Virtual domain dan user. Gunakan script ini: mysql setup.sh Isi dari script tersebut adalah: #!/bin/sh # # Setup mysql for qmailtoaster # # Nick Hemmesch
# September 26, 2005 # # Set mysql password MYSQLPW=12345 < masukkan password root mysql kita
# Setup mysql for vpopmail ########################## # Setup root account if you have already set your root password # comment this section #mysqladmin uroot password $MYSQLPW < ngga perlu kalau kita sudah setup root mysqlnya. Diberi tanda # (comment saja) #mysqladmin uroot p$MYSQLPW reload < ini juga #mysqladmin uroot p$MYSQLPW refresh < ini juga
halaman 7 dari 22
http://linux2.arinet.org # Create vpopmaildatabase with correct permissions mysqladmin create vpopmail uroot p$MYSQLPW mysqladmin uroot p$MYSQLPW reload mysqladmin uroot p$MYSQLPW refresh echo "GRANT ALL PRIVILEGES ON vpopmail.* TO vpopmail@localhost IDENTIFIED BY 'SsEeCcRrEeTt'" | mysql uroot p$MYSQLPW mysqladmin uroot p$MYSQLPW reload mysqladmin uroot p$MYSQLPW refresh
4. Install paket-paket Toaster Sebenarnya telah tersedia script untuk installasi otomatis semua paketpaket tersebut, yaitu: currentinstallscript.sh Dengan menjalankan script tersebut, maka semua paket akan terinstall otomatis, namun ada kendala yaitu jika ternyata kita belum memiliki dependencies tertentu. Maka paketpaket yang dependenciesnya tersebut belum tersedia akan gagal terinstall, namun script ini akan terus berjalan tanpa memberikan warning bahwa suatu paket gagal terinstall. Oleh karena itu saya menyarankan jalan kedua, yaitu mengkompile dan menginstall satu per satu paket yang dibutuhkan. Sehingga kalau ada yang gagal install kita akan tahu. Kita harus mengikuti urutan tertentu untuk menginstall paketpaket tersebut, yaitu: zlib (kalau OS kamu menggunakan zlib lebih tua dari 1.2.2.2) daemontoolstoaster ucspitcptoaster qmailtoaster (w/ qmailpop3dtoaster) courierimaptoaster autorespondtoaster controlpaneltoaster halaman 8 dari 22
http://linux2.arinet.org ezmlmtoaster (w/ ezmlmcgitoaster) qmailadmintoaster qmailmrtgtoaster maildroptoaster isoqlogtoaster vqadmintoaster (optional) squirrelmailtoaster spamassassintoaster clamavtoaster simscantoaster Cara mengkompilenya adalah sebagai berikut: rpmbuild rebuild with fdr40 namapaket.src.rpm Kata fdr40 itu kita sesuaikan dengan distro kita, fdr40 adalah jika kita menggunakan Fedora Core 4. Jika kita menggunakan distro lain, kita isikan dengan:
Distribution
RPM flag
Supported
Mandrake 10.0 Linux
$ rpmbuild rebuild with mdk100 package.src.rpm
YES
Mandrake 10.1 Linux
$ rpmbuild rebuild with mdk101 package.src.rpm
YES
Mandriva 2005 Linux
$ rpmbuild rebuild with mdk102 package.src.rpm
YES
Mandriva 2006 Linux
$ rpmbuild rebuild with mdk103 package.src.rpm
YES
Mandriva 2006 x86_64 Linux
$ rpmbuild rebuild with mdk10364 package.src.rpm
YES
Red Hat 9 Linux
$ rpmbuild rebuild with rht90 package.src.rpm
YES
Fedora Core 1 Linux
$ rpmbuild rebuild with fdr10 package.src.rpm
YES
Fedora Core 2 Linux
$ rpmbuild rebuild with fdr20 package.src.rpm
YES
Fedora Core 3 Linux
$ rpmbuild rebuild with fdr30 package.src.rpm
YES
Fedora Core 4 Linux
$ rpmbuild rebuild with fdr40 package.src.rpm
YES
Fedora Core 4 x86_64 Linux
$ rpmbuild rebuild with fdr4064 package.src.rpm
YES
CentOS 4 Linux
$ rpmbuild rebuild with cnt40 package.src.rpm
YES
CentOS 4 x86_64 Linux
$ rpmbuild rebuild with cnt4064 package.src.rpm
YES
halaman 9 dari 22
http://linux2.arinet.org openSuSE 10.0 Linux
$ rpmbuild rebuild with sus100 package.src.rpm
YES
openSuSE 10.0 x86_64 Linux
$ rpmbuild rebuild with sus10064 package.src.rpm
YES
Trustix 2.0 Linux
$ rpm rebuild with trx20 package.src.rpm
YES
Setelah kita jalankan command rpmbuild tersebut, maka file rpm yang siap diinstall akan tersedia di direktori: /usr/src/redhat/RPMS/i386 Selanjutnya kita dapat menginstall satu persatu file RPM yang terdapat di dalam direktori tersebut dengan command: rpm Uvh namapaket.rpm Berikut ini adalah contohnya: [root@fc4 qmailtoaster]# rpmbuild rebuild with fdr40 squirrelmail toaster1.4.51.2.13.src.rpm Installing squirrelmailtoaster1.4.51.2.13.src.rpm Executing(%prep): /bin/sh e /var/tmp/rpmtmp.44197 + umask 022 + cd /usr/src/redhat/BUILD + LANG=C + export LANG + unset DISPLAY + cd /usr/src/redhat/BUILD + rm rf squirrelmail1.4.5 .... cut .... RPM RELEASE : squirrelmailtoaster1.4.51.2.13 OS TYPE IS : Fedora Core 4 Linux BUILD DATE : Sun Nov 20 2005 Apache User : apache Apache Group: apache .... cut .... Checking for unpackaged file(s): /usr/lib/rpm/checkfiles /var/tmp/squirrelmailtoaster1.4.5buildroot Wrote: /usr/src/redhat/RPMS/noarch/squirrelmailtoaster1.4.5 1.2.13.noarch.rpm Executing(%clean): /bin/sh e /var/tmp/rpmtmp.71618 + umask 022 + cd /usr/src/redhat/BUILD + cd squirrelmail1.4.5
halaman 10 dari 22
http://linux2.arinet.org + '[' n /var/tmp/squirrelmailtoaster1.4.5buildroot ']' + rm rf /var/tmp/squirrelmailtoaster1.4.5buildroot + '[' d /usr/src/redhat/BUILD/squirrelmail1.4.5 ']' + rm rf /usr/src/redhat/BUILD/squirrelmail1.4.5 + exit 0 Executing(clean): /bin/sh e /var/tmp/rpmtmp.71618 + umask 022 + cd /usr/src/redhat/BUILD + rm rf squirrelmail1.4.5 + exit 0
5. Verifikasi installasi paket-paket Toaster Untuk meyakinkan bahwa semua paket Toaster telah terinstall, kita lakukan command ini: [root@fc4 ~]# rpm qa | grep toaster | sort autorespondtoaster2.0.41.2.8 clamavtoaster0.87.11.2.10 controlpaneltoaster0.51.2.8 courierimaptoaster3.0.81.2.9 daemontoolstoaster0.761.2.9 ezmlmcgitoaster0.53.3241.2.10 ezmlmtoaster0.53.3241.2.10 isoqlogtoaster2.11.2.9 maildroptoaster1.8.11.2.10 maildroptoasterdevel1.8.11.2.10 qmailadmintoaster1.2.91.2.11 qmailmrtgtoaster4.21.2.8 qmailpop3dtoaster1.031.2.10 qmailtoaster1.031.2.10 simscantoaster1.11.2.6 spamassassintoaster3.1.01.2.11 squirrelmailtoaster1.4.51.2.13 ucspitcptoaster0.881.2.9 vpopmailtoaster5.4.101.2.10 vqadmintoaster2.3.41.2.12
Pastikan bahwa daftar yang ada di komputer kamu sama dengan yang ada di atas. Tips: Ada baiknya setelah semua paket tersebut terinstall, kita merestart komputer kita untuk memastikan bahwa semua service akan berjalan dengan baik. Setelah itu kita dapat melihat halaman 11 dari 22
http://linux2.arinet.org apakah qmail telah berhasil berjalan dengan command: [root@fc4 ~]# qmailctl stat clamd: up (pid 2312) 19079 seconds imap4: up (pid 2318) 19079 seconds imap4ssl: up (pid 2321) 19079 seconds pop3: up (pid 2313) 19079 seconds pop3ssl: up (pid 2319) 19079 seconds send: up (pid 2327) 19079 seconds smtp: up (pid 2316) 19079 seconds spamd: up (pid 2323) 19079 seconds clamd/log: up (pid 2325) 19079 seconds imap4/log: up (pid 2326) 19079 seconds imap4ssl/log: up (pid 2322) 19079 seconds pop3/log: up (pid 2314) 19079 seconds pop3ssl/log: up (pid 2320) 19079 seconds send/log: up (pid 2315) 19079 seconds smtp/log: up (pid 2317) 19079 seconds spamd/log: up (pid 2324) 19080 seconds
Pastikan bahwa semua service itu telah berjalan di atas 1 detik.
6. Masuk ke web administration Qmailtoaster Buka browser di komputer kamu, dan masuk ke dalam url: http://localhost/admintoaster/ Penting: Perhatikan tanda garis miring di akhir url, tanpa tanda garis miring tersebut halaman websitenya tidak akan muncul.
halaman 12 dari 22
http://linux2.arinet.org
Illustration 1: Logon Admin Toaster. Masukkan username: admin dan passwordnya: toaster
Setelah masuk, kita akan melihat:
halaman 13 dari 22
http://linux2.arinet.org
Illustration 2: Halaman depan Admin Toaster
Penting: Segeralah mengganti password admin! Memang telah tersedia menu untuk mengganti password, namun dari yang saya coba ternyata passwordnya tetap tidak berubah. Sebagai cara lain, kita bisa menggunakan command line sebagai berikut: htpasswd c /usr/share/toaster/include/admin.htpasswd admin halaman 14 dari 22
http://linux2.arinet.org
7. Setup Virtual Domain dan Emailnya Setelah mengganti password admin Qmailtoaster, kita kemudian dapat mulai membuat domaindomain email yang kita inginkan menggunakan Vqadmin. Klik tombol vqadmin, dan kita akan melihat menu:
Illustration 3: Menu depan Vqadmin, klik menu Add Domains untuk membuat domain email kita.
halaman 15 dari 22
http://linux2.arinet.org
Illustration 4: Domain Name: isikan yang kamu inginkan, Postmaster Password: gunakan password yang baik dan sulit ditebak, Accounts: isikan jumlah email maksimum, Forwards dll juga, Quota in bytes: isikan quota standard per mailbox, bila ingin 20MB isikan 20000000
Setelah membuat Domain email, kita dapat mulai membuat emailemail accounts dan mailing list. Lewat vqadmin memang kita dapat membuatnya juga, tapi sebaiknya kita menggunakan qmailadmin. Kita kembali ke halaman depan Admin Toaster, dan klik tombol qmailadmin.
halaman 16 dari 22
http://linux2.arinet.org
Illustration 5: Masukkan username: postmaster, nama domain dan passwordnya
Illustration 6: Klik menu New Email Account untuk mulai membuat email account
halaman 17 dari 22
http://linux2.arinet.org
Illustration 7: Beri nama emailnya, quotanya dikosongkan saja bila ingin default, dan passwordnya. Real name adalah keterangan untuk memudahkan identifikasi di qmailadmin. Spam detection sebaiknya di tick.
8. Melihat mail server kita in action Untuk melihatnya dapat dengan cara memonitor filefile log berikut ini: /var/log/qmail/send/current < untuk melihat pengiriman email /var/log/qmail/spamd/current < untuk melihat status spam per email /var/log/maildrop/maildrop.log < untuk melihat apa yang terjadi pada email virus dan spam Untuk mudahnya, kita dapat memodifikasi file .bashrc kita dan memasukkan alias ini: alias tailqall="tail F n10 /var/log/qmail/send/current /var/log/qmail/spamd/current /var/log/maildrop/maildrop.log /var/log/maillog | tai64nlocal" Berikut ini adalah contoh yang terlihat di server kita ketika beraksi: [root@adsl ~]# tailqall ==> /var/log/qmail/send/current <==
halaman 18 dari 22
http://linux2.arinet.org 20060110 17:00:14.543950500 info msg 2152193: bytes 96235 from <> qp 4763 uid 7796 20060110 17:00:14.550818500 starting delivery 3501: msg 2152193 to local domainku.com[email protected] 20060110 17:00:14.550825500 status: local 1/10 remote 0/100 20060110 17:00:14.604341500 delivery 3501: success: did_0+0+1/ ==> /var/log/qmail/spamd/current <== 20060110 16:36:50.737922500 [5614] info: spamd: connection from mail.domainku.com [127.0.0.1] at port 39714 20060110 16:36:50.747319500 [5614] info: spamd: processing message <002501c615c9$4883ba00$61699eca@David> for clamav:89 20060110 16:36:50.842523500 [5614] info: spamd: clean message (0.6/5.0) for clamav:89 in 0.1 seconds, 1314 bytes. 20060110 16:36:50.842849500 [5614] info: spamd: result: . 0 BAYES_00,HTML_90_100,HTML_MESSAGE,MIME_HTML_MOSTLY scantime=0.1,size=1314,user=clamav,uid=89,required_score=5.0,rhost=mail.dom ainku.com,raddr=127.0.0.1,rport=39714,mid=<002501c615c9$4883ba00$61699eca@D avid>,bayes=0,autolearn=no ==> /var/log/maildrop/maildrop.log <== From: ">>Bossku<<" Subj: Fw: Isu Penting !Err: |/var/qmail/bin/bouncesaying '[email protected] is over quota (1086) Jan 10 17:00:14 BOUNCED: bouncesaying '[email protected] is over quota' Date: Tue Jan 10 17:00:14 2006 ==> /var/log/maillog <== Jan 10 16:43:49 adsl vpopmail[4279]: vchkpwpop3: (PLAIN) login success [email protected]:202.158.105.97
9. Lewat menu Admin Qmailtoaster kita juga dapat melihat statistik mail server kita Yaitu isoqlog dan qmailmrtg. Lewat menu statistik ini kita dapat menganalisa performance dan beban mail server kita.
halaman 19 dari 22
http://linux2.arinet.org Berikut ini adalah salah satu grafik yang dihasilkan oleh qmailmrtg:
Illustration 8: Salah satu grafik yang dihasilkan oleh qmailmrtg
halaman 20 dari 22
http://linux2.arinet.org
Penutup Demikianlah Panduan membuat mail server menggunakan Qmailtoaster. Tentu masih banyak kekurangan dan tweaking yang perlu dilakukan, tapi sebagai bahan awal dan sebagai media pembelajaran diharapkan panduan ini dapat memberikan panduan awal bagi yang ingin memiliki mail server Linux yang handal dan feature yang cukup lengkap. Sebagai bahan renungan, diharapkan juga panduan ini dapat memberikan gambaran kepada perusahaanperusahaan bahwa untuk memiliki mail server yang handal tidak perlu menggunakan produkproduk propietary yang berharga ribuan dollar. Linux dan qmail adalah paduan yang tepat bagi solusi mail server kita. Anekdot yang sering terjadi di kalangan sysadmin terhadap produk mail server propietary yang berjalan di server propietary tertentu adalah: bagaimana kita bisa yakin bahwa mail server tersebut dapat melindungi user kita dari serangan virus dan spam kalau servernya sendiri rentan terhadap serangan virus? :)
Credits Terima kasih yang sebesarbesarnya kepada Nick Hemmesch dan team yang telah menyediakan paket Qmailtoaster yang sangat berguna ini. Dengan adanya Qmailtoaster ini sungguh membantu kita di dalam memiliki mail server Qmail yang handal dan lengkap secara relatif mudah dan cepat. Juga terima kasih kepada semua pihak yang tersebutkan di dalam website www.qmailtoaster.com. QMAIL is a D. J. Bernstein software (http://cr.yp.to/qmail.html) DAEMONTOOLS is a D. J. Bernstein software (http://cr.yp.to/daemontools.html) UCSPITCP is a D. J. Bernstein software (http://cr.yp.to/ucspitcp.html) halaman 21 dari 22
http://linux2.arinet.org EZMLM is from http://www.ezmlm.org VPOPMAIL is a inter7 software (http://www.inter7.com/vpopmail) QMAILADMIN is a inter7 software (http://www.inter7.com/qmailadmin) VQADMIN is a inter7 software (http://www.inter7.com/vqadmin) QMAILMRTG is a inter7 software (http://www.inter7.com/qmailmrtg7) COURIERIMAP is a Double Precision Inc. software (http://www.inter7.com/courierimap) Erwin Hoffmann wrote the Warlock patch. (http://www.fehcom.de/qmail/spamcontrol.html) Bill Shupp made the qmail and clamav patchs. (http://www.shupp.org) Thank you so much to Nick Hemmesch and team who has provided this wonderful Qmailtoaster packages. With it, many people are able to setup a reliable working qmail mail server in very simple steps and fast.
v.1.0 by ari_stress a.k.a tiger74 a.k.a Fajar Priyanto Bukit Sentul, 10 January 2006. Email: fajarpri at arinet dot org Penulis adalah Microsoft Certified Professional, yang jatuh cinta kepada Linux. Bekerja di sebuah group otomotif di Jakarta.
halaman 22 dari 22