Saturday, 13 October 2012

Mail Server dengan Qmailtoaster


Mail Server dengan Qmailtoaster

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.





Dari gambar di atas dapat kita lihat cara kerja email sebagai berikut: Budi mengirimkan email kepada Anto di mail server B. Email Budi ini oleh mail server A akan di kirim ke mailserver 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
– 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)
daemontools-toaster
ucspi-tcp-toaster
qmail-toaster (w/ qmailpop3dtoaster)
courier-imap-toaster
autorespond-toaster
controlpanel-toaster
ezmlm-toaster (w/ ezmlmcgitoaster)
qmailadmin-toaster
qmailmrtg-toaster
maildrop-toaster
isoqlog-toaster
vqadmin-toaster (optional)
squirrelmail-toaster
spamassassin-toaster
clamav-toaster
simscan-toaster

Download script untuk mendownloadnya ada di >>>> http://www.qmailtoaster.com/info/current-download-script.sh

Isi dari script ini adalah:

**********************************************************************
#!/bin/sh
#
# Download current qmailtoaster packages
# Query Server for current list

# Jake Vickers 
# Feb 3, 2009
Edited the script to reflect different download paths now that I have taken project over.

#
# Erik A. Espinoza 
# 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
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 fdr40deps.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
#
# Removes sendmail and adds all deps
#
yum y remove sendmail evolution
yum y install autoconf automake automake17 bzip2 bzip2devel compatgcc32 ompatgcc32c++
curl curldevel expect expectdevel gcc gccc++ gccjava gdbm gdbmdevel gmp gmpdevel httpd httpddevel httpdmanual krb5authdialog krb5devel krb5libs krb5workstation libgcc libidn libidndevel mysql mysqlbench mysqldevel mysqlserver mrtg ntp openssl penssldevel pcre perlDigestHMAC perlDigestSHA1 perlNetDNS perlTimeHiRes php phpldap phpmysql phppear redhatrpmconfig rpmbuild rpmdevel rpmlibs rpmpython sed setup setuptool spamassassin stunnel systemconfigdate which
*****************************************************************************

Bagaimana jika kita tidak memiliki kecepatan internet yang cepat? Jangan khawatir, kitadapat 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 perl-Digest-SHA1, 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.

3. Setup Mysqlnya

Kita perlu membuat database untuk Virtual domain dan user. Gunakan script ini: mysqlsetup.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 # 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

Untuk beberap OS qmailtoaster sudah menyediakan script buat instalasinya seperti

CentOS Installation Scripts: LINK >>
Fedora Core Installation Scripts: LINK >>
Mandriva Installation Scripts: LINK >>
openSuSE Installation Scripts: LINK >>


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)
daemontools-toaster
ucspi-tcp-toaster
qmail-toaster (w/ qmailpop3dtoaster)
courier-imap-toaster
autorespond-toaster
controlpanel-toaster
ezmlm-toaster (w/ ezmlmcgitoaster)
qmailadmin-toaster
qmailmrtg-toaster
maildrop-toaster
isoqlog-toaster
vqadmin-toaster (optional)
squirrelmail-toaster
spamassassin-toaster
clamav-toaster
simscan-toaster

Urutan install untuk Fedora 5 (berdasarkan script di qmailtoaster.com):
daemontools-toaster
ucspi-tcp-toaster
vpopmail-toaster
libdomainkeys-toaster
libsrs2-toaster
qmail-toaster
courier-authlib-toaster
courier-imap-toaster
autorespond-toaster
control-panel-toaster
ezmlm-toaster
qmailadmin-toaster
qmailmrtg-toaster
maildrop-toaster
isoqlog-toaster
vqadmin-toaster
squirrelmail-toaster
spamassassin-toaster
clamav-toaster
ripmime-toaster
simscan-toaster

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:

Mandrake 10.0 Linux
$rpmbuild –rebuild –with mdk100 package.src.rpm
Mandrake 10.1 Linux
$rpmbuild –rebuild –with mdk101 package.src.rpm
Mandriva 2005 Linux
$rpmbuild –rebuild –with mdk102 package.src.rpm
Mandriva 2006 Linux
$rpmbuild –rebuild –with mdk103 package.src.rpm
Mandriva 2006 x86_64 Linux
$rpmbuild –rebuild –with mdk10364 package.src.rpm
Red Hat 9 Linux
$rpmbuild –rebuild –with rht90 package.src.rpm
Fedora Core 1 Linux
$rpmbuild –rebuild –with fdr10 package.src.rpm
Fedora Core 2 Linux
$rpmbuild –rebuild –with fdr20 package.src.rpm
Fedora Core 3 Linux
$rpmbuild –rebuild –with fdr30 package.src.rpm
Fedora Core 4 Linux
$rpmbuild –rebuild –with fdr40 package.src.rpm
Fedora Core 4 x86_64 Linux
$rpmbuild –rebuild –with fdr4064 package.src.rpm
Fedora Core 5 Linux
$rpmbuild –rebuild –with fdr50 package.src.rpm
Fedora Core 5 x86_64 Linux
$rpmbuild –rebuild –with fdr5064 package.src.rpm
CentOS 4.x Linux
$rpmbuild –rebuild –with cnt40 package.src.rpm
CentOS 4.x x86_64 Linux
$rpmbuild –rebuild –with cnt4064 package.src.rpm
openSuSE 10.0 Linux
$rpmbuild –rebuild –with sus100 package.src.rpm
openSuSE 10.0 x86_64 Linux
$rpmbuild –rebuild –with sus10064 package.src.rpm
openSuSE 10.1 Linux
$rpmbuild –rebuild –with sus101 package.src.rpm
openSuSE 10.1 x86_64 Linux
$rpmbuild –rebuild –with sus10164 package.src.rpm

Contohnya:

#rpmbuild –rebuild –with fdr30 daemontools-toaster.src.rpm

Rpm hasil kompile nya ada di

/usr/src/redhat/RPMS/i386/ & di /usr/src/redhat/RPMS/noarch/

setelah itu tinggal instal

#rpm -ivh namapaket.rpm

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 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/admin-toaster/ atau http://admin:toaster@localhost/admin-toaster/
Penting:
Perhatikan tanda garis miring di akhir url, tanpa tanda garis miring tersebut halaman websitenya tidak akan muncul.



Setelah masuk, kita akan melihat:



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

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:





Setelah membuat Domain email, kita dapat mulai membuat email-email 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.





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 <== 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.comfajar@
domainku.com
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>,bayes=0,autolearn=no
==> /var/log/maildrop/maildrop.log <== From: ">>Bossku<<" 
Subj: Fw: Isu Penting
!Err: |/var/qmail/bin/bouncesaying 'siapasih@domainku.com is over quota
(1086)
Jan 10 17:00:14 BOUNCED:
bouncesaying 'siapasih@domainku.com 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 fajar@domainku.com: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.



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? :)

Referensi
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)
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)


No comments:

Post a Comment