1. Dokumen ini akan menjelaskan instalasi berikut:
- 1. qmail sebagai MTA,
- 2. checkpassword sebagai module authentikasi pada pop3 server,
- 3. vpopmail sebagai module authentikasi pada pop3 server,
- 4. ezmlm yang digunakan untuk aplikasi mailing-list,
- 5. sqwebmail, yaitu interface webmail seperti hotmail,
- 6. autorespond, seperti answering machine pada sistem telepon,
- 7. qmailadmin, yaitu interface web untuk melakukan administrasi email server yang meliputi, edit user, virtualdomain, forwarding, mailing list dan autorespond.
2. Instalasi Qmail
Persyaratan yang harus dipenuhi untuk menginstal Qmail adalah:
- - Sebuah mesin dengan sistem operasi Unix compatible. Qmail tidak mendukung sistem operasi M$ Windows NT atau Windows 2000. Penulis melakukan instalasi qmail pada mesin Linux Redhat 6.2.
- - Sangat direkomendasikan Anda memiliki sebuah DNS server sebagai tempat registarsi Mail Exchanger (MX). Jika Anda tidak memilikinya, dapat dilakukan registrasi gratis pada http://www.dyndns.org.
- - Sangat dianjurkan Anda terhubung ke internet secara leased-line. Qmail dirancang untuk konektivitas jaringan yang baik, jadi jangan Anda gunakan qmail pada 28,8 kbps dial-up. Untuk koneksi yang agak buruk qmail menyediakan serialmail.
2.1. Langkah instalasi dan konfigurasi Qmail
Sebelum Anda menginstall qmail, sebaiknya dicatat terlebih dahulu pada direktori apa saja file-file qmail ditempatkan. Hal ini dilakukan karena qmail yang akan diinstal adalah dalam format tar.gz. Tidak seperti paket aplikasi yang datang dalam bentuk rpm, paket dalam format tar.gz tidak mendokumentasikan letak file-file yang akan diinstal. Pencatatan dapat dilakukan dengan cara berikut:
- catat semua file yang terinstall pada mesin Anda sebelum menginstal qmail:
# find /* before-qmail
- catat semua file yang terinstall pada mesin Anda setelah menginstal qmail:
# find /* after-qmail
- lihat file-file hasil instalasi qmail:
# diff before-qmail after-qmail qmail-files.
Urutan langkah instalasi dan konfigurasi qmail adalah:
1. Dapatkan paket qmail terkini, pada saat tulisan ini dibuat versi terakhir adalah qmail-1.03.tar.gz. Paket ini dapat diambil pada ftp://koobera.math.uic.edu/www/software/qmail-1.03.tar.gz.
2. Dapatkan juga paket pendukung lainnya yaitu:
- ucspi-tcp, yang menyediakan tcpserver sebagai daemon pengganti inetd pada ftp://koobera.math.uic.edu/www/software/ucspi-tcp-0.88.tar.gz
- daemontools, yang berisi sekumpulan layanan monitoring dan controlling pada ftp://koobera.math.uic.edu/www/software/daemontools-0.61.tar.gz
- qmail-103.patch, untuk mengkoreksi proses reply DNS yang ilegal seperti AOL Provider yang tidak menghiraukan RFC.Paket ini dapat diperoleh pada http://www.ckdhr.com/ckd/qmail-103.patch
3. Copy paket-paket tersebut pada direktori /usr/local/src
4. Unpack paket-paket tersebut:
# cd /usr/local/src
# tar -zxvf qmail-1.03.tar.gz
# tar -zxvf ucspi-tcp-0.88.tar.gz
# tar -zxvf daemontools-0.61.tar.gz
5. Lakukan patch DNS menggunakan file qmail-103.patch:
# patch -p1 /var/run/svscan.pid
echo "."
;;
stop)
echo -n "Stopping qmail: svscan"
kill `cat /var/run/svscan.pid`
echo -n " qmail"
svc -dx /var/qmail/supervise/*
echo -n " logging" svc -dx /var/qmail/supervise/*/log
echo "."
;;
stat)
cd /var/qmail/supervise
svstat * */log
;;
doqueuealrm)
echo "Sending ALRM signal to qmail-send."
svc -a /var/qmail/supervise/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;
reloadhup)
echo "Sending HUP signal to qmail-send."
svc -h /var/qmail/supervise/qmail-send
;;
pause)
echo "Pausing qmail-send"
svc -p /var/qmail/supervise/qmail-send
echo "Pausing qmail-smtpd"
svc -p /var/qmail/supervise/qmail-smtpd
;;
cont)
echo "Continuing qmail-send"
svc -c /var/qmail/supervise/qmail-send
echo "Continuing qmail-smtpd"
svc -c /var/qmail/supervise/qmail-smtpd
;;
restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtpd."
svc -d /var/qmail/supervise/qmail-smtpd
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /var/qmail/supervise/qmail-send
echo "* Restarting qmail-smtpd."
svc -u /var/qmail/supervise/qmail-smtpd
;;
cdb)
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp &1
Catatan:
Jika usaha koneksi ke port 25 gagal atau system remote tidak bisa mengirim email kepada Anda, maka coba naikkan softlimit menjadi 3000000 atau 4000000
6. Buat file /var/qmail/supervise/qmail-smtpd/log/run dengan isi:
#!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd 7. Jadikan ke empat file run tersebut excutable:
# chmod 755 /var/qmail/supervise/qmail-send/run
# chmod 755 /var/qmail/supervise/qmail-send/log/run
# chmod 755 /var/qmail/supervise/qmail-smtpd/run
# chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
8. Setup direktori log:
# mkdir -p /var/log/qmail/smtpd
# chown qmaill /var/log/qmail /var/log/qmail/smtpd
9. Buat qmail startup script executable dan link file tersebut ke direktori di dalam path Anda:
# chmod 755 /etc/init.d/qmail
# ln -s /etc/rc.d/init.d/qmail /usr/local/sbin
10. Izinkan localhost untuk menginject mail lewat SMTP:
# echo '127.:allow,RELAYCLIENT=""' /etc/tcp.smtp
Jika Anda menginginkan relay untuk local network Anda, maka tambahkan:
# echo '192.168.1.:allow,RELAYCLIENT=""' /etc/tcp.smtp
# /usr/local/sbin/qmail cdb
11. Hentikan dan hapus MTA Sendmail yang telah terinstal sebelumnya:
# /etc/rc.d/init.d/sendmail stop
# kill PID-of-Sendmail
# rpm -e --nodeps sendmail
Replace semua /usr/lib/sendmail dengan qmail
# mv /usr/lib/sendmail /usr/lib/sendmail.old
# ignore errors
# mv /usr/sbin/sendmail /usr/sbin/sendmail.old
# ignore errors
# chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old
# ignore errors
# ln -s /var/qmail/bin/sendmail /usr/lib
# ln -s /var/qmail/bin/sendmail /usr/sbin
12. Buat system alias:
# echo miral /var/qmail/alias/.qmail-root
# echo miral /var/qmail/alias/.qmail-postmaster
# ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon
# chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster
13. Jika user yang menjadi anggota qmail adalah user yang terdaftar di /etc/passwd, maka buat Maildir pada setiap direktori home user yang bersangkutan:
# /var/qmail/bin/maildirmake ~miral/Maildir
# echo ./Maildir/ ~miral/.qmail
# cd ~miral
# chown -R miral:miral /Maildir
# chown miral:miral .qmail
14. Jika semua user baru yang akan terdaftar pada /etc/passwd juga akan menjadi anggota qmail, maka buat direktori Maildir pada direktori /etc/skel
# /var/qmail/bin/maildirmake /etc/skel/Maildir
# echo ./Maildir/ /etc/skel/.qmail
14. Instalasi selesai, jalankan qmail yang baru saja Anda install
# /etc/rc.d/init.d/qmail start
Masukkan command ini pada file /etc/rc.d/rc.local, jika Anda menginginkan qmail berjalan secara otomatis pada saat komputer Anda boot.
15. Test hasil instalasi dengan mengikuti langkah yang dijelaskan pada
file /var/qmail/doc/TEST.deliver dan /var/qmail/doc/TEST.receive
3. Instalasi Pop3 Server
Qmail menyertakan sebuah POP3 Server yaitu module qmail-pop3d.
Tetapi module yang merupakan daemon ini tidak terinstal dan terkonfigurasi pada proses intalasi qmail pada bagian 2 di atas. qmail-pop3d mensupport berbagai macam authentikasi melalui beberapa module atuhentikasi. Sebuah qmail-pop3d server memiliki tiga buah module, yaitu:
1. qmaip-popup, untuk mengambil nama user dan password
2. checkpassword, untuk authentikasi nama user dan password. Module ini terlepas dari paket qmail.
3. qmail-pop3d, yaitu berupa POP daemon Cara kerja qmail pop3 server: qmail-popup dijalankan melalui inetd atau tcpserver, menerima koneksi pada port 110, yaitu port Pop3.
Jika terjadi koneksi pada port tersebut, maka qmail-popup menanyakan nama user dan password. Kemudian module checkpassword (atau module authentikasi alternatif lainnya) melakukan verifikasi namauser/password dan akhirnya daemon qmail-pop3d akan aktif jika verifikasi berhasil.
3.1. Instalasi checkpassword
Checkpassword melakukan authentikasi terhadap user yang terdapat pada file /etc/passwd. Jadi user pada pop3 juga merupakan user yang terdaftar pada system Unix Anda.
1. Dapatkan paket checkpassword terkini. Pada saat tulisan ini dibuat versi terakhir adalah checkpassword-0.81.tar.gz.
Paket ini dapat diambil pada http://pobox.com/~djb/checkpwd.html.
2. Copy paket tersebut pada direktori /usr/local/src
3. Unpack:
# tar -zxvf checkpassword-0.81.tar.gz
4. Kompilasi:
# make
# make setup check Hasil instalasi adalah /bin/checkpassword
5. Jalankan pop3 server dengan 2 metode:
a). Dari inetd.conf. Tambahkan baris berikut pada file /etc/inetd.conf
# pop3 stream tcp nowait root /var/qmail/bin/qmail-popup
hostname.domain /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir
# kill -HUP PID-of-inetd, untuk merestart inetd.
b). Dari tcpserver. Buat file /etc/rc.d/init.d/pop-start dengan mode 755:
#!/bin/sh
env - PATH="/var/qmail/bin:/usr/local/bin"
tcpserver -v -R 0 pop3 /var/qmail/bin/qmail-popup hostname.domain
/bin/checkpassword
/var/qmail/bin/qmail-pop3d Maildir 2&1
/var/qmail/bin/splogger pop3d &
Apabila Anda menginginkan pop3 server berjalan secara otomatis pada saat komputer boot, masukkan baris /etc/rc.d/init.d/pop-start tersebut di atas pada file /etc/rc.d/rc.local.
6. Test hasil instalasi dengan melakukan telnet localhost pada port 110
# telnet localhost 110
3.2. Instalasi vpopmail
vpopmail adalah sekumpulan program yang mengotomatisasi proses pembuatan dan pemeliharaan user pop mail yang tidak berada pada file /etc/passwd.
vpopmail merupakan module authentikasi yang dapat menggantikan checkpassword.
vpopmail menggunakan sebuah user pada /etc/passwd untuk membuat banyak user virtual pop di bawah direktori ~vpopmail.
User yang menjadi anggota pop mail adalah virtual user yang berada di bawah direktori ~vpopmail tersebut, bukan user pada file /etc/passwd.
Vpopmail juga mampu membuat banyak virtualdomain pada email server Anda. Terdapat 2 paket tambahan pada vpopmail, yaitu:
1. qmailadmin, menyediakan interface web untuk melakukan administrasi dan pemeliharaan user pop, forwards, aliases, mailing list dan autorespond.
2. sqwebmail, merupakan system email berbasis web seperti hotmail yang membaca langsung dari Maildirs, local, NFS atau NAS dan autoresponders. vpopmail beserta 2 paket tambahannya dapat diambil pada http://www.inter7.com/qmail. Semua paket tersebut adalah GPL.
Langkah instalasi vpopmail adalah:
1. Dapatkan paket vpopmail terkini. Pada saat tulisan ini dibuat versi terakhir adalah vpopmail-4.9.tar.gz. Paket ini dapat diambil di http://www.inter7.com/vpopmail.
2. Copy paket tersebut pada direktori /usr/local/src
3. Unpack:
# tar -zxvf vpopmail-4.9.tar.gz
4. Lakukan pengecekan ruang HDD Anda, untuk menentukan lokasi vpopmail akan ditempatkan:
# df
5. Tambahkan user dan group di bawah ini pada system Unix Anda:
# groupadd vchkpw
# useradd -g vchkpw vpopmail
Jika Anda ingin menempatkan direktori vpopmail selain /home/vpopmail:
# useradd -g vchkpw -d /path/tempat/vpopmail/yang/diinginkan vpopmail
6. Buat file ~vpopmail/etc/tcp.smtp
# mkdir ~vpopmail/etc
# echo "127.0.0.:allow,RELAYCLIENT=""" ~vpopmail/etc/tcp.smtp
Jika Anda menginginkan local network dapat merelay smtp tambahkan baris berikut:
# echo "192.168.1.:allow,RELAYCLIENT=""" ~vpopmail/etc/tcp.smtp
7. Konfigurasi dan instalasi:
# ./configure Jika Anda ingin menginstall vpopmail dengan authentikasi melalui database yang disimpan pada mysql, maka lakukan command berikut:
# ./configure --enable-mysql=y
--enable-sqlincdir=/usr/local/mysql/include/mysql
--enable-sqllibdir=/usr/local/mysql/lib/mysql
--enable-hardquota=50000000
--enable-default-domain=your_virtual_domain_name (hanya jika Anda ingin menjadikan sebuah virtual domain sebagai domain primary/default.
Lihat penjelasan pada langkah 9b di bawah. Opsi ini tidak ada hubungannya dengan mysql).
Diasumsikan Anda telah menginstall mysql pada direktori
/usr/local/mysql. Sebelum melakukan konfigurasi, terlebih dahulu edit file vmysql.h.
Ubah nama host, user dan password yang telah diberi izin mengakses mysql. Biasannya adalah user root (bukan root dari system Unix).
# make
# make install-strip
Apabila Anda akan melakukan rekonfigurasi dan reinstalisasi lakukan langkah berikut:
# make clean
# rm -rf config.cache
# ./configure (dengan opsi-opsi yang Anda inginkan)
# make
# make install-strip
8. Buat file start-up pop3 pada /etc/rc.d/init.d/pop-start dengan mode 755:
#!/bin/sh
env - PATH="/var/qmail/bin:/usr/local/bin"
tcpserver -u509 -g509 -H -R 0 pop3
/var/qmail/bin/qmail-popup hostname.domain
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
Ganti u509 dan g509 dengan uid vpopmail dan gid vchkpw. Ubah juga hostname.domain dengan nama host dan domain Anda.
9. Buat pop user account dengan 2 metode berikut:
a). Tanpa virtual domain
# cd ~vpopmail/bin
# ./vadduser user1
# ./vadduser user2
# ...dst, sesuai dengan jumlah user yang akan didaftarkan.
User yang dibuat akan ditempatkan pada direktori ~vpopmail/users.
Perhatikan file /var/qmail/users/assign untuk melihat proses pengarahan mail yang datang pada user1, user2, dst tersebut.
Pada metode ini domain yang digunakan adalah dari file /var/qmail/control/locals.
Nama user untuk authentikasi user pop adalah namauser.
b). Dengan virtual domain
# cd ~vpopmail/bin
# ./vadddomain virtual.domain.com
# ./vadduser user1@virtual.domain.com
# ./vadduser user2@virtual.domain.com
# ...dst, sesuai jumlah user yang akan didaftarkan.
# ./vadduser user2@virtual.domain.com
# ...dst, sesuai jumlah user yang akan didaftarkan.
User ini akan ditempatkan pada direktori ~vpopmail/domains/virtual.domain.com.
Perhatikan file /var/qmail/users/assign untuk melihat proses pengarahan mail yang datang pada user1, user2, dst tersebut.
Pada metode ini nama user untuk authentikasi user pop adalah namauser%virtual_domain_name.
Anda dianjurkan menggunakan virtual domain, sekalipun Anda akan memanfaatkan satu domain saja. Apabila virtual domain tersebut ingin dijadikan primary domain sehingga metode authentikasi seperti tanpa virtual domain (domain local) yaitu cukup dengan memberikan namauser (tanpa menambahkan %virtual_domain_name), lakukan langkah berikut:
# rm -f ~vpopmail/users
# ln -s ~vpopmail/domains/virtual_domain_name ~vpopmail/users
Langkah tersebut di atas dapat dilakukan juga dengan menambahkan opsi
--enable-default-domain=your_virtual_domain_name
pada ./configure (langkah 7).
Kemudian lakukan pembuatan virtual domain yang akan dijadikan default dan pembuatan virtual user seperti pada langkah
9b. Anda tidak perlu lagi menghapus direktori ~vpopmail/users dan membuat softlink ke direktori ~vpopmail/domains/virtual_domain_name. Metode authentikasi pada pop server Anda cukup dengan memasukkan nama user saja tanpa diikuti dengan %virtual_domain_name.
10. Start pop3 server dengan menjalankan file /etc/rc.d/init.d/pop-start
# /etc/rc.d/init.d/pop-start
Apabila Anda menginginkan pop3 server berjalan secara otomatis pada saat komputer boot, masukkan command /etc/rc.d/init.d/pop-start
pada file /etc/rc.d/rc.local
11. Lakukan pengetesan dengan mengirim mail ke user-user yang telah dibuat tersebut, dan lihat hasilnya pada port 110 dengan telnet:
# telnet localhost 110
12. Catatan tambahan: untuk administrasi virtual domain dan virtual user
- Menghapus virtual domain
# ~vpopmail/bin/vdeldomain virtual_domain_name
- Megnhapus virtual user
# ~vpopmail/bin/vdeluser namauser@virtual_domain_name (untuk user pada virtual domain)
# ~vpopmail/bin/vdeluser namauser (untuk user tanpa virtual domain)
- Mengubah password virtual user
# ~vpopmail/bin/vpasswd namauser@virtual_domain_name (untuk user pada virtual domain)
# ~vpopmail/bin/vpasswd namauser (untuk user tanpa virtual domain)
4. Instalasi mailing-list manager
Mailing-list manager yang khusus diperuntukkan bagi qmail adalah ezmlm. Langkah instalasi secara cepat (quick install) dan konfigurasi ezmlm adalah:
1. Dapatkan paket ezmlm dan ezmlm-idx terkini. Pada saat tulisan ini dibuat versi terakhir adalah ezmlm-0.53.tar.gz dan ezmlm-idx-0.40.tar.gz. Kedua paket ini dapat diambil pada http://www.ezmlm.org
2. Copy kedua paket tersebut pada direktori /usr/local/src
3. Unpack:
# cd /usr/local/src
# tar -zxvf ezmlm-0.53.tar.gz
# tar -zxvf ezmlm-idx-0.40.tar.gz
4. Pindahkan semua direktori/usr/local/src/ezmlm-idx-0.40
ke direktori /usr/local/src/ezmlm-0.53
# mv -f /usr/local/src/ezmlm-idx-0.40/* /usr/local/src/ezmlm-0.53/
5. Lakukan patch
# cd /usr/local/src/ezmlm-0.53
# patch amount of time to consider a message (in seconds) num - maximum number of messages to allow within time seconds message - the filename of the message to send dir - the directoru to hold the log messages - Isi file .
qmail-help di atas menyatakan bahwa: This will allow up to five messages within about 3 hours.
- Buat sebuah file help_message pada
/var/qmail/alias (domain local) atau pada
~vpopmail/domains/your_virtual_domain (untuk virtual domain),
dengan isi sebagai berikut:
From: Support Subject: Help Response This is a response to your help request. Below is a copy of the message we received. --------
- Buat sebuah direktori help_autorespond pada pada
/var/qmail/alias (domain local) atau pada
~vpopmail/domains/your_virtual_domain (untuk virtual domain).
Direktori ini digunakan untuk mencatat log dari pesan yang dikirimkan.
- Jangan lupa ubah owhnership semua file dan direktori yang Anda buat (alias untuk direktori ~alias dan
vpopmail:vchkpw untuk direktori virtual domain).
5. Instalasi qmailadmin
Qmailadmin adalah paket/aplikasi yang sangat berguna bagi mail administrator. Aplikasi ini merupakan sebuah interface web untuk melakukan administrasi terhadap virtual domain, user dalam virtual domain, email forwarding, autorespond, dan mailing list. Untuk menginstal qmailadmin, Anda terlebih dahulu telah menginstal vpopmail, ezmlm dan autorespond. Langkah instalasi yang akan dijelaskan di bawah mengasumsikan bahwa vpopmail yang telah Anda instal menggunakan opsi enable mysql=y. Langkah instalasi dan konfigurasi adalah:
1. Dapatkan paket qmailadmin terkini. Pada saat tulisan ini dibuat versi terakhir adalah qmailadmin-0.35.tar.gz
2. Copy paket tersebut pada direktori /usr/local/src
3. Unpack:
# cd /usr/local/src
# tar -zxvf qmailadmin-0.35.tar.gz
4. Kompilasi dan instalasi
# cd /usr/local/src/qmailadmin-0.35
# make clean
# env LIBS="-L/usr/local/mysql/lib/mysql -lmysqlclient" ./configure
# make
# make install
5. Jalankan web browser Anda dan buka http://localhost/cgi-bin/qmailadmin