You are on page 1of 23

LP3T Nurul Fikri

BAB 2. Email server  

Tujuan:

• Mengerti konsep Email 
• Mampu membangun Mail Server menggunakan qmail dan vpopmail
• Mampu menerapkan email scanner dan antivirus clamav pada mail server
• Mampu membangun webmail menggunakan squirrellmail

2.1. E­Mail
Email atau surat elektronik menjadi layanan internet yang populer karena 
memberikan banyak keuntungan. Coba bayangkan jika Anda mengirim surat secara 
konvensional, mulai dari membuatnya sampai terkirim ke tujuan memakan waktu 
yang panjang. Dengan Email praktis masalah waktu dan jarak  tersebut sudah tidak 
menjadi kendala. Layanan email menggunakan konsep client dan  server , artinya ada 
aplikasi client yang mengakses server email. 

2.2. Program­program Email
Secara umum program atau aplikasi email diklasifikasikan menjada tiga klasifikasi 
yaitu Mail Transfer Agent (MTA), Mail Delivery Agent (MDA), dan Mail User 
Agent (MUA) .  Ketiga  klasifikasi  program email ini masing­masing memiliki tugas 
dan peran peting dalam proses pergerakan dan manajemen pesan ­pesan email.

 Mail Transfer Agent (MTA), mengirimkan /mentransfer email antar komputer 
dengan  menggunakan SMTP. Sebuah pesan email mungkin saja  sebelum sampai 
ketujuan melewati beberapa SMTP server lain. Contoh  aplikasi MTA  yaitu 
Sendmail, Postfix, qmail, exim dll.

 Mail Delivery Agent(MDA), bekerjasama dengan  MTA untuk menagani pesan­
pesan email yang datang untuk di letakkan /di distribusikan sesuai pada mailbox user 
masing­masing. Di beberpa sistem , program MTA biasanya adalah program MDA 
juga. Di dalam beberapa kasus , MDA sebenarnya adalah sebuah Local Delivery 
Agent (LDA) seperti mail atau procmail.

Bab­2. Email server                   halaman 1
LP3T Nurul Fikri

 Mail User Agent(MUA), merupakan sinonim  dari aplikasi email client. Sebuah 
MUA adalah sebuah program yang memungkinkan user membaca dan membuat 
pesan­pesan email. Selain itu banyak juga beberapa MUA yang memungkinkan 
mendownload email melalui protokol POP atau IMAP. Beberapa contoh MUA yaitu 
Mozilla mail, mutt, pine, Kmail, Netscape Mail, Eudora Microsoft Outlook dll.

Sebagai catatan pada tulisan ini hanya akan dijelaskan mengenai  Qmail Mail 
Transfer Agent(MTA)  beserta program­program pendukung/tambahannya.

2.3. qmail MTA
'qmail' adalah Mail Transfer Agent (MTA) yang bekerja untuk platform UNIX like. 
Untuk saling bertukar pesan (email) qmail menggunakan Simple Message Transfer 
Protocol (SMTP). Untuk mendapatkan source code qmail anda dapat mengunjungi 
official sitenya qmail yaitu di www.cr.yp.to atau di mirror sitenya, atau dapat juga di 
www.inter7.com.

Qmail memiliki banyak keunggulan dibandingkan dengan MTA lainnya. Oleh karena 
itu banyak server email di internet yang menggunakannya. Tanpa panjang lebar kita 
tidak perlu membeberkan kelebihannya dalam buku ini.

A. Apa Saja yang dibutuhkan?

o  Mesin UNIX like, contoh : linux ( distribusi apa saja )
o  Software 'development' ,  yang lengkap, yaitu: compiler C/C++,
    file­file header sistem dan library­library C/C++, Perl interpreter dan library­nya. 
o  Jaringan komputer yang fungsional, lengkap dengan nameserver (dns server)

B. 1. Persiapan

Siapkan semua source code yang akan digunakan, yaitu:

• qmail­1.03.tar.gz, merupakan source aplikasi mail server (qmail MTA) dan file­fle 
patch nya jika diperlukan.
• ucspi­tcp­0.88.tar.gz dan file­fle patch nya jika diperlukan, merupakan program 

Bab­2. Email server                   halaman 2
LP3T Nurul Fikri

daemon  sebagai interface TCP yang menjalankan aplikasi mail server (qmail), 
sehingga qmail tidak berjalan dalam mode standalone.
• daemontools­0.76.tar.gz dan file­file patch nya jika diperlukan., merupakan suatu 
paket yang menghasilkan beberapa tools untuk proses monitoring dan controlling 
layanan­layanan (service) server. Program ini akan menghasil beberapa tools 
diantaranya:
     ­svc
     ­multilog
     ­setuidgid
     ­svscan
