Membuat Mail Server
installasi Qmail, Vpopmail,Qmailadmin,courier imap,dan SquirrelmailDokumen (tutorial) ini ditujukan untuk membantu membuat sebuah mailserver dengan beberapa domain sekaligus menggunakan qmail dan vpopmail, serta webmail dengan menggunakan squirrelmail secara step-by-step dalam Bahasa Indonesia. Tidak ada copyright apapun dalam dukumen ini, anda bebas menyalin, mencetak, maupun memodifikasi (dengan menyertakan nama penulis asli). Terima Kasih dan semoga bermanfaat Red deden
1. Instalasi Qmail
Sebelum memulai, silakan anda uninstall software mailserver (MTA) lain yang berada dalam server anda misalnya untuk Redhat biasanya terdapat sendmail dan/atau postfix , 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 :
[root@mydeden_kom]# service sendmail stop
[root@mydeden_kom]# for a in $(rpm -qa | grep sendmail); do rpm -e –nodeps $a; done
[root@mydeden_kom]# mkdir src
[root@mydeden_kom]# cd src
Download qmail dan paket pendukung yang lain (daemontools, ucspi-tcp) :
[root@mydeden src]# wget http://cr.yp.to/software/qmail-1.03.tar.gz
[root@mydeden src]# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
[root@mydeden 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 :
[root@mydeden src]# wget http://qmail.cbn.net.id/moni.csi.hu/pub/glibc-2.3.1/qmail-1.03.errno.patch
[root@mydeden src]# wget http://qmail.cbn.net.id/moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch
[root@mydeden 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-queue agar bisa menjalankan external program, misalnya jika anda menginginkan software anti-virus serta quotas-patch, yang berguna untuk membounce email jika suatu user sistem sudah melebihi quota sistem, misalnya untuk pemberian quota perdomain dengan vpopmail
[root@mydeden src]# wget http://www.qmail.org/qmailqueue-patch
[root@mydeden src]# wget http://www.qmail.org/qmail-1.03-quotas-1.1.patch
Ekstrak semua source tersebut :
[root@mydeden src]# tar -xzvf qmail-1.03.tar.gz
[root@mydeden src]# tar -xzvf daemontools-0.76.tar.gz
[root@mydeden src]# tar -xzvf ucspi-tcp-0.88.tar.gz
Buat direktori untuk qmail dan pembuatan account user yang akan menjalankan dan mengurusi qmail :
[root@mydeden src]# mkdir /var/qmail
[root@mydeden src]# groupadd nofiles
[root@mydeden src]# useradd -g nofiles -d /var/qmail/alias alias
[root@mydeden src]# useradd -g nofiles -d /var/qmail qmaild
[root@mydeden src]# useradd -g nofiles -d /var/qmail qmaill
[root@mydeden src]# useradd -g nofiles -d /var/qmail qmailp
[root@mydeden src]# groupadd qmail
[root@mydeden src]# useradd -g qmail -d /var/qmail qmailq
[root@mydeden src]# useradd -g qmail -d /var/qmail qmailr
[root@mydeden src]# useradd -g qmail -d /var/qmail qmails
Ganti direktori ke source qmail :
[root@mydeden src]# cd qmail-1.03
Perhatian : Jika anda menggunakan glibc versi 2.3 keatas (misalnya Redhat 9), patch qmail anda :
[root@mydeden qmail-1.03]# patch -p1 < ../qmail-1.03.errno.patch
Jika diperlukan patch dengan queue patch dan quota patch :
[root@mydeden qmail-1.03]# patch -p1 < ../qmailqueue-patch
[root@mydeden qmail-1.03]# patch -p1 < ../qmail-1.03-quotas-1.1.patch
Kompile dan install qmail :
[root@mydeden qmail-1.03]# make setup check
Membuat file konfigurasi qmail, disini silakan anda ganti deden.kom.edu dengan hostname anda yang FQDN (bisa diresolve), misalnya serverku.domain.com.Ingat, hostname tidak harus sama dengan nama server host tempat anda menginstall qmail tersebut.
[root@mydeden qmail-1.03]# ./config-fast deden.kom.edu
Ganti ke direktori source ucspi-tcp :
[root@mydeden qmail-1.03]# cd ../ucspi-tcp-0.88
Perhatian : Jika anda menggunakan glibc versi 2.3 keatas (misalnya Redhat 9), patch ucspi-tcp anda :
[root@mydeden ucspi-tcp-0.88]# patch -p1 < ../ucspi-tcp-0.88.errno.patch
Kompile dan install ucspi-tcp :
[root@mydeden ucspi-tcp-0.88]# make setup check
[root@mydeden ucspi-tcp-0.88]# cd ../admin/daemontools-0.76/
Perhatian : Jika anda menggunakan glibc versi 2.3 keatas (misalnya Redhat 9), patch daemontools anda :
[root@mydeden daemontools-0.76]# patch -p1 < ../../daemontools-0.76.errno.patch
Kompil dan install daemontools :
[root@mydeden daemontools-0.76]# ./package/install
Jika daemontools sukses terinstal, anda bisa mengecek dengan menggunakan perintah ps, misalnya :
[root@mydeden daemontools-0.76]# ps ax | grep read
6529 ? S 0:00 readproctitle service errors: …………………..
Hapus direktori /command dan kemudian anti dengan direktori command dari source daemontools :
[root@mydeden daemontools-0.76]# rm -rf /command/
[root@mydeden daemontools-0.76]# mv command/ /
Buat file startup untuk menjalankan qmail-send, dan mengganti defaultdelivery dari format Mailbox ke format Maildir :
[root@mydeden_kom]# cp /var/qmail/boot/home /var/qmail/rc
[root@mydeden_kom]# 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 :
[root@mydeden_kom]# mkdir -p /var/qmail/supervise/qmail-send/log
[root@mydeden_kom]# mkdir -p /var/qmail/supervise/qmail-smtpd/log
Buat file script supervise untuk menjalankan qmail-send yaitu :
[root@mydeden_kom]# vi /var/qmail/supervise/qmail-send/run
Isinya :
#!/bin/sh
exec /var/qmail/rc
Buat file script supervise untuk menjalankan log qmail-send :
[root@mydeden_kom]# 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 :
[root@mydeden_kom]# 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 :
[root@mydeden_kom]# 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 :
[root@mydeden_kom]# 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 :
[root@mydeden_kom]# chmod 755 /var/qmail/supervise/qmail-send/run
[root@mydeden_kom]# chmod 755 /var/qmail/supervise/qmail-send/log/run
[root@mydeden_kom]# chmod 755 /var/qmail/supervise/qmail-smtpd/run
[root@mydeden_kom]# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
Buat direktori untuk log qmail-send dan qmail-smtpd :
[root@mydeden_kom]# mkdir -p /var/log/qmail/smtpd
[root@mydeden_kom]# chown qmaill /var/log/qmail /var/log/qmail/smtpd
Mengijinkan localhost untuk menggunakan smtp :
[root@mydeden 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 :
[root@mydeden 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 :
[root@mydeden src]# echo ‘10.126.10.:allow,RELAYCLIENT=””‘ >> /etc/tcp.smtp
Jangan lupa, setiap selesai penambahan untuk selalu membuat database baru dengan :
[root@mydeden src]# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
Akhirnya kita masukkan script yang kita buat kedalam servis supervise :
[root@mydeden_kom]# 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 :
[root@mydeden_kom]# 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 :
[root@mydeden src]# telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 deden.kom.edu 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:
[root@mydeden 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:
[root@mydeden 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 :
[root@mydeden src]# cd /var/qmail/alias
[root@mydeden alias]# echo deden@pasopati.net > .qmail-root
[root@mydeden alias]# echo deden@pasopati.net > .qmail-postmaster
[root@mydeden alias]# echo deden@pasopati.net > .qmail-mailer-daemon
Ganti deden@pasopati.net dengan email yang bertanggung jawab terhadap server email tersebut (anda?). Kadang kita membutuhkan 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 :
[root@mydeden src]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
[root@mydeden src]# ln -s /var/qmail/bin/sendmail /usr/bin/sendmail
2. Instalasi vpopmail
Donwload vpopmail yang paling baru, ekstrak, kemudian buat grup dan user yang akan menghandle vpopmail :
[root@mydeden src]# wget http://inter7.com/vpopmail/vpopmail-5.2.1.tar.gz
[root@mydeden src]# tar -xzvf vpopmail-5.2.1.tar.gz
[root@mydeden src]# cd vpopmail-5.2.1
[root@mydeden vpopmail-5.2.1]# groupadd vchkpw
[root@mydeden vpopmail-5.2.1]# useradd -g vchkpw vpopmail
Opsi –enable-default-domain dibawah ini (pada saat kompilasi vpopmail) digunakan untuk mengeset pada saat pengambilan email melalui protokol pop3, jika memasukkan format user saja tanpa user@domain maka vpopmail akan menganggap sebagai user@domain-default-tersebut , disini kita misalkan deden.edu sebagai default domain :
Baca entri selengkapnya »