• checkpassword­0.90.tar.gz, merupakan program tambahan yang berfungsi sebagai 
modul untuk autentikasi dalam proses download email melalui pop3 protokol.
• vpopmail­5.5.3, yang menyediakan tools administrasi virtual domain email yang 
mendukung qmail mail server.
• autorespond­2.0.4, ezmlm­0.53 (dan patchnya), yang diperlukan oleh qmailadmin
• qmailadmin­1.2.3, adalah aplikasi web cgi yang menyediakan antarmuka untuk 
pengelolaan virtaul email domain
•  courier­imap­3.0.8.tar.bz2 , merupakan program daemon yang menyediakan layanan 
imap server yang mendukung format maildir.
• squirrelmail paket rpm, sebagai aplikasi webmail (memerlukan php,php­
imap,apache dll)
• maildrop, tnef,  modul/library perl seperti Time::HiRes, DB_File, Sys::Syslog, 
MIME::Base64
• qmail­scanner dan clamav , sebagai aplikasi email scanner dan Antivirus

B. 2.  Instalasi  daemontools

Diasumsikan di mesin anda belum ada daemontools, jika sudah ada lewati bagian ini.

­Buat terlebih dahulu  directori  /package
         
# mkdir -p /package
# chmod 1755 /package
# cd /package

­Ekstrak paket  daemontools­0.76.tar.gz  di dalam direktori  /package

# tar -xzvf /path/ke_direktori/daemontools-0.76.tar.gz

Bab­2. Email server                   halaman 3
LP3T Nurul Fikri

­patching daemontools (jika diperlukan)

# cd admin/daemontools-0.76/
# patch -p1 < /lokasi/file/patch

catatan: 
Gantilah  /path/ke_direktori/ dengan Absolute PATH  Lokasi File   daemontools.
Gantilah  /lokasi/file/patch dengan Absolute PATH Lokasi File patch  daemontools.

­Kompilasi and setup daemontools­0.76

# package/install

Dalam beberapa detik seharusnya svscan sudah berjalan. 
Untuk memeriksa proses svscan, lakukan
#ps axf | grep svscan

B.3. Instalasi ucspi­tcp

Lakukan proses ini sebagai root:
­Ekstrak paket ucspi­tcp­0.88.tar.gz (sebaiknya di direktori /usr/local/src )
            
# tar -xzvf /path/ke_direktori/ucspi-tcp-0.88.tar.gz

­patch ucspi­tcp (jika diperlukan)

# cd ucspi-tcp-0.88
# patch -p1 < /lokasi/file/patch

catatan: 
gantilah  /path/ke_direktori/ dengan Absolute PATH  Lokasi File  ucspi-tcp
gantilah /lokasi/file/patch dengan Absolute PATH Lokasi File patch   ucspi-tcp

­Kompilasi dan setup ucspi­tcp­0.88

# make
# make setup check

B. 4. Instalasi qmail

Sekarang mari kita mulai instalasi qmail yang lumayan panjang tahapannya. 

­Ekstrak qmail­1.03.tar.gz ( sebaiknya di dalam direktori /usr/local/src )

Bab­2. Email server                   halaman 4
LP3T Nurul Fikri

# tar -xzvf /path/ke_direktori/qmail-1.03.tar.gz

­Buat direktori /var/qmail sebagai direktori utama tempat seluruh program qmail 
terinstall

# mkdir /var/qmail

­Buat user dan group yang akan menjalankan program­program qmail, jalankan 
perintah­perintah berikut ini:

# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias -s /bin/false alias
# useradd -g nofiles -d /var/qmail -s /bin/false qmaild
# useradd -g nofiles -d /var/qmail -s /bin/false qmaill
# useradd -g nofiles -d /var/qmail -s /bin/false qmailp
# groupadd qmail
# useradd -g qmail -d /var/qmail -s /bin/false qmailq
# useradd -g qmail -d /var/qmail -s /bin/false qmailr
# useradd -g qmail -d /var/qmail -s /bin/false qmails

Cek apakah user­user qmail sudah berhasil dibuat, sbb:
# cat /etc/passwd|grep qmail

­Patch qmail (jika diperlukan):

# cd qmail-1.03
# patch -p1 < /lokasi/file/patch

catatan: 
gantilah /lokasi/file/patch dengan Absolute PATH Lokasi File patch qmail .

­Kompilasi qmail package dan setup qmail­1.03

# make setup check


# ./config-fast your_Domain_name
contoh:
# ./config-fast nurulfikri.com

di mana 'nurulfikri.com' adalah nama domain mesin anda. qmail terinstall dan siap 
dijalan di mesin anda. 
­Buat email alias untuk email postmaster,root dan mailer­daemon .

Bab­2. Email server                   halaman 5
LP3T Nurul Fikri

# echo "admin" > ~alias/.qmail-postmaster


# echo "admin" > ~alias/.qmail-root
# echo "admin" > ~alias/.qmail-mailer-daemon
# chmod 644 ~alias/.qmail*

 catatan:
            admin adalah user yang ada pada sistem
­Tambahkan template Maildir (default delivery sistem untuk qmail ) ke direktori 
/etc/skel

# /var/qmail/bin/maildirmake /etc/skel/Maildir

­Tambahkan pula template dot­qmail ke /etc/skel

# echo "./Maildir/" > /etc/skel/.qmail

 ­Buat file "rc" dan letakkan di direktori /var/qmail, isi file "rc" sbb:
#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start "`cat /var/qmail/control/defaultdelivery`"       
 
­Buat agar file "rc" executable
# chmod 755 /var/qmail/rc

­Buat File "defaultdelivery" dan letakkan di direktori /var/qmail/control , isi file 
tersebut hanya  satu baris yang menunjukkan mail direktori , sbb:

# echo “./Maildir/” > /var/qmail/control/defaultdelivery

­Buat symbolic link untuk kompatibilitas dengan mail server lama "sendmail".
# service sendmail stop
# mv /usr/lib/sendmail /usr/lib/sendmail.old
# mv /usr/sbin/sendmail /usr/sbin/sendmail.old
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
# chkconfig –level 35 sendmail off

­Buat direktori supervise di dalam direktori /var/qmail
# mkdir -p /var/qmail/supervise/qmail-send/log
# mkdir -p /var/qmail/supervise/qmail-smtpd/log
# mkdir -p /var/qmail/supervise/qmail-pop3d/log

Bab­2. Email server                   halaman 6
LP3T Nurul Fikri

Membuat script­script "run" untuk supervise

­script "run" untuk qmail­send yang akan diletakkan di direktori 
"/var/qmail/supervise/qmail­send". Isi dari script "run" tsb sbb:
 
#!/bin/sh
exec /var/qmail/rc

­Jangan lupa buat file "run" ini executable
# chmod 755 /var/qmail/supervise/qmail-send/run

­script "run" untuk loging qmail­send  yang akan diletakkan di direktori 
"/var/qmail/supervise/qmail­send/log" . Isi dari script "run" tsb sbb:

#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t
/var/log/qmail

­Jangan lupa buat file "run" ini executable
# chmod 755 /var/qmail/supervise/qmail-send/log/run

 ­script "run" untuk qmail­smtpd  yang akan diletakkan di direktori 
"/var/qmail/supervise/qmail­smtpd".Isi dari script "run" tsb sbb:

#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" ]; then
echo QMAILDUID, NOFILESGID, or MAXSMTPD is unset in
echo /var/qmail/supervise/qmail-smtpd/run
exit 1
fi
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -l 0 -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

­Jangan lupa buat file "run" ini executable
# chmod 755 /var/qmail/supervise/qmail-smtpd/run

­script "run" untuk loging qmail­smtpd  yang akan diletakkan di direktori 
"/var/qmail/supervise/qmail­smtpd/log".Isi dari script "run" tsb sbb:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill \
/usr/local/bin/multilog t /var/log/qmail/smtpd

Bab­2. Email server                   halaman 7
LP3T Nurul Fikri

­Jangan lupa buat file "run" ini executable
# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

­script "run" untuk qmail­pop3d yang akan diletakkan di direktori 
"/var/qmail/supervise/qmail­pop3d". Isi dari script "run" tsb sbb:

#!/bin/sh
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup \
mail.nurulfikri.com /bin/checkpassword /var/qmail/bin/qmail-pop3d \
Maildir 2>&1

catatan:
gantilah  kata "mail.nurulfikri.com" pada isi file "run" diatas degan nama 
komputer/hostname   anda, sesuai dengan yang terdaftar pada DNS server.

­Jangan lupa buat file "run" ini executable
# chmod 755 /var/qmail/supervise/qmail-pop3d/run

­script "run" untuk logging qmail­pop3d yang akan diletakkan di direktori 
"/var/qmail/supervise/qmail­pop3d/log". Isi dari script "run" tsb sbb:
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill \
/usr/local/bin/multilog t /var/log/qmail/pop3d

­Jangan lupa buat file "run" ini executable
# chmod 755 /var/qmail/supervise/qmail-pop3d/log/run

­Setting concurrencyincoming,concurrencylocal dan concurrencyremote

# echo 20 > /var/qmail/control/concurrencyincoming


# echo 20 > /var/qmail/control/concurrencylocal
# echo 20 > /var/qmail/control/concurrencyremote

­Buat direktori­direktori logging

# mkdir -p /var/log/qmail/smtpd
# mkdir -p /var/log/qmail/pop3d
# chown qmaill /var/log/qmail
# chown qmaill /var/log/qmail/smtpd
# chown qmaill /var/log/qmail/pop3d

Bab­2. Email server                   halaman 8
LP3T Nurul Fikri

­Buat File seleksi relay email dan diberi nama "tcp.smtp" diletakkan di /etc
# echo '127.:allow,RELAYCLIENT=""' > /etc/tcp.smtp
# echo '192.168.1.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp
# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
# chmod 644 /etc/tcp.smtp.cdb

catatan:
    192.168.1. diasumsikan adalah network number dari jaringan Anda.

­Buat symbolic link semua service qmail (qmail­smtpd,qmail­send dan qmail­pop3d) ke 
"/service" direktori
# ln -s /var/qmail/supervise/qmail-send /service
# ln -s /var/qmail/supervise/qmail-smtpd /service
# ln -s /var/qmail/supervise/qmail-pop3d /service

­Buat startup script untuk service­service qmail dan diletakkan di "/etc/init.d ",script 
"qmail" berisi sbb:

#!/bin/sh
PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
case "$1" in
start)
echo "Starting qmail"
if svok /service/qmail-send ; then
svc -u /service/qmail-send
else
echo qmail-send supervise not running
fi
if svok /service/qmail-smtpd ; then
svc -u /service/qmail-smtpd
else
echo qmail-smtpd supervise not running
fi
if [ -d /var/lock/subsys ]; then
touch /var/lock/subsys/qmail
fi

if svok /service/qmail-pop3d ; then


svc -u /service/qmail-pop3d
else
echo qmail-pop3d supervise not running
fi
;;
stop)
echo "Stopping qmail..."
echo " qmail-smtpd"

Bab­2. Email server                   halaman 9
LP3T Nurul Fikri

svc -d /service/qmail-smtpd
echo " qmail-send"
svc -d /service/qmail-send
if [ -f /var/lock/subsys/qmail ]; then
rm /var/lock/subsys/qmail
fi
echo " qmail-pop3d"
svc -d /service/qmail-pop3d
;;
stat)
svstat /service/qmail-send
svstat /service/qmail-send/log
svstat /service/qmail-smtpd
svstat /service/qmail-smtpd/log
svstat /service/qmail-pop3d
svstat /service/qmail-pop3d/log
echo
qmail-qstat
;;
doqueue|alrm|flush)
echo "Flushing timeout table and sending ALRM signal to qmail-
send."
/var/qmail/bin/qmail-tcpok
svc -a /service/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;

reload|hup)
echo "Sending HUP signal to qmail-send."
svc -h /service/qmail-send
;;
pause)
echo "Pausing qmail-send"
svc -p /service/qmail-send
echo "Pausing qmail-smtpd"
svc -p /service/qmail-smtpd
echo "Pausing qmail-pop3d"
svc -p /service/qmail-pop3d
;;
cont)
echo "Continuing qmail-send"
svc -c /service/qmail-send
echo "Continuing qmail-smtpd"
svc -c /service/qmail-smtpd
echo "Continuing qmail-pop3d"
svc -c /service/qmail-pop3d
;;

restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtpd."

Bab­2. Email server                   halaman 10
LP3T Nurul Fikri

svc -d /service/qmail-smtpd
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /service/qmail-send
echo "* Restarting qmail-smtpd."
svc -u /service/qmail-smtpd
echo "* Restarting qmail-pop3d."
svc -t /service/qmail-pop3d
;;
cdb)
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
chmod 644 /etc/tcp.smtp.cdb
echo "Reloaded /etc/tcp.smtp."
;;

help)
cat <<HELP
stop -- stops mail service (smtp connections refused, nothing goes out)
start -- starts mail service (smtp connection accepted, mail can go out)
pause -- temporarily stops mail service (connections accepted, nothing
leaves)
cont -- continues paused mail service
stat -- displays status of mail service
cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- schedules queued messages for immediate delivery
reload -- sends qmail-send HUP, rereading locals and virtualdomains
queue -- shows status of queue
alrm -- same as doqueue
flush -- same as doqueue
hup -- same as reload
HELP
;;
*)
echo "Usage :$0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|
cdb|queue|help}"
exit 1
;;
esac
exit 0

­Jangan lupa script "qmail" ini dibuat executable
# chmod 755 /etc/init.d/qmail
# chkconfig –add qmail

­Install man pages qmail
# cd /var/qmail/man/man1
# gzip *.1
# cp *.gz /usr/share/man/man1
# cd /var/qmail/man/man5
# gzip *.5
# cp *.gz /usr/share/man/man5

Bab­2. Email server                   halaman 11
LP3T Nurul Fikri

# cd /var/qmail/man/man7
# gzip *.7
# cp *.gz /usr/share/man/man7
# cd /var/qmail/man/man8
# gzip *.8
# cp *.gz /usr/share/man/man8

B.5. Instalasi checkpassword

­Ekstrak source checkpassword di direktori /usr/local/src
# cd /usr/local/src
# tar -xzvf /path/ke_direktori/checkpassword-0.90.tar.gz

­Patching checkpassword (Jika diperlukan):
# cd checkpassword-0.90
#patch -p1 < /lokasi/file/patch

catatan: 
gantilah  /path/ke_direktori/ dengan Absolute PATH  Lokasi File   checkpassword.
gantilah /lokasi/file/patch dengan Absolute PATH Lokasi File patch  checkpassword.

­Kompilasi dan setup checkpassword
# make
# make setup check

B.6. Instalasi vpopmail

Ekstrak dahulu vpopmail­5.5.3.tar.gz, sbb:
# groupadd vchkpw
# useradd -g vchkpw -d /home/vpopmail -m vpopmail
# cd /usr/local/src
# tar -xzvf vpopmail-5.5.3.tar.gz
# cd vpopmail-5.5.3
# ./configure --disable-clear-passwd --enable-tcpserver-file=/etc/tcp.smtp
# make
# make install-strip

Membuat domain baru:
# /home/vpopmail/bin/vadddomain nurulfikri.com

Membuat user baru:
#/home/vpopmail/bin/vadduser henry@nurulfikri.com

Bab­2. Email server                   halaman 12
LP3T Nurul Fikri

Mengganti modul autentikasi untuk proses pop3 yang sebelumnya menggunakan 
/bin/checkpassword diganti menjadi /home/vpopmail/bin/vchkpw. Untuk itu dapat 
Anda lakukan dengan mengedit file /service/qmail­pop3d/run.

B.7. Instalasi autoresponder

Ekstrak dahulu autorespond­2.0.4,tar.gz
# tar -xzvf autorespond-2.0.4.tar.gz
#cd autorespond-2.0.4
#make
# make install

B.8. Instalasi  ezmlm­idx

Ekstrak ezmlm­0.53  dan ezmlm­idx­0.40
# tar -xzvf ezmlm-0.53.tar.gz
# tar -xzvf ezmlm-idx-0.40.tar.gz
# cp -rf ezmlm-idx-0.40/* ezmlm-0.53/
#cd ezmlm-0.53
# patch -p0 < idx.patch
# patch -p1 < ../ezmlm-idx-0.53.400.unified_41.patch
# make
# make man
# make setup

B.9. Instalasi qmailadmin

Qmailadmin memerlukan apache web server, pastikan bahwa web server apache 
sudah terinstall. Kemudian ekstrak dahulu qmailadmin­1.2.3.tar.gz

#tar -xzvf qmailadmin-1.2.3.tar.gz


#cd qmailadmin-1.2.3
#./configure --enable-htmldir=/var/www/html \
--enable-cgibindir=/var/www/cgi-bin --enable-modify-quota
#make
#make install-strip

Kemudian coba akses qmailadmin menggunakan web client dengan URL 
http://localhost/cgi­bin/qmailadmin 

B.10. Instalasi courier­imap

Ekstrak dahulu  courier­imap, login sebagai user biasa saja:
$ tar -xjvf courier-imap-3.0.8.tar.bz2

Bab­2. Email server                   halaman 13
LP3T Nurul Fikri

­ Pindah ke direktori courier
$ cd courier-imap-3.0.8

­ Lakukan konfigurasi sbg user biasa saja:
$ ./configure --bindir=/usr/local/bin --mandir=/usr/local/man \
--with-authvchkpw –-without-authshadow --without-authpwd \
--without-authpam –without-authuserdb -–without-authcram \
--without-authldap --without-authmysql --without-authpgsql \
--without-authdaemon --without-authcustom --with-redhat

CATATAN:
Perintah configure diatas ditulis satu baris ke kanan. Option konfigurasi diatas berarti 
mengenable autentikasi modul dengan authvchkpw yaitu proses autentikasi 
menggunakan database file user vpopmail yaitu vpasswd.

­ Masih sebagai user biasa lakukan prose kompilasi dengan cara sbb:
$ make
$ make check

­ Sebagai root kemudian lakukan langkah Instalasi  sbb:

# make install
# make install-configure

­ Selesailah proses instalasi dan kompilasi courier­imap. Untuk megaktifkan server 
courier­imap jalankan perintah berikut dan sebaiknya diletakkan di baris akhir file 
/etc/rc.local.
# /usr/lib/courier-imap/libexec/imapd.rc start

C. Pengujian server Email
− Cobalah sekarang anda menjalankan perintah berikut ini:
# /etc/init.d/qmail start

− Lalu coba jalankan perintah "ps ­ax" anda akan melihat beberapa service qmail 
sbb:
1161 ? S 0:00 /bin/sh /command/svscanboot

Bab­2. Email server                   halaman 14
LP3T Nurul Fikri

1163 ? S 0:00 svscan /service


1164 ? S 0:00 readproctitle service errors:
.........................
1165 ? S 0:00 supervise qmail-send
1166 ? S 0:00 supervise log
1167 ? S 0:00 supervise qmail-smtpd
1168 ? S 0:00 supervise log
1169 ? S 0:00 supervise qmail-pop3d
1170 ? S 0:00 supervise log
1171 ? S 0:00 [tcpserver]
1172 ? S 0:00 /usr/local/bin/multilog t /var/log/qmail
1175 ? S 0:00 [qmail-send]
1176 ? S 0:00 /usr/local/bin/multilog t /var/log/qmail/smtpd
1177 ? S 0:00 /usr/local/bin/tcpserver -v -R -H -l 0 0 110
/var/qmail/bin/qmail-popup headmaster.pilp.web.id /b
1178 ? S 0:00 /usr/local/bin/multilog t /var/log/qmail/pop3d
1181 ? S 0:00 qmail-lspawn ./Maildir/
1182 ? S 0:00 [qmail-rspawn]
1183 ? S 0:00 [qmail-clean]

jika tampak output seperti ini maka server email anda sudah jalan dengan benar 
...selamat..!

­Lakukan sekali lagi pengetesan dengan cara mengirim email dari email client di 
windows atau di linux.
­ Lakukan  juga pengetesan POP3 atau IMAP  service nya

2.4. WebMail dengan Squirremail

Untuk melengkapi kesempurnaan Server Email anda maka  dapat diinstal aplikasi 
webmail yang memberikan layanan pembacaan dan pengriman email melalui web. 
Untuk menginstal aplikasi webmail maka pastikan dahulu pada komputer server email 
anda telah diinstal aplikasi server web dan aplikasi web programming language (misal 
PHP).

Squiiremail (http://www.squirrelmail.org) adalah salah satu produk open source yang 
cukup terkenal sebagai aplikasi webmail populer di kalangan pengguna Linux. 
Squirrelmail  dibuat dalam bahasa PHP (web scripting language yang juga cukup 
populer)  yang  mendukung protokol IMAP dan SMTP. Sangat mudah dalam 
penggunaan dan instalasinya. Dikemas dalam paket rpm yang memudahkan Anda 
dalam menginstallnya, atau tersedia juga dalam paket source atau sumber tar.gz atau 
tar.bz2. 

Requirements:
− Apache Web Server versi 1.3.2x , 2.x
− PHP4 Engine

Bab­2. Email server                   halaman 15
LP3T Nurul Fikri

− Library ­library PHP untuk IMAP,SMTP, gettext dll.
− IMAP server dan SMTP server

Instalasi:
Disini cara yang mudah adalah menggunakan paket rpm , oleh karena itu kita akan 
menggunakan paket RPM yang telah disediakan oleh RedHat atau yang lainnya dengan 
mendownload paket rpm squirrelmail dari www.squirrelmail.org . Namun Jika Anda 
senang menggunakan paket squirrelmail dalam bentuk source code (tar ball) akan 
dijelaskan juga cara instalasinya.

Langkah ­langkah persiapan dan instalasi squirrelmail (RPM):
1. Mount dahulu CD RedHat yang ada pada CDROM Drive, sbb:
#mount /mnt/cdrom

2. Install squiiremail sbb:
#rpm -ivh /mnt/cdrom/RedHat/RPMS/squirrelmail-1.2.7-4.noarch.rpm

3. Restart service  apache web server sbb:
# service httpd restart

4. Rubahlah variabel $domain yang ada pada file /etc/squirrelmail/config.php dan 
isilah dengan nama domain anda, menjadi sbb:     
$domain = nama_domain_anda;

rubah juga jenis atau tipe server imap dengan 'courier' sbb:
$imap_server_type = 'courier';

Dan jangan lupa memastikan bahwa pada file /etc/squirrelmail/config.php variabel­
variabel yang berhubungan dengan folder berisi sebagai berikut:
$default_folder_prefix = '';
$trash_folder = 'INBOX.Trash';
$sent_folder = 'INBOX.Sent';
$draft_folder = 'INBOX.Drafts';

5. Coba Anda akses (syaratnya semua service imap dan smtp juga telah berjalan baik) 
dengan browser anda
  http://localhost/webmail, atau http://nameofyourserver/webmail  maka akan tampak 
halaman login sbb:

Bab­2. Email server                   halaman 16
LP3T Nurul Fikri

gambar 1. Login Form Squirrelmail

gambar 2. Inbox

Bab­2. Email server                   halaman 17
LP3T Nurul Fikri

Langkah ­langkah persiapan dan instalasi squirrelmail (tar ball):
­ Ekstrak squirrellmail sebaiknya pada DocumentRoot service web anda (contoh; di 
/var/www/html )
# cd /var/www/html
# tar -xzvf squirrelmail-1.2.10.tar.gz
# cd squirrelmail-1.2.10

­ Lakukan langkah konfigurasi standarnya ( baca README dan INSTALL nya ),sbb:
# mkdir attachments
# chown -R apache data

CATATAN:
User "apache" diasumsikan sebagai User Effective yang menjalankan Web Server 
Apache Anda. Jika bukan "apache" maka anda harus menggantinya dgn user yg 
menjalankan Web Server Apache Anda.

chmod go-w data


chown -R root attachments
chgrp -R apache attachments

CATATAN:

User "apache" diasumsikan sebagai User Effective yang menjalankan Web Server 
Apache Anda. Jika bukan "apache" maka anda harus menggantinya dgn user yg 
menjalankan Web Server Apache Anda.

# chmod -R 730 attachments


# cd ..
# mv squirrelmail-1.2.10 webmail
# cp webmail/config/config_default.php webmail/config/config.php

­ Jika Diperlukan anda dapat mengedit file konfigurasi webmail squirrelmail dengan

  mengedit file :
# vi webmail/config/config.php

− Nah sekarang webmail anda telah siap digunakan , ketik pada browser 
http://localhost/webmail

Bab­2. Email server                   halaman 18
LP3T Nurul Fikri

2.5. Instalasi ClamAV antivirus
ClamAv adalah software antivirus yang free dengan lisensi GPL. Clamav dapat 
digunakan sebagai service antivirus buat email­email yang masuk atau keluar dari 
suatu mail server.  Langkah­langkah untuk instalasi clamav sbb:
#groupadd clamav
#useradd -g clamav -d /home/clamav -s /bin/false -c "Clam AntiVirus" clamav
# tar -xzvf clamav-0.88.tar.gz
#cd clamav-0.88
#./configure --sysconfdir=/etc
#make
#make install-strip

Uji coba clamav:
#clamscan test/clam.exe.bz2

Sebaiknya clamav dijalankan sebagai daemon atau service . Untuk itu sebelum 
menjalanakn clamav sebagai daemon, Anda perlu mengedit konfigurasi 
/etc/clamd.conf. carilah paramter/option Example dan kemudian beri tanda pagar 
diawal kata Example sbb:

#Example

Dan jangan lupa tentukan lokasi dirktori log file nya sbb:

LogFile /var/loh/clamd.log

jangan lupa bahwa file log ini harus dimiliki oleh user yang menjalankan daemon 
clamav (clamd).
#touch /var/loh/clamd.log
#chown clamav.clamav /var/loh/clamd.log

Langkah selanjutnya mengaktifkan atau menjalankan daemon clamav sbb:

#/usr/local/sbin/clamd
#ps -axf |grep clamd

Untuk mengupdate database virus , gunakan utiliti freshclam,nmaun sebelumnya edit 
file /etc/freshclam.conf. Parameter atau option Example diberi komentar  sbb:

#Example

Bab­2. Email server                   halaman 19
LP3T Nurul Fikri

Dan parameter UpdateLogFile diset sbb:

UpdateLogFile /var/log/freshclam.log

File log freshclam.log dibaut dahulu dan ownership nya harus di set dengan user dan 
group clamav, sbb:
#touch /var/log/freshclam.log
#chown clamav.clamav /var/log/freshclam.log

Untuk mengupdate database virus sbb (sebaiknya proses update ini didaftarkan dalam 
tabel cron agar secara otomatis dan  berkesinambungan dilakukan pengupdetan) :

#/usr/local/bin/freshclam –quiet -l /var/log/freshclam.log

Gunakan crontab tool untuk menjadwalkan freshclam agar mengupdate secara 
otomatis pada waktu tertentu secara kontinu, sbb:

#crontab -e
5 0 * * * /usr/local/bin/freshclam –quiet -l /var/log/freshclam.log

Jika sudah selesai proses mengupdate database virus, coba cek log filenya sbb:

#tail /var/log/freshclam.log

2.6. Instalasi Qmail­Scanner sbg pengganti qmail­queue
Qmail­scanner adalah salah satu email scanner yang digunakan sebagai pengganti 
atau interface qmail­queue. qmail­scanner ditulis dalam bahasa perl. Selain qmail­
scanner Anda dapat juga menggunakan program sejenis seperti simscan atau amavis. 
Sebelum diinstall karena qmail­scanner ini ditulis/dibuat dalam bahasa perl maka ada 
beberapa modul perl (Time::HiRes, DB_ File, Sys:Syslog,MIME::Base64) yang 
diperlukan oleh qmail­scanner yang harus diinstall lebih dahulu. Selain itu qmail­
scanner ini membutuhkan tool/utility seperti tnef, reformime dari maildrop, uuencode 
(uudeview), zip , dan jika diperlukan gunakan juga spamassassin dsb.
Instalasi tnef:
# tar -xzvf tnef-1.2.3.1.tar.gz
# cd tnef-1.2.3.1/
# ./configure
# make
# make check

Instalasi maildrop:
# tar -xjvf maildrop-1.7.0.tar.bz2

Bab­2. Email server                   halaman 20
LP3T Nurul Fikri

# cd maildrop-1.7.0/
# ./configure
# make
# make install-strip
# make install-man

Langkah untuk instalasi modul­modul perl dapat Anda lakukan dengan langkah 
standard berikut ini, sebagai contoh akan dicontohkan instalasi modul Time:HiRes.
Ekstrak dahulu source Time­HiRes­1.87.tar.gz sbb:

#tar -xzvf Time-HiRes-1.87.tar.gz


#cd Time-HiRes-1.87
#perl Makefile.pl
#make
#make test
#make install

Langkah selanjutnya  kami persingkat langsung pada langkah­langkah instalasi qmail­
scanner dengan asumsi software­software yang diperlukan qmail­scanner sudah 
diinstall, sbb:

#tar -xzvf qmail-scanner-1.24.tar.gz


#cd qmail-scanner-1.24

Patch qmail­scanner sbb:
#patch -p1 < /lokasi/kefile/q-s-1.24st-20041101.patch

catatan:
/lokasi/kefile diganti dengan path ke direktori yang menyimpan file patch.

Membuat user dan group yang akan menjadi user efektif yang menjalnakan qmail­
scanner, sbb:
#groupadd qscand
#useradd -c "Qmail-Scanner Account" -g qscand -d /var/spool/qmailscan \
-s /bin/false qscand

Melakukan konfigurasi qmail­scanner sbb:

# ./configure --qs-user qscand --qs-group qscand --admin antivirus \


--domain nurulfikri.com --notify admin,sender \
--local-domains nurulfikri.com --add-dscr-hdrs yes \
--dscr-hdrs-text "Scanner-Spam-Antivirus-lpknf" \

Bab­2. Email server                   halaman 21
LP3T Nurul Fikri

--sa-subject ":Pemberitahuan mail ini adalah SPAM :" \


--install

Jika pada saat configure muncul pesan seperti dibawah ini , 

Error was:
Can't do setuid (cannot exec sperl)
Redhat hosts need to have perl­suidperl installed to get setuid support
See FAQ for further details

Hit RETURN to continue, Ctr­C to exit and fix:

Maka Anda harus menggunakan wrapper qmail­scanner yang dibuat dalam bahasa C 
yang file nya terdapat dalam direktori contrib pada direktori source qmail­scanner. 
Sebelum menggunakan wrapper tersebut terlebih dahulu di­build sbb:

#cd contrib
#make
#make install

Selanjutnya edit file /var/qmail/bin/qmail­scanner­queue.pl , lihat dibagian awal file 
tersebut terdapat baris sbb:

#!/usr/bin/perl -T

Baris tersebut dirubah menjadi sbb:

#!/usr/bin/perl

Kemudian rubah atribut ijin akses file   /var/qmail/bin/qmail­scanner­queue.pl 
menjadi 0755, sbb:

#chmod 0755 /var/qmail/bin/qmail-scanner-queue.pl

Langkah berikutnya jangan lupa membuat database file version dan file   perlscanner 
database sbb:
#/var/qmail/bin/qmail-scanner-queue.pl -z
#/var/qmail/bin/qmail-scanner-queue.pl -g
#chown -R qscand:qscand /var/spool/qmailscan/

Sekarang qmail­scanner sudah selesai diinstall dan siap digunakan untuk melakukan 

Bab­2. Email server                   halaman 22
LP3T Nurul Fikri

scanning email­email yang masuk ataupun yang keluar dari server email qmail. Untuk 
itu Anda harus merubah qmail­queue agar digantikan oleh qmail­queue­scanner 
dengan mengedit file /service/qmail­smtpd/run, dengan menambahkan baris sbb:
#!/bin/sh
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue" export QMAILQUEUE

if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" ]; then


echo QMAILDUID, NOFILESGID, or MAXSMTPD is unset in
echo /var/qmail/supervise/qmail-smtpd/run
exit 1
fi
exec /usr/local/bin/softlimit -m 2000000 \
/usr/local/bin/tcpserver -v -R -l 0 -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1

Baris diatas mendefinisikan environment variabel QMAILQUEUE dengan qmail­
scanner­queue, sehingga nantinya qmail tidak menggunakan program qmail­queue 
yang biasanya digunakan untuk menerima dan mengirimkan email ke tujuan. Cara 
lain agar qmail­queue digantikan oleh  qmail­scanner­queue adalah dengan mengedit 
file /etc/tcp.smtp menjadi sbb:

127.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue"
192.168.1.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-
queue"

Jangan lupa jika Anda mengedit file seleksi relay /etc/tcp.smtp, maka Anda harus 
membuat file databasenya dengan cara sbb:

#tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp


# chmod 644 /etc/tcp.smtp.cdb

Langkah selanjutnya Anda tinggal mencoba mengirimkan email melalui mail server 
qmail  yang sudah Anda setup dengan menyertakan file yang dianggap bervirus, lalu 
coba pada saat pengriman Anda lihat catatan log qmail­scanner di 
/var/spool/qmailscan/qmail­queue, sbb:

# tail -f /var/spool/qmailscan/qmail-queue

Bab­2. Email server                   halaman 